Habituellement, lorsque je programme, j'ai une tâche claire devant moi, mais je trouve des choses ennuyeuses que j'aimerais nettoyer au fur et à mesure.
Ici, je vois trois options:
- Faites-le plus tard (peut oublier / devoir passer du temps à ajouter un billet)
- Faites-le maintenant et engagez-le avec mon travail actuel (peu clair)
- Faites-le maintenant et validez-le séparément (devez le trouver, cela pourrait faire une erreur et opter involontairement pour l'option # 2)
C'est probablement assez basique, mais comment contourner cela en utilisant svn / git / other?
version-control
git
svn
workflows
Nattfrosten
la source
la source
rebase
au lieu demerge
.Réponses:
Personnellement, je pense que cela dépend :-).
Pour les petits correctifs , l'option trois (maintenant, dans un commit séparé) est la meilleure, car la surcharge de le faire plus tard n'en vaut pas la peine. Dans ce cas, vous créez simplement un commit séparé. Comment faire cela dépend du VCS que vous utilisez, et c'est une question distincte :-).
S'il s'agit d'un correctif plus important , vous créez un ticket. Sinon, vous risquez constamment de dérailler de votre tâche principale ("Oh, regardez, une autre occasion de refactoring, oh, il y en a une autre, et là, et là ...").
la source
Considère ceci. Lorsque vous "trouvez des choses gênantes (...) à nettoyer" et que vous prenez une décision exécutive pour le faire, vous coupez le reste de votre équipe d'une discussion et d'une décision sur les priorités. Vous laissez votre agenda l'emporter sur tout le monde en raison de votre relation privilégiée avec le code. Je ne pense pas que ce soit bien. Par expérience, cela conduit également à des ressentiments d'équipes / actionnaires.
Au lieu de cela, créez un problème / tâche pour le nettoyage / refactoring. Bien qu'il soit frais dans votre esprit, énumérez les raisons pour lesquelles il est important: des estimations de stabilité accrue, de facilité d'entretien, ce genre de chose. Peut-être inclure une estimation de l'effort en fonction du fonctionnement de votre équipe. Ensuite, lors de votre prochaine réunion de sélection / affectation / priorités de tâches, présentez votre tâche de refactoring et positionnez-la par rapport à d'autres tâches. En équipe, décidez quand elle doit être terminée.
S'il vous plaît, ne pensez pas que je vous dis de faire preuve de bon sens au nom des principes. Utilise ta tête. S'il y a quelque chose de laid dans la fonction que vous éditez, ce n'est pas une nouvelle tâche de refactoring. Corrigez-le et vérifiez tout. Si renommer la propriété avec laquelle vous travaillez en quelque chose de plus sensible affecte quelques fichiers source supplémentaires, ce n'est pas une nouvelle tâche de refactoring. Corrigez-le et vérifiez tout. Si, d'autre part, vous n'aimez pas la façon dont un autre développeur (Mitch, je déteste ce gars) a fait quelque chose dans une fonction que vous n'éditez pas et ladite fonction semble fonctionner correctement, laissez-le tranquille pour l'instant. Créez une tâche de refactoring et présentez votre cas à votre équipe.
Si la refactorisation est toujours rejetée par votre équipe en faveur de nouvelles fonctionnalités, commencez à chercher un autre emploi. Il est plus facile de trouver un emploi quand vous en avez déjà un.
la source