« Développement collaboratif » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
mAucun résumé des modifications
Ligne 1 : Ligne 1 :
[[category:programmation]]
[[category:programmation]]
{{stub}}
{{En construction}}


'''Citation de Kant''' :  
'''Citation de Kant''' :  

Version du 31 janvier 2008 à 13:46


Cet article est en construction: un auteur est en train de le modifier.

En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.



Citation de Kant :

...l'on ne peut point considérer sans admiration combien, dans l'intelligence commune de l'humanité, la faculté de juger en matière pratique l'emporte de tout point sur la faculté de juger en matière théorique.

Introduction

Nous avons souvent l'occasion d'entendre parler de développement, de collaboration et nous avons tous une certaine expérience du travail d'équipe ainsi qu'une (probablement) certaine expérience de la programmation.

Le monde de la programmation est une sorte de vase clos. Le programmeur a tendance à s'enfermer dans un langage de programmation et à limiter ses interactions directes avec les autres programmeurs que lorsqu'il rencontre des ennuis ou qu'il s'ennuie. Il y a dans les entreprises de développement collaboratif une façon globale d'organiser le développement, selon une structure, dans un objectif précis et une séparation des tâches à effectuer.

Mais qu'en est-il dans la réalité, lorsqu'un des développeurs a besoin de changer un bout de code dans un fichier ? Comment des équipes font-elles pour ne pas corrompre le travail des autres en écrasant malencontreusement un fichier mis à jour par un autre ? Cela nous est tous arrivé de perdre des données par une bêtise toute bête, alors imaginez en multipliant le nombre d'utilisateur d'un même espace !

Le collaboratif sans organisation finalement, ça n'est rien de plus que de ne pas toucher le travail de l'autre, ainsi cela crée des frontières importantes entre les travaux de chacun et il arrivait fréquemment qu'à cause de ces frontières, chacun développait son bout de code à sa sauce afin de faire rouler sa partie d'application. Créant de la redondance à perpétuité.

Aujourd'hui, nous avons droit à des outils suffisamment performant pour permettre une véritable collaboration au travers de l'équipe de programmation. Ces outils sont en fait des dépôts où l'on place une copie primaire d'une application. Ce dépôt va ensuite conserver une copie de chaque version de chaque fichier qui sera placé à l'intérieur. Chaque développeur devra ensuite mettre à jour sa copie de travail de l'application avant d'y opérer des modifications. Dés qu'il a terminé ses modifications, il devra mettre à jour la version primaire, afin que les autres programmeurs puissent travailler avec ses transformations et les valider.

Rien de bien différent que de travailler avec un bon vieux FTP me direz-vous. Erreur, car lors de la mise à jour, il y a une vérification des deux copies des fichiers et si un autre à travailler sur le même fichier, il sera prévenu du risque d'écrasement et devra scinder les modifications apporté par l'autre pour pouvoir mettre à jour la version primaire.

Quelques définitions

Dépôt (ou repository)
Il s'agit d'un serveur de fichiers, chacune des versions de chaque fichier y sera enregistré.
Il est toutefois plus pratique de les considérer comme le répertoire principal des fichiers du projet, dans sa globalité.
Copie primaire
C'est la seule et unique version des fichiers présents sur le dépôt (repository).
C'est la base de tout !C'est à partir de cette copie que chacun pourra avoir une mise à jour du travail des autres.
Elle n'est présente que sur le serveur de fichiers.
Copie de travail
Cette copie est possédé par tous ceux qui veulent participer au développement d'un projet.
Cette copie existe sur l'ordinateur de tous les programmeurs actifs.
La tâche leur incombe de la mettre à jour avant de travailler dessus.
Copie de bêta-testeur
C'est une copie des projets en évolution que certains projets mettent à disposition de tout un chacun. Cette copie ne pourra qu'être téléchargé sur l'ordinateur personnel et les modifications apportés aux projets ne pourront être mises à jour sur la copie primaire.


Les bonnes pratiques

Les moins bonnes pratiques

Les outils

Subversion - de son petit nom SVN
Évolue assez rapidement, est aujourd'hui le standard en matière de développement collaboratif
Concurrent Versioning System - de son petit nom CVS
Est encore utilisé dans plusieurs projets qui ont la vie dure, mais la plupart des projets transitent tranquillement vers le SVN

Les outils d'outils

Une certaine maîtrise du Linux

TortoiseSVN

TortoiseCVS


Intégration des outils dans les IDE

Eclipse, Zend, Dreamweaver?

Historique

Quand les utiliser