⊗gtPmStPr 1 of 65 menu

Le problème des sauvegardes

Imaginez que vous avez un projet important. Vous le développez et à un certain moment, vous atteignez un niveau d'achèvement logique et vous publiez la version 1.0, que les utilisateurs commencent à utiliser.

Cependant, le travail ne s'arrête pas là et vous publiez la version 1.1 avec des corrections de bugs et des ajouts, puis la version 1.2, puis 1.3, et ensuite vous réécrivez tout à nouveau et annoncez la sortie de la version 2.0. Et ainsi de suite - le travail sur un projet ne se termine généralement jamais.

Cependant, pendant le développement, il y a un risque de casser quelque chose dans le code, ou de supprimer accidentellement le projet ou une partie de celui-ci. Pour ne pas perdre tout le travail, vous sauvegardez périodiquement le code du projet dans un dossier séparé. Vous numérotez simplement vos sauvegardes dans l'ordre, en indiquant un commentaire pour chaque sauvegarde, précisant quels changements vous avez apportés ou quelle fonctionnalité vous aviez déjà réalisée au moment de cette sauvegarde.

Cependant, il s'avère soudain qu'on ne peut pas simplement publier la version 2.0, parce que les utilisateurs de la première version protestent - ils ne sont pas encore prêts à passer à la seconde. D'accord, dites-vous, et vous commencez à travailler sur la deuxième version, tout en publiant des mises à jour pour la première en parallèle. Votre projet se divise en deux dossiers - un pour la première version et un pour la deuxième. Le dossier de sauvegarde se divise également. De plus, une partie du code de la première et de la deuxième version est identique. En apportant des corrections à ce code dans une version du projet, vous devez vous souvenir d'apporter les corrections dans l'autre version. Cependant, vous oubliez parfois de le faire. Des bugs étranges apparaissent. Le travail est ralenti.

Pendant le développement de la version 2.0, vous avez décidé d'ajouter une nouvelle fonctionnalité. Cependant, cela prend du temps et vous décidez de scinder la deuxième version en deux dossiers, en dupliquant le code. Dans le premier dossier, vous mènerez le développement ultérieur de votre projet, et dans le second, vous réaliserez la fonctionnalité imaginée. Enfin, la fonctionnalité est terminée. Pendant ce temps, le projet principal est devenu la version 2.3. Maintenant, vous devez fusionner le code avec la fonctionnalité dans le code principal du projet. Vous commencez à copier les fichiers de code dans le dossier principal, tout en résolvant les conflits entre le nouveau code et l'ancien. Cela vous prend trois jours de travail. Le travail est ralenti.

Le projet a grandi. Vous décidez d'appeler un ami à l'aide. Vous donnez une tâche à votre ami et lui envoyez une archive du projet. L'ami réalise la tâche et vous renvoie une archive avec de nouveaux fichiers, ainsi qu'avec les anciens, dans lesquels il a apporté des modifications. Vous passez une demi-journée à séparer les nouveaux fichiers des anciens. Ensuite, vous passez encore un jour à intégrer les modifications dans vos fichiers.

Vous appelez deux autres amis à l'aide. Maintenant, vous êtes quatre. Chaque jour, vous recevez des archives avec le travail effectué. Vous intégrez les nouvelles parties dans le projet et renvoyez à tous les archives du projet avec les modifications. Le travail avance lentement, car pendant que vous intégrez un changement, vos amis attendent que vous leur envoyiez la nouvelle version du projet et ne peuvent pas travailler davantage, pour ne pas se désynchroniser complètement.

Le dossier de sauvegardes contient déjà des gigaoctets de code. De plus, il contient principalement des doublons, car en modifiant une petite partie du code, vous sauvegardez quand même l'intégralité du projet. Vous décidez de nettoyer ce dossier, en supprimant les cent premières versions. Une semaine plus tard, il s'avère que les versions supprimées contenaient le code d'une fonctionnalité distincte, que vous aviez abandonnée à l'époque, mais que vous avez maintenant décidé de réintégrer. Mais le code de cette fonctionnalité est déjà supprimé, et il n'existe nulle part ailleurs. Vous réécrivez cette fonctionnalité. Le travail est ralenti.

Cela ne semble pas très agréable, n'est-ce pas ? Pourtant, les développeurs travaillaient vraiment comme je l'ai décrit ci-dessus auparavant. C'était, bien sûr, très peu pratique. C'est pourquoi un système spécial appelé Git est apparu, dont nous discuterons des possibilités dans la prochaine leçon.

Français
БеларускаяDeutschEnglishEspañolPortuguêsРусский
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser