Le développement collaboratif

Page 1 sur 3Lecteur de document UniversityLib

Le développement collaboratif

Développement, Intégration Continue, Gestion de Version · course

Browse all gestion et économie documents

Le développement collaboratif

Introduction

Ø Nécessité de mettre en place des outils pour faciliter le partage et la

collaboration

Ÿ Un développeur ou un testeur va rarement travailler tout seul sur un projet

Ø Les outils de partage de fichiers génériques ne sont pas suffisants

Ÿ Il existe de nombreuses solutions pour partager de l’information

ú Mail, Dropbox, clé usb…

Ÿ Mais elle sont pensées pour du partage 1 – 1 et pas N-N

Ø Dans une équipe de développement et de test il va donc falloir utiliser des

solutions permettant

Ÿ De tracer les changements

Ÿ De partager les changements

L’intégration continue

L’intégration continue – Les systèmes de constructions

Ø L’intégration continue est une pratique de développement qui consiste pour

Ø Les systèmes de constructions (ou build) sont des éléments centraux de

les développeurs à déposer périodiquement leur code dans un espace

partagé

l’intégration continue

Ÿ Ils cherchent à maximiser la réutilisabilité entre projets

Advertisement

Ÿ A chaque dépôt, le code est vérifié, compilé et testé pour détecter rapidement les

Ÿ Assurent la gestion des dépendances, la construction automatique, l’exécution

problèmes

Ø C’est actuellement une des techniques les plus utilisées pour les projets open

source

3

des tests…

Ø Quelques exemples

Ÿ Ant

Ÿ Maven

Ÿ Gradle

Ÿ Travis (utilisé sur GitHub par exemple)

Ÿ …

2

4

L’intégration continue – L’exemple Git

L’intégration continue – L’exemple Git

Ø Git est un projet open source qui permet de faire du suivi de version

Ÿ 18 langages de programmation utilisés

Ÿ Il utilise lui-même l’intégration continue !

Ø Quelques chiffres: (source: https://www.openhub.net/p/git/)

Advertisement

Ÿ 1700 contributeurs pour 54969 commits

La gestion de version avec Git

Ø Rôles d’un gestionnaire de version

Ÿ Gérer l’historique

ú En enregistrant les nouvelles révisions à tout moment

ú En permettant de revenir à une ancienne version quand nécessaire (rollback)

Ÿ Documenter chacune des révisions en lui associant un message

ú Permet de suivre l’évolution du projet

Ÿ Enregistrer les informations de la personne qui a déposé la révision

ú Permet d’associer un responsable ce qui peut être utile en cas de litige

Ÿ Facilite le partage entre plusieurs postes

Ÿ Simplifie la gestion des conflits lors que deux personnes envoient deux

modifications du même code simultanément

ú Facilite la fusion (mais ne la fait pas seul)

Ÿ Simplifie le développement parallèle en permettant aux développeurs de

travailler dans de multiples branches

5

7

Ÿ Sur 30 jours 134 commits soit 1 commit toutes les 10 heures

La gestion de version avec Git

Ø ATTENTION ! Github n’est PAS Git !

Advertisement

Ø Git est un outil de gestion de version qui fait suite à SVN et CVS

Ÿ Il prend une approche décentralisée la où SVN et CVS utilisaient une approche

centralisée

ú Centralisée

ú Décentralisée

Source: S. Mosser

6

8

La gestion de version avec Git

La gestion de version avec Git

Ø Les branches sont un des éléments clés pour utiliser correctement un

Ÿ En pratique les branches ne sont rien de plus que des pointeurs dans lesquels

navigue git

ú Un pointeur désigne un commit

10

gestionnaire de version lorsque l’on est plusieurs à travailler sur un même

projet

Ÿ Permet d’avancer en parallèle et d’effectuer des commits sans avoir besoin de

gérer des conflits

Ÿ La fusion est réalisée lorsque la branche est devenue fonctionnelle et qu’on l’a

« renvoie » vers la branche maitre

Advertisement

Ÿ Principales commandes : git branch, git merge

Source:

https://fr.atlassian.com/git/tutorials/using

-branches/git-merge

La gestion de version avec Git

Ø Quelques commandes Git:

Ÿ git init : initialise un dépôt vide

Ÿ git clone : récupère une copie d’un dépôt existant

Ÿ git add : ajout d’un nouveau fichier ou d’un fichier modifié dans le commit

Ÿ git commit : enregistrement des modifications dans le dépôt local

Ÿ git push : envoie les modifications du dépôt local vers un serveur

Ÿ git pull : récupère les modifications depuis le serveur

Ÿ git status : permet de visualiser l’état du dépôt

Ÿ git branch : permet de gérer les différentes branches

Ÿ git checkout : permet de passer d’une branche à une autre

Ÿ git log : permet de visualiser les logs Git

Ø Un site à regarder : https://rogerdudler.github.io/git-guide/index.fr.html

9

11