Réalisations liées :

📫
Logo Image

Organisation et Versioning | Git

Git est un système de contrôle de version décentralisé créé par Linus Torvalds, le créateur de Linux. Il est conçu pour gérer tout, des petits aux très grands projets avec rapidité et efficacité. Dans le contexte professionnel, Git est un outil incontournable pour les développeurs et les équipes de développement. Il permet de garder un historique de toutes les modifications apportées à un projet, de travailler sur plusieurs versions du même projet en parallèle (grâce aux branches) et de collaborer facilement avec d'autres développeurs. Git a fait l'actualité récemment avec l'adoption croissante des approches de développement basées sur DevOps et l'intégration continue/déploiement continu (CI/CD), qui reposent fortement sur l'utilisation de Git pour la gestion des versions et la collaboration.

Depuis mes premiers pas dans l'informatique à INTECH jusqu'à mes expériences professionnelles, Git a été un compagnon constant. Mes interactions avec cet outil n'ont cessé de se raffiner avec le temps. Initialement, dans mes projets de groupe, nous attribuions une branche par membre de l'équipe tout en maintenant une branche principale pour fusionner les contributions individuelles.

Un an plus tard, j'ai découvert la gestion de projet agile SCRUM, qui préconise la création de branches par fonctionnalité pour mieux aligner le développement sur les itérations du projet, permettant ainsi de publier une version de l'application après la complétion d'un ensemble spécifique de fonctionnalités.

Lors de mon premier stage de six mois chez Berger Levrault, ma pratique de Git a été significativement bouleversée. J'ai eu l'occasion d'expérimenter avec le versionnement de mon application en utilisant un répertoire d'images Docker, marquant une évolution notable dans ma manière d'utiliser cet outil indispensable.

Lors de mon alternance à Kadys, j’ai eu quelques surprises, et parmi elles, j’ai découvert qu’ils n’utilisaient pas Git. Mais la raison est simple, ils codent majoritairement dans un langage natif à l’outil de GED Visiativ Document, ou plutôt une version de Delphi, et Visiativ Document lui-même fait office « d’outil Git » pour ce langage. Cependant, comme vous l’aurez surement déjà lu dans mes réalisations, K-Ptur est développé en C# et pour un outil comme celui-ci, il était crucial d’avoir de quoi le versionner afin de suivre les corrections apportées au fur et à mesure. Sans parler du fait que plusieurs versions différentes sont dispensées chez les clients et que les informations qu’on a sur ces K-Ptur c’est le numéro de build, autrement dit le 4ᵉ indice de la version qui se compose d’un nombre à cinq chiffres généré aléatoirement au moment de la génération des setups, et la date à laquelle les setups ont été générés. De plus, il n’y a pas de note patch, je vous laisse imaginer comment il est complexe de suivre les corrections et évolutions.

J’ai donc rapidement commencé à créer un répertoire GitLab pour l’entreprise, et y inclure les solutions existantes et développées en C#, comme K-Ptur. Déjà une bonne chose de faite, l’entreprise pourra non seulement se reposer sur ses deux oreilles, car les versions des solutions développées sont maintenant stockées en ligne, mais aussi faciliter et gagner du temps sur la passation des projets.

En effet, sur GitLab ou GitHub, vous pouvez retrouver le readme dont le markdown est retranscrit sur une page bien plus lisible pour chaque projet. J’ai entrepris le readme de K-Ptur, pour faciliter la passation, notamment si aucun développeur en charge de celui-ci n’est présent. Dans ce readme se trouvent différentes astuces et autres conseils sur le projet. Cela fera gagner un temps considérable pour un nouvel arrivant. Par la suite, j’ai découvert l’existence des githooks, qui permettent de déclencher un script à la suite d’une action effectuée sûr Git, comme un pull, un commit, ou un push. J’en parle d’ailleurs plus en détail dans mes réalisations sur le projet K-Sol.

Je dirais que mon niveau de maîtrise de l'outil Git est intermédiaire. Je suis à l'aise avec les commandes de base et j'ai une bonne compréhension du flux de travail de Git.

Je reconnais qu'il y a encore beaucoup à apprendre sur Git, en particulier en ce qui concerne les fonctionnalités avancées comme la réécriture de l'historique, le rebasage interactif et la gestion des sous-modules.

Git est un outil essentiel pour moi en tant qu'ingénieur logiciel. Il me permet de gérer mon code de manière efficace et de collaborer avec d'autres développeurs.

Avec l'expérience que j'ai aujourd'hui, je recommanderai à tous les développeurs de se familiariser avec Git le plus tôt possible en passant par ce tutoriel. C'est un outil puissant, et j’ajouterais même indispensable dans le monde professionnel en général, qui peut grandement faciliter le processus de développement.

Image

À moyen terme, je vise à maîtriser pleinement Git, y compris ses fonctionnalités les plus avancées. Je souhaite être capable de gérer efficacement des projets de grande envergure et de résoudre rapidement et efficacement tout problème lié à la gestion des versions.

Pour atteindre cet objectif, je prévois de suivre des formations en ligne sur les fonctionnalités avancées de Git et de travailler sur des projets personnels pour mettre en pratique ces connaissances.