Nous avons un projet qui devait être radicalement descopeaux afin d'expédier à temps. Il a laissé beaucoup de code qui n'est pas réellement utilisé. Je veux nettoyer le code en supprimant tout bois mort. J'ai le pouvoir de le faire et je peux convaincre les gens que c'est une chose raisonnable commercialement à faire. [J'ai beaucoup de tests d'unités automatisés, certains tests d'acceptation automatisés et une équipe de testeurs qui peuvent tester manuellement le test de régression.] P>
Mon problème: Je suis un manager et je ne sais pas techniquement comment y aller. p>
Toute aide? P>
4 Réponses :
Assurez-vous que tout est enregistré dans votre système de contrôle source et étiqueté comme une version spécifique (préerlalease ou quelque chose que vous pouvez vous rappeler) p>
Sauvegardez le code sur site et hors site p>
Exécuter un outil d'analyse statique sur le code pour identifier le bois mort p>
Supprimer le bois mort p>
Reconstruire et réexécuter tous les tests P>
ou vous pouvez simplement l'ignorer; -) p>
Si ce n'est pas cassé, ne le répare pas! ... +1 pour obtenir des conseils sonores sur l'approche "dogmatique" et "pragmatique"!
Cependant, je pose ce code mort du code brisé: tandis que la demande en tant que telle fonctionne avec ou sans, le code mort ajoute des travaux supplémentaires pour vos développeurs, en particulier à long terme lorsque les anciennes mains se déplacent vers d'autres projets et de nouveaux Devs ont du mal à comprendre L'application.
Merci Lars. Je rencontre constamment du code désespérément compliqué développé par des personnes aussitôt peur de réellement fixer le code qu'ils ne comprennent pas et tentent sans cesse de trouver le changement le moins risqué qui traitera de "le problème d'aujourd'hui". L'adage "Si ce n'est pas cassé, ne le répare pas" conduit souvent dans la pratique au code plus fragile et plus fragile et incommayable. Cela ne suggère pas que la réécriture constante du code de travail est une bonne idée. Martin Fowler a écrit beaucoup de bonnes choses quand vous devriez et ne devriez pas retravailler le code "fonctionnant". Mais l'élimination du code inutilisé devrait être une évidence.
Je ne pense pas qu'il n'y ait de moyen facile. Une idée que j'aime est d'écrire des tests d'acceptation automatisés assez complètes, puis d'utiliser un outil de couverture pour voir quel code n'était pas exercé. P>
Je suppose que la question est de savoir comment trouver le code qui n'est pas utilisé, correct? La réponse est un peu différente dans différentes langues, mais il existe des approches générales. Mon tout premier emploi en dehors de l'école était de trouver et de supprimer des dizaines de milliers de lignes de code inutilisé dans un grand projet d'expédition. P>
Le premier principe est de se concentrer sur ces choses qui sont jamais em> appelées plutôt que simplement inutiles. Trouver et éliminer le premier est une approche très mécanique et faible risque. Ce dernier est un effort de refactorisation et un peu plus complexe. Toujours mieux pour sortir les choses faciles d'abord. P>
Étant donné que, ce que vous voulez faire partie de l'analyse statique, et il existe une grande liste de Analyse statique disponible Outils sur Wikipedia. Vous devriez également rechercher un débordement de pile pour "Code mort" et votre langue (C ++, Java, etc.) Cette question a été posée de nombreuses façons différentes dans le passé. Généralement, vous exécutez un outil, voir ce qu'il dit n'est pas utilisé, supprimez-le, puis exécutez l'outil à nouveau pour trouver les éléments que seul le code mort utilisé. Répéter. P>
du point de vue d'un manager, vous êtes absolument ici. Le fait que vous ayez beaucoup de tests unitaires signifie deux choses: vous maintenez probablement des tests unitaires pour des choses que vous n'utilisez pas (et qui coûte de l'argent), et les tests que vous avez vous permettront de créer ce type de changement mécanique avec confiance. Le meilleur pari est de trouver quelqu'un sur votre équipe qui aime automatiser les choses; Ils ont souvent le bon état d'esprit de faire ce genre de travail. Si vous avez plusieurs personnes qui y travaillent, j'aurais une personne apprendre l'analyseur statique et élaborer un modèle à suivre. Puis divisez l'équipe en différentes parties du code afin de ne pas entrer en collision. P>
Ce type de travail peut aller très vite et a généralement une très bonne récupération. Assurez-vous simplement que les gens enlèvent une pièce à la fois, compiler, faire des tests simples, puis commettez cela avant de continuer. Régulièrement (généralement après un gros changement, ou du moins quotidiennement), effectuez un test complet de reconstruction propre et de «gros» pour vous assurer que vous em> vraiment em> n'ont rien brisé. La pire chose que vous puissiez faire est d'essayer de trouver chaque morceau de code mort dans le système et de l'éliminer à la fois, puis de commettre. Je promets que l'élimination de ces pièces brisera le système et vous ne pourrez jamais comprendre lequel c'était. Mais si vous travaillez méthodiquement, cela peut être une très faible activité de risque. P>
Tout d'abord, je suppose que votre code est vérifié à une sorte de contrôle de la version. Sinon, vous avez beaucoup de problèmes plus profonds que le code inutilisé. Compte tenu de cela, suivez simplement les conseils de ce Link et supprimez-le. P>
@tikiboy - Je n'ai pas le coeur pour vous descendre. Mais vous pouvez envisager de supprimer cette réponse ridicule à une question sérieuse.
@Sky, merci de ne pas me descendre sur mon tout premier message ici. Je ne voulais pas que ce soit une réponse ridicule et la question elle-même est quelque peu vague. Il est possible que le lien que je référencé n'était pas assez visible et que j'ai légèrement modifié ma réponse pour le rendre plus clair. Le lien lui-même aborde quelque chose que je me trouve parfois faire - ne pas pouvoir supprimer réellement le code. Cela peut ne pas aborder la question exactement, mais comme je l'ai dit, la question est un peu vague. Si vous sentez toujours que cette réponse est ridicule, puis la bownvote.
L'OP n'a pas de problème en appuyant sur la touche Suppr, il est à juste titre préoccupé par la rupture de la construction et cherche des conseils sur la manière de s'acquitter de cette responsabilité. Pour les petites applications, il s'agit d'une tâche triviale, mais dans une portée plus importante, elle peut être une source d'anxiété et de sommeil perdue / travail / travail. Donc - peut-être pas ridicule, mais ne répond pas vraiment à la question de la puissance et pourrait être interprété comme étant désinvolte. mes pesos .02. Bienvenue à cela.
Demandez-vous que la commande
rm code>? Ou vous demandez d'utiliser Subversion pour supprimer des fichiers du référentiel?