Souvenirs de développeur

La reconnaissance éternelle existe-t-elle pour les développements informatiques ? Si un des buts de l’informatique est la préservation de la mémoire, la question se pose pour les écrits des informaticiens : le code. Combien d’applications ont disparu parce que le support sur lequel elles étaient stockées a été détruit ?

Relativisons un peu. Dans le lot, il y a surtout des projets d’étudiants, des “Hello World” ou des d’applications dont l’intérêt limité n’avait pas de raison de perdurer. De plus, les supports de l’époque sont devenus parfois illisibles. S’il s’agissait de programmes nécessaires, ils ont été réécrits intégralement. 

Mais la persistance du code source d’une application n’a pas toujours été la priorité. Tout développeur connaît cette application codée WinDev dont les sources sont sur un PC d’il y a 20 ans. Personne n’ose y toucher tant que le service est rendu. Mais le client réclame une évolution. L’ordinateur support démarrera-t-il ?

Il faut dire qu’à l’époque, la gestion des sources était … naïve. Cela a commencé par le premier projet étudiant où, de temps en temps, le répertoire qui contenait les programmes était dupliqué. Version 0.0, Version 0.1, … Les programmes étaient parfois suffixés par ‘sav’ ou ‘old’ pour indiquer qu’une version plus récente était en cours de conception.

Avec ce type de développement, le travail collaboratif n’était pas aisé. Mais les sources progressaient au fil des versions et le partage à ses camarades était sur une disquette (ou une clé Usb).Un crash du disque dur et le projet disparaissait dans les limbes de l’informatique et l’étudiant était bon pour tout recoder en un temps record.

De bonnes pratiques se devaient d’être appliquées et restent d’actualité. Un projet se doit d’être sauvegardé régulièrement et sur plusieurs supports. Pour le travail en équipe, il doit être disponible sur un réseau interne ou externe. Chaque participant doit indiquer sur quel élément il travaille. 

La baisse des prix du matériel informatique et la démocratisation d’Internet ont facilité les stratégies pour gérer les sources. Un programme écrit sur un ordinateur se doit d’être enregistré sur un support externe et sur un serveur distant (le fameux Cloud). Ainsi, même si une copie ou l’original vient à disparaître, la récupération est simple. 

Des logiciels pour réaliser cela sont légions de nos jours. S’il y en a un à retenir c’est Git et son clone Internet Github. Git est connu de tous les informaticiens et simplifie la gestion des versions et le travail collaboratif. C’est lui que j’ai utilisé pour créer mon application et la diffuser par la suite. 

Git est un service qui assure le suivi des versions d’un projet. Par des commandes simples, il permet : 

  • d’initialiser un dépôt, l’arborescence où sont stockées les programmes de votre application : git init
  • d’indiquer les fichiers dont on veut suivre les versions : git add …
  • de valider les modifications : git commit …
  • ou de revenir dans la version précédente d’un élément du programme : git reset …

Le service Git distingue les différents états d’un projet en les découpant en branches. La branche principale, appelée ‘main’ est la version principale d’un projet. Des branches parallèles peuvent être créées pour tester des évolutions sans risquer de corrompre l’application en cours d’utilisation. Une commande, git merge, sauvera dans la branche principale les développements validés. 

De nombreuses ressources sont disponibles pour présenter l’outil et son utilisation quotidienne pour un développeur. 

Git ne se limite pas à un répertoire sur un support local. Il est possible de synchroniser ses dépôts sur des machines distantes (gitlab) ou sur un service Internet : github. Ce dernier recense les projets de millions de développeurs. De nombreuses sources sont accessibles à tous (public).

Vous bloquez sur un problème, une recherche sur github pour voir si quelqu’un n’a pas trouvé la solution. Vous voulez créer un logiciel mais ne voulez pas tout réinventer, git clone et vous partez d’une base créée par un autre développeur. Vous voulez participer au développement d’un logiciel que vous utilisez régulièrement, vous pouvez. 

La base de données gihub est l’outil ultime pour les développeurs. Il sera peut-être  remplacé par un meilleur système dans le futur, mais aujourd’hui, il permet à tout développeur de travailler l’esprit libre sur l’avenir de son code … et donc de son projet. 

Connaître les outils est une chose, les utiliser correctement en est une autre. Mais avec eux, même le plus banal des projets ne sera plus perdu. D’ailleurs, il me faut penser à faire le ménage. Ai-je besoin de conserver des projets obsolètes ?  

Partager l'article !!

J’ai de la chance !!!