Veille technologique - Développement collaboratif
Sommaire :
I - Présentation :
Qu'est-ce que le développement collaboratif ?
Il s'agit d'une organisation spécifique du travail de groupe sur un ensemble de fichiers qui forment a priori un projet spécifique.
Dans le domaine de l'informatique, il existe une multitude d'outils qui permettent de réaliser un developpement collaboratif efficace.
Lexiques :
Owner : Administrateur (les développeurs du projet qui ont tous les droits et qui participent le plus au projet.)
Commitor : Personne travaillant sur le projet ayant moins de droit que le "owner".
Contributor : Personne qui participe occasionnellement au projet mais ne peut le modifier.
Patch : Méthode utilisée pour apporter de nouveaux éléments au projet sans le modifier.
Commit : Une sorte de publication (Mise a jour du projet sur le serveur).
Branch : Copie d'une fonctionnalitée ou d'une application pour pouvoir le modifier sans impacter le projet.
Tag : Le Tag est un "instantané" du travail à un instant précis. C'est comme si on prenait une photo d'une partie du projet.
Update to Head : Moyen par lequel les utilisateurs peuvent récupérer le travail des autres.
Merge : Outil de copie entre deux Branch ou une Branch et la version principale (souvent appelée Trunk).
II - Mise en place de la veille :
- Récolte
Nous avons récolter nos informations à l'aide d'outils de recherche comme Google Alerts par exemple pour récolter des informations sur notre veille.
- Le flux RSS sur 01.net.pro via feedity.
- Wikipedia
- Google Alerts
- Recherche Google
- Analyse
Nous avons analysés les récoltes d'informations en les triant pour en tirer les meilleurs informations possibles et qu'elles ne soient pas trop anciennes.
Les critères de pertinence de l'informations sont :
- regarder si le document répond à notre thème
- la source (d'oû il vient) : source fiable (état, institution, entreprise) ou non (blog, écrit autodidacte)
- la date (entre 2009-2015)
- s'informer sur l'auteur du document (compétence, exactitude, sincérité)
- Diffusion
Grâce au Pearltrees que nous allons présenter ensuite, nous verrons qu'il est possible de se créer un arbre de recherche d'informations et de pouvoir le partager pour que d'autres personnes puissent le consulter.
Pearltrees est un service en ligne apparu en décembre 2009, développé par une société basée à Paris. C'est un service qui permet à ses utilisateurs d'organiser, d'explorer et de partager des pages web, des notes, des photos ou des fichiers. Suivant la logique du content curation (faire ressortir le meilleur contenu du web).
Accès au Pearltrees (et autres outils) :
- google alerts --> ici
- pearltrees pour la diffusion --> ici
- utilisation de la recherche avancées de google
- activation d'un flux rss sur 01.net.pro via feedity --> ici
III - Git :
C'est un logiciel libre créé par Linus Torvalds, auteur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2. Similaire en cela à BitKeeper, Git ne repose pas sur un serveur centralisé. C'est un outil de bas niveau, qui se veut simple et performant, dont la principale tâche est de gérer l'évolution du contenu d'une arborescence.
Git n'a pas de serveur ni de client, il n'y a qu'un seul programme unique. Chaque développeur dispose de son propre repository en local sur sa machine, et toute la subtilité de ce système est qu'on peut échanger des données entre les repositories. Cela s'appelle un système de versionning décentralisé.
IV- SVN :
SVN fonctionne selon un modèle client/serveur : le serveur SVN contient le repository, et les clients envoient le code au serveur SVN. Le repository est unique, tout le monde utilise le même, on appelle cela un système de versionning centralisé.
SVN est un site web destiné aux développeurs intéressés par le développement relatif à Google. L'entreprise y diffuse des codes sous licence libre.
V - Scénario :
Scénario : 2 développeurs (owners), 1 committor et 1 contributor
Au début du projet, nous avions défini un scénario pour utiliser les fonctionnalités de base des deux outils avec Eclipse.
Mise en place d'un commit sur le contructeur, d'un "update to Head" sur un autre compte pour récupérer la modification. Les stats, les annotations, les modifs(graphique) sur Google Code pour SVN. Même chose pour Git (constructeur + commentaires...). Explication sur le patch, c'est le seul moyen de participer au projet car le contributor ne peut pas commit.
VI - Synthèse entre Git et SVN :
Ces 2 logiciels sont les principaux utilisés dans le monde du développement collaboratif.
SVN est un puissant outil de gestion de versions. Indispensable pour le développement en équipe !
SVN n'est pas un système de sauvegarde, il permet un suivi de versions précis, à condition de bien l'utiliser.
Git gagne de plus en plus de terrain(nouvelle génération,décentralisé...).
De nombreuses intégrations (IDE, clients indépendants) sur toutes les plateformes.
Une des particularités de Git, c’est l’existence de sites web collaboratifs basés sur Git comme GitHub et Gitorious.
C’est une sorte de réseau social pour développeurs : vous pouvez regarder tous les projets évoluer et décider de participer à l’un d’entre eux si cela vous intéresse.
SVN |
GIT |
||
Avantages |
Inconvénients |
Avantages |
Inconvénients |
Possibilité de cloner qu’une partie d’un projet |
Les commits nécessitent une connexion au réseau |
Très rapide |
Très grand nombre de commandes |
Beaucoup plus d’interfaces utilisateurs que sous GIT |
Copie de tout le projet pour créée une "branch" |
Les Branches sont beaucoup plus simples à gérer |
Pas pratique avec Windows |
Plugins très nombreux |
Gestion des branches, tags, patch complexe |
Possède son propre outil de dépôt de projet : GitHub |
Outils/Plug-in moins nombreux |
Plus simple d’utilisation, souple |
Poids des fichiers |
Pas de serveur à installer et à gérer |
Complexité d'utilisation |
|
Beaucoup de difficultés lors de la résolution d’un problème |
Communauté très présentes |
Sécurité des données |
|
|
Moins de conflits lors des merges |
|
Git | SVN | |
Systeme de gestion de version |
Décentralisé | Centralisé |
Hébergement des projets | Un seul programme unique | Client/Serveur |
Suivi des problèmes | Debogage avec la communauté | Tout seul |
Suivi des versions | Oui | Oui |
Sécurité | Importante fourni par GitHub | L'utilisateur assure sa propre sécurité |
Langage Utilisé | C | Python |
Les risques ?
Avec l'outil Git, vu que ses données sont stockés sur un serveur externe, la sécurité des données n'est pas fiable à 100%. Il peut y avoir des pertes d'informations qui risquent de pénalisées l'ensemble d'un projet.
Avec l'outil SVN, l'entreprise doit être capable d'assurer elle-même la sécurité des données, ce qui n'est pas le cas de chaque entreprise.
Conclusion sur la veille « développement collaboratif » :
GIT est de plus en plus utilisé par les utilisateurs, le 23 décembre 2013, GitHub a annoncé qu'il avait atteint 10 millions de projets.
L’un de ces gros avantages est le fait de pouvoir travailler sans être connecté au serveur.
GIT possède sa propre plate-forme d’hébergement de projet : GitHub, qui dispose d’une communauté très actif et à l’écoute des problèmes. Pour SVN on doit passer par des hébergeurs externes comme Google code.
GIT serait le logiciel le plus efficace pour réaliser un projet informatique au sein d’une entreprise, malgré quelques défauts, il me paraît être la meilleur solution qui est disponible sur le marché en ce moment. (sachant que je donne mon avis sans connaitre la vie en entreprise, je n'ai pas assez d'expérience pour donner mon avis là-dessus)
VII - Sources :
https://fr.wikipedia.org/wiki/Forge_(informatique)
https://fr.wikipedia.org/wiki/Cat%C3%A9gorie:Forge_logicielle
https://www.projet-plume.org/ressource/faq-forge
https://www.modelia.org/html/9_fichesTechniques/lesPdf/forge.pdf
https://www-igm.univ-mlv.fr/~dr/XPOSE2003/cvs-eclipse/devco.htm
https://fr.wikipedia.org/wiki/Git
https://ccri.in2p3.fr/?q=node/333
https://fr.slideshare.net/lolautruche/subversion-utilisation-et-bonnes-pratiques
https://blog.netapsys.fr/svn-branches-et-tags/
https://openclassrooms.com/courses/gerez-vos-codes-source-avec-git
https://lecriduweb.fr/blog/2015/03/13/google-code-ferme-ses-portes-nous-on-les-ouvre/