Utilisez-vous ceci ou un workflow de branchement git similaire?
Nous utilisons un workflow similaire au travail, mais un peu moins compliqué. Il est cependant grandement inspiré par ce workflow, puisque j'ai lu cet article plusieurs fois. J'ai même le pdf du modèle de branchement imprimé en couleurs à côté de mon bureau :)
Considérez-vous cela comme une approche productive?
Productif. Comment définissez-vous la productivité? Eh bien, dans mon esprit, il est très important d'avoir une qualité élevée, au moins pour essayer d'obtenir une meilleure qualité tout le temps. Améliorer constamment le processus, etc. Si vous pouvez produire un code de qualité, la productivité en bénéficiera. La question est donc vraiment: cela améliore-t-il la qualité du logiciel? Et ma réponse est définitivement oui.
Ce que j'aime le plus avec ce type de modèle de branchement, c'est qu'il introduit des branches dans différentes couches de qualité. Plus l'image est à droite, plus la stabilité et la qualité sont élevées. La branche maître est sainte et tous les engagements doivent être considérés comme des versions stables du logiciel. Plus vous allez vers la gauche, plus expérimental et plus la stabilité est faible.
Dès que vous testez de nouvelles fonctionnalités et corrections de bogues, vous pouvez les transférer progressivement de gauche à droite et ainsi vous déplacer dans du code de haute qualité exactement lorsque vous savez que le code répond aux exigences de qualité que vous exigez du code. Eh bien, au moins en théorie, car vous ne pouvez pas tout tester à 100% et sachez avec certitude que le code ne contient aucun bogue, car il aura toujours des bogues. Mais cela vous permet de garder une confiance élevée.
En tant que programmeur, rien n'est plus nul que de travailler dans un système où personne n'a confiance dans le code, car ils savent qu'il est nul et qu'il contient une merde de bogues.
Voyez-vous des défauts avec cette approche? Un inconvénient potentiel?
Il est important de réfléchir à votre modèle de branchement afin qu'il corresponde bien aux besoins de votre organisation. Le fait que ce modèle fonctionne bien pour certaines personnes ne signifie pas nécessairement qu'il est optimal ou souhaitable pour une autre.
Il y a toujours des compromis et même dans ce cas. Un compromis est le nombre de branches par rapport à la complexité. En introduisant de nombreux types de branches différents, vous augmentez la complexité du flux de travail. Par exemple, il peut être tout simplement faux de forcer toujours les gens à créer une nouvelle branche de fonctionnalité, lorsqu'ils essaient de corriger un simple bogue en modifiant quelques lignes de code.
Nous savons tous que les bugs sont plus ou moins compliqués à résoudre. Ainsi, lorsqu'un bug trivial est découvert, vous voudrez peut-être réduire la complexité et l'administration pour vous débarrasser de la surcharge supplémentaire et laisser les gens s'engager directement par exemple dans le master ou développer la branche. Mais comme la nature de vos correctifs devient plus compliquée, cela vaut la peine de surcharger pour leur créer de nouvelles branches. Surtout si vous n'êtes pas sûr de sa taille et de sa longueur ou si vous souhaitez améliorer la collaboration entre vous et les autres développeurs.
Si vous avez une meilleure approche, pourriez-vous partager ou fournir un lien vers un article ou une discussion à ce sujet?
Il s'agit sans aucun doute d'une bonne approche et elle pourrait convenir à la plupart des cas, car la plupart d'entre nous ont des processus de développement similaires, mais elle pourrait ne pas convenir à tout le monde. Je vous invite fortement à réfléchir à la façon dont vous gérez votre code en ce moment et à essayer de créer un modèle de branchement qui correspond à celui que vous avez déjà.
Le point le plus important est de commencer avec git et le reste suivra naturellement. Commencez simplement et améliorez progressivement! Sois créatif!
À votre santé