title: "Projets, CM2"
$\rightarrow$ doit correspondre aux fonctionnalités prévues et au code réel
architecture générale (MVC) | architecture des vues |
---|---|
## Étape de conception
## Méthode pour écrire du code
comprendre le travail à faire (fonctionnalité/classe à implémenter)
fonctionnalité : afficher le stock
étapes :
1. méthode getLignes de Stock retournant un ensemble de string (tester avec un TU)
2. affichage dans la VueConsole en utilisant getLignes (tester avec le main)
3. connexion du signal d'affichage pour VueGraphique (tester avec le main)
4. affichage dans la VueGraphique en utilisant getLignes (tester avec le main)
## Conseils sur le développement en équipe
## Programmation en binômes
$\rightarrow$ à utiliser pour les modules de base (traitement de données) voire plus
## Programmation par pseudo-code
void normaliserVector(std::vector<float> & v) {
// calculer la somme des éléments
float s = std::accumulate(v.begin(), v.end(), 0, std::plus<float>());
// diviser chaque élément par la somme
for (float & f : v)
f /= s;
}
$\rightarrow$ très utile quand le code à écrire n’est pas trivial
## Gestion d’erreurs
## Conventions de code
## Exemple de conventions de code C++
un nom de classe commence par une majuscule :
class Event ...
cpp
std::string _summary ;
préfixe ptr pour les pointeurs :
icalcomponent * _ptrIcal ;
cpp
void updateDataFromIcal();
icalcomponent * getPtrIcal() const ;
maximum 80 caractères par ligne
...
mise en place du code, close #1
historique des commits
H -- I
/
A -- B -- C -- F -- G
\ /
D -- E
installer git :
sudo apt-get install git
configurer l'utilisateur :
git config --global user.name "Julien Dehos"
git config --global user.email dehos@nimpe.org
paramétrer le client :
git config --global core.editor emacs
git config --global http.proxy http://user:pass@proxyhost:proxyport
| |
---|---|
git clone
| récupère un dépôt |
git status
| affiche l'état courant des fichiers |
git add <fichiers>
| demande à Git de versionner des fichiers |
git mv <nom1> <nom2>
| renomme des fichiers versionnés |
git rm <fichiers>
| supprime des fichiers versionnés |
git commit <fichiers>
| valide les modifications des fichiers spécifiés |
git commit -a
| valide les modifications de tous les fichiers versionnés |
git commit -am "message"
| valide les modifications avec le message donné |
git log
| affiche la liste des commits |
git diff
| affiche les modifications par rapport au dernier commit|
git checkout -- .
| supprime les modifications (revient au commit) |
| |
---|---|
git pull
| récupère les commits distants et les intègre dans le dépôt local |
git push
| envoie les commits du dépôt local sur le dépôt distant |
git branch
| affiche les branches locales |
git ls-remote
| affiche les branches distantes |
git branch <branche>
| crée une nouvelle branche |
git checkout <branche>
| change de branche |
git push -u origin <branche>
| envoie une nouvelle branche distante |
git merge <branche>
| fusionne une branche dans la branche courante |
git mv
et git rm
pour déplacer et supprimer des fichiers commités$ git clone https://juliendehos@github.com/juliendehos/projet_l3
Clonage dans 'projet_l3'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Dépaquetage des objets: 100% (3/3), fait.
Vérification de la connectivité... fait.
$ git add proto.cpp Makefile
$ git status
Sur la branche master
Votre branche est à jour avec 'origin/master'.
Modifications qui seront validées :
(utilisez "git reset HEAD <fichier>..." pour désindexer)
nouveau fichier : Makefile
nouveau fichier : proto.cpp
$ git commit -am "mise en place du code, close #1"
[master eab4260] mise en place du code, close #1
2 files changed, 9 insertions(+)
create mode 100644 Makefile
create mode 100644 proto.cpp
$ git push
Password for 'https://juliendehos@github.com':
Décompte des objets: 4, fait.
Delta compression using up to 4 threads.
Compression des objets: 100% (3/3), fait.
Écriture des objets: 100% (4/4), 447 bytes | 0 bytes/s, fait.
Total 4 (delta 0), reused 0 (delta 0)
To https://juliendehos@github.com/juliendehos/projet_l3
bd1f597..eab4260 master -> master
créer une branche locale :
$ git branch proto2
voir les branches locales :
$ git branch
* master
proto2
changer de branche :
$ git checkout proto2
Basculement sur la branche 'proto2'
voir les branches distantes :
$ git ls-remote
From https://juliendehos@github.com/juliendehos/projet_l3
4fca7ad38b299acdb7453547d5c9fc1d2494e4cc HEAD
4fca7ad38b299acdb7453547d5c9fc1d2494e4cc refs/heads/master
envoyer une nouvelle branche sur le serveur origin
:
$ git push -u origin proto2
Password for 'https://juliendehos@github.com':
Décompte des objets: 2, fait.
Delta compression using up to 4 threads.
Compression des objets: 100% (2/2), fait.
Écriture des objets: 100% (2/2), 266 bytes | 0 bytes/s, fait.
Total 2 (delta 0), reused 0 (delta 0)
To https://github.com/juliendehos/projet_l3
* [new branch] proto2 -> proto2
La branche proto2 est paramétrée pour suivre la branche distante proto2 depuis origin.
exemple :
-- B (proto2) -- B -- (proto2)
/ -> / \
A -- C (master) A -- C -- D (master)
passer sur la branche qui doit recevoir la fusion :
$ git checkout master
Basculement sur la branche 'master'
fusionner :
$ git merge proto2
Merge made by the 'recursive' strategy.
proto2.cpp | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 proto2.cpp
éventuellement, vérifier le log :
$ git log --oneline --decorate --graph
* 82eb957 (HEAD, master) Merge branch 'proto2'
|\
| * e29caa2 (origin/proto2, proto2) début proto2
* | 7c13fc0 modif proto1
|/
* 4fca7ad (origin/master) mise en place du code, close #1
ne pas oublier de pusher
## Au début du projet
## Tout au long du projet