• Home
  • Nous contacter

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab
Outils

Workflow de développement avec Git & Github

Dans cette article, nous allons parler de SVN, du couple Git et Github et enfin de notre nouvelle méthodologie de travail liée aux projets.

SVN

Le logiciel de gestion de version historique chez AdFab Connect est Subversion (ou SVN). Celui-ci s’appuie sur le concept d’un dépôt centralisé et unique.

http://upload.wikimedia.org/wikipedia/commons/1/1a/SVN_Server_Client_Structure.png

Il a été créé en 2000 pour remplacer CVS en le rendant plus performant :

  • Il permet le renommage et le déplacement de fichiers ou de répertoires sans en perdre l’historique
  • Les métadonnées (droits de lecture, d’écriture sur un fichier, …) sont versionnées
  • Les révisions (numéros de versions) sont globales aux projets
  • Prise en charge des branches

 

Présentation de Git

Comme SVN, Git est un système de gestion de version. Son principe est d’avoir un référentiel du code sur un serveur et accessible à tous les développeurs. Il est conçu pour travailler efficacement  sur les projets en équipe. Contrairement à SVN, Git est un système dit « distribué« . C’est à dire que chaque développeur dispose d’une copie de travail et de ses versions sur sa machine en local et peut se les échanger via le serveur.

Présentation de Github

Github est une interface Web permettant de gérer plus facilement les projets sur le serveur distant. Il donne le moyen aux différents acteurs du projet d’interagir ensemble au travers de proposition de code, ou en utilisant le wiki. De plus, Github met à disposition un outil de ticketing (comme Jira ou Redmine), et même un flux d’activité. On peut aussi voir plus facilement les modifications faites sur un projet. Enfin il permet de participer plus simplement aux projets open source via le système de fork, qui est un clone du projet source et qu’on peut modifier comme on le souhaite. Les projets open source seront l’objet d’un autre post sur ce blog.

Mais le plus grand avantage de Github, c’est la gestion des branches et des pull request. Une pull request est un moyen simple de proposer du code en vue d’une intégration au cœur d’un projet. Celle ci est créée à partir d’une branche et Github propose une vision simplifiée des modifications et un fil de discussion. Celui qui possède le projet source, peut à tout moment intégrer ou pas cette proposition de code dans le projet.

Enfin, Github propose une interface de documentation de type Markdown. Markdown est un langage de balisage très léger. Ainsi la documentation est relativement facile à faire et est directement formaté sur Github.

Worklow avec Git & Github

Afin d’utiliser pleinement les possibilités de Git & Github, nous allons adopter un nouveau workflow de travail. En effet, ces deux outils nous permettent d’utiliser une nouvelle stratégie concernant nos développements : le branching model.

http://nvie.com/img/2009/12/Screen-shot-2009-12-24-at-11.32.03.png

Ainsi, nous avons différentes branches :

  • la branche master :  cette branche est utilisée en production
  • les branches de release : ces branches permettront de préparer les mises en production
  • la branche develop : cette branche est le point de départ de tous les développements. Develop doit être sain et ne pas comporter de bug.
  • les branches de fonctionnalités : ces branches permettent d’ajouter des fonctionnalités aux projets. Ces branches sont ensuite « pull-requester » pour la branche develop.
  • les branches de « hotfix » : Ces branches ne doivent généralement pas exister, mais malheureusement elles existent. Elles permettent de corriger très rapidement un bug sur la branche « master » et donc sur la production.

Avantages

Ce worflow va permettre tout d’abord de mettre un cadre à tous nos développements. De plus, on a une qualité des livrables accrue puisque les products owners savent ce qui va exactement passer en production. Ensuite grâce à la relecture de code, on améliore la qualité technique des projets et les développeurs progressent.

Accompagnement

Un nouveau workflow de travail implique beaucoup de changement et n’est pas une chose aisée. Ainsi, nous avons  décidé d’utiliser un projet pilote pour mettre en place ce nouveau workflow. Une aide personnalisée pour chaque développeur a été ainsi mise en place afin d’accompagner au mieux ce dernier dans ce changement. Une présentation a été faite afin d’impliquer toutes les parties dans cette nouvelle méthode de travail.

Conclusion

La mise en place de Git et Github sur le projet pilote est une réussite. Toutes les personnes travaillant sur ce projet ont bien appréhendé ce nouveau workflow et ces nouvelles technologies. Nous allons progressivement utiliser Github sur tous nos projets.

Github AdFab Connect

30/11/2013 28 MIN READ BY: Thomas ROGER 0 COMMENT
SHARE
LIRE LA SUITE

Thomas ROGER

Importer des données e-commerce avec l’ETL Talend Open Studio

A la découverte du responsive

VOUS POURRIEZ AIMER

L'actualité AdFab Outils Migration d’un projet de SVN à GIT

Outils Queasy

Outils GitKraken – libérez vous du terminal

Outils Snippets Facebook JS

Outils Ardui what?

Outils Radar des Technologies ThoughtWorks : Janvier 2014

A propos d’Adfab

Nous sommes un studio de production digitales et d’innovation digitales au service des agences et des annonceurs
Nous recherchons le scintillement dans les regards et le plaisir de réalisations sur-performantes
Nous sommes techno-agnostiques
Nous sommes Adfab

Le blog d'Adfab
Copyright © 2018 Adfab Connect