Dois-je changer le nom de l'auteur dans le fichier de classe si j'effectue plus de 80% de modifications?


18

Je suis en train de refactoriser l'ensemble existant de classes de test java pour des tests d'interface utilisateur automatisés. Parfois, je finis par apporter des modifications massives au fichier de classe ou à le réorganiser complètement. Cela me fait penser que lorsque je réécris toute la classe, devrais-je changer le nom de l'auteur dans la section des commentaires pour le mien?

Suis-je gourmand? ou est-ce que ça va être utile pour quelqu'un de voir mon nom et de me demander en cas de doute?


17
Utilisez-vous le contrôle de version? Je trouve que les journaux de validation sont un mécanisme de suivi plus fiable pour la paternité (s'il y a un besoin légitime de le savoir ...)
rwong

5
Le nom doit être présent s'il a une valeur quelconque dans le code. C'est-à-dire la personne de contact. Responsabilité et ainsi de suite. Et si tel est le cas, collez-le avec une date de fin et un nouveau nom attaché.
Indépendant

15
Quel est le but d'avoir un nom d'auteur dans les fichiers de classe?
BЈовић

2
Si le fichier a un espace réservé pour un nom d'auteur, il est probable qu'il ait également un espace réservé pour le journal des modifications. Je mettrais mon nom dans le journal des modifications au lieu de l'auteur d'origine. Quoi qu'il en soit, je ne laisse jamais mes propres empreintes digitales sur le code que j'écris, seulement celles de mon patron.
mouviciel

1
ce qui ne va pas avec le fait de laisser son nom en tant qu'auteur et d'ajouter une ligne ci-dessous qui dit "date du nom réécrite / refactorisée"
Ryathal

Réponses:


15

Cela dépend vraiment ...

Si vous pensez qu'il y a une légère chance que quelqu'un d'autre soit intéressé plus tard à demander à l'auteur d'origine, laissez son nom dans le code. Si vous pensez que quelqu'un pourrait être intéressé à vous demander en personne, indiquez votre nom. Et si vous pensez que les deux pourraient être possibles, laissez entrer les deux noms (ou un commentaire comme "basé sur le travail de ...).

Bien sûr, lorsque l'utilisation du contrôle de source est obligatoire sur votre lieu de travail, et que c'est le seul moyen d'accéder aux sources, enregistrez le brouhaha et supprimez chaque commentaire d'auteur de la source. Dans mon lieu de travail, par exemple, nous avons beaucoup de fichiers source dans le contrôle de source où nous ne prenons pas la peine d'écrire des noms dans les sources. Si je veux savoir qui est responsable du fichier, ou était dans le passé, ou pour un changement spécifique, TortoiseSVN me produira facilement un journal pour cela.

D'un autre côté, nous avons beaucoup de macros VBA, écrites par des gars, transmises à d'autres (certains d'entre eux ont quitté l'entreprise au fil des ans) et ont été beaucoup modifiées, le tout sans utiliser le contrôle de source. Heureusement, les commentaires de ces fichiers contiennent souvent des noms d'auteur et une sorte de journal d'historique.


13

Je suis juste tombé sur un autre post où OP demandait si le nom de l'auteur devait même être dans l'en-tête du fichier et semble qu'au moins 2/3 des personnes qui ont répondu ont dit que le nom ne devrait même pas être répertorié et que vous devriez utiliser le contrôle de version pour gardez simplement une trace de qui a changé le fichier. Je ne sais pas ce qui est arrivé à ce message, mais maintenant je ne le trouve pas. <- (d'où "OP" anonyme)

Personnellement, je trouve que l'auteur répertorié dans l'en-tête du fichier est utile mais pour une raison légèrement différente (et cela peut ne pas concerner les autres dans leur environnement). Même si nous essayons de nous approprier la communauté et travaillons souvent sur diverses parties du projet, nous avons tendance à avoir peu de membres de l'équipe qui connaissent certains domaines du code beaucoup plus intimement que d'autres. Ainsi, lorsque quelqu'un (en particulier de nombreux entrepreneurs qui vont et viennent) ouvre un fichier qu'il n'a jamais vu auparavant, l'auteur devient la personne de référence. Il peut ne pas être le seul contributeur, ni même le contributeur majoritaire, mais ayant son nom en haut, il reconnaît avoir une certaine responsabilité dans la diffusion des connaissances / informations sur le code au reste de l'équipe. On peut lister plus d'une personne dans l'en-tête si plusieurs personnes ont en effet contribué et se sentent responsables.

Je trouve cela frustrant lorsque j'ai une question sur un fichier et que je dois recourir au contrôle de version pour identifier la personne principale ou la plus compétente. Ensuite, ils finissent par passer d'un gars à l'autre car ils nient tous vraiment savoir ce que fait le code ... ils devaient juste aller corriger un bogue ou deux.

Cette pratique fonctionne dans notre équipe car nous n'avons pas de transferts. Sauf si une personne quitte ou passe à une autre équipe, ce code / projet restera avec la personne et avec notre équipe. Évidemment, si les personnes qui gèrent le code ne sont pas les mêmes que celles qui l'écrivent, personne ne se soucierait de qui était répertorié dans l'en-tête.

Donc, à la lumière de mon point de vue sur les en-têtes de fichiers, je dirais que si vous avez modifié 80% du fichier et que vous vous sentez comme maintenant vous êtes le go-to guy pour toutes les questions (et vous devriez probablement ressentir la même chose), oui, allez avant et mettez à jour l'en-tête du fichier pour y avoir votre nom. Si vous vous sentez mal à l'idée de retirer la personne précédente, vous pouvez également y laisser son nom, du moins pour le moment. Vous pouvez toujours demander à l'auteur d'origine et je suis sûr que cela ne vous gênera pas du tout que vous ayez changé le nom, car je suppose qu'il n'y a aucune difficulté à changer 80% du fichier lui-même.

MISE À JOUR: Trouvé ce poste . Je ne sais pas comment j'ai réussi à retirer quelque chose d'août. Je viens de terminer la lecture de The Pragmatic Programmer et dans le dernier chapitre, les auteurs parlent de travail de signature et de responsabilité (l'autre post l'a mentionné, c'est pourquoi je l'ai recherché). Le livre est parfaitement logique et maintenant que j'y pense, nous devrions peut-être introduire une politique d'équipe selon laquelle quiconque est répertorié comme auteur devrait être inclus dans toutes les révisions de code du fichier en question. Peu importe qui a modifié le fichier en dernier ou le plus dans SVN, l'auteur est le propriétaire et le gardien.


1
Je vois vos points mais qui est "OP"?
Tarun

Il pourrait y avoir une page de projet ou un wiki interne où les informations de contact peuvent être mises en place pour que tout le monde puisse les voir. La difficulté de mettre ces informations (documentation et personnes de contact) dans le contrôle des sources se pose ... pendant la ramification et la fusion.
rwong

@Tarun: OP = "affiche originale" (c'est-à-dire la personne qui pose la question). C'est une expression utilisée dans les forums de discussion en ligne.
sleske

D'accord avec @Tarun, un lien vers le message aiderait à mettre votre réponse en perspective. Je suppose que c'est celui-ci ?
yannis

1
@rwong: Pourquoi y a-t-il un problème lors du branchement et de la fusion? Normalement, la personne qui fusionne un changement doit le comprendre (sinon, pourquoi le fusionne-t-il?). La personne dans le journal est donc celle à demander.
sleske

5

Je ne trouve pas le nom de l'auteur terriblement utile. Comme le montre cette question, il n’existe souvent pas d’auteur unique, il n’est donc pas possible de nommer «l’auteur».

Vous pouvez bien sûr inclure une liste de toutes les personnes qui ont apporté des contributions importantes, mais vous pouvez déjà l'obtenir à partir du journal de contrôle des révisions - alors à quoi ça sert?

Sur mon projet, il n'y a pas d'informations d'auteur dans la plupart des fichiers. Si vous avez une question, il vous suffit de consulter les journaux, et il est généralement évident qu'une ou deux personnes ont effectué la majeure partie du travail, alors posez-les.

Éditer

La réponse suppose un projet utilisant le contrôle de version. Si vous n'utilisez pas (régulièrement) VC, alors mettre un auteur (liste), et peut-être un historique des modifications dans un fichier peut être une solution de contournement viable. Néanmoins, vous devriez probablement commencer à utiliser VC le plus rapidement possible, auquel cas voir ci-dessus :-).


so what's the point?Projets qui ne sont pas sous un vcs, projets qui à un moment donné ont migré vers un vcs différent (tous les schémas de migration ne permettent pas la migration d'historique, malheureusement), et projets qui utilisent plus d'un vcs en même temps - certains projets FLOSS adoptent cela approche pour faciliter la contribution des gens, sans les limiter à un seul vcs (les gens svn trouvent git difficile, les gens git trouvent svn inutilisable, et nous hg les gens se moquent des deux)
yannis

1
@YannisRizos: OK, c'est vrai. J'ai implicitement supposé que tout projet logiciel utiliserait le contrôle de version. Modifié ma réponse.
sleske

Et bien sûr, mes autres points devraient être facilement résolus avec quelques vcs-fu mineurs, quels que soient les vcs impliqués. Mais en pratique, ils le sont rarement, malheureusement.
yannis

2

Si le fichier a été modifié de manière significative, il devrait être acceptable d'ajouter votre nom dans le fichier en tant que personne qui en sait quelque chose.


1

Le créateur du fichier source doit / doit toujours (à mon humble avis) être mentionné dans le fichier source. Ceci, avec de bons commentaires d'en-tête, devrait montrer pourquoi l'auteur a développé la source et ce qu'il pensait pour écrire le code. Quant au responsable du code, l'ajout du nom du responsable est crucial pour le suivi du contrôle des sources.

La dénomination de l'auteur, à mon humble avis à nouveau, devrait inclure la version source du code, en dehors du système de contrôle de version, la première date à laquelle le changement s'est produit, ainsi que le numéro de demande de changement. La raison en est que si la décision de changer VCS survient, il y a l'historique de la version du code, qui était l'auteur ainsi que le numéro de demande de changement auquel les développeurs peuvent se référer (s'ils ont besoin de savoir pourquoi le responsable a fait ce qu'il / elle l'a fait). Ainsi, dans notre organisation, notre format est le suivant:

/**
 * $comment
 * <p />
 * $cr_number, $date, $author, $description 
 **/

3
"si la décision de changer VCS survient, il y a l'histoire de la version du code" J'espère qu'aucune organisation sensée n'envisagerait même de migrer VCS sans migrer l'histoire (au moins l'histoire récente). C'est, après tout, l'intérêt d'utiliser VCS.
sleske

1
Complètement en désaccord. Ce type d'informations doit être suivi avec le contrôle de version. Sinon, il n'y a vraiment aucun moyen de savoir qui a apporté des modifications à quelles lignes (en supposant que plus d'une personne a travaillé sur un fichier). Le mettre dans le fichier est simplement un doublon de faible fidélité des informations disponibles ailleurs.
Bryan Oakley

1
@Bryan Oakley, je ne supprime pas du tout le contrôle de version, j'affirme que reconnaître son code dans le code est un moyen de savoir qui a travaillé sur la source, sans avoir à effectuer la recherche nécessaire via le contrôle de version. En outre, certains codes sont disponibles en dehors des systèmes de contrôle de version, le nom de l'auteur doit-il être exclu?
Buhake Sindi

1

J'aime voir le nom de l'auteur d'origine, ne serait-ce que pour trouver quelqu'un pour commencer ma quête de réponses sur le code. (L'auteur n'a généralement aucun souvenir, mais c'est au moins une photo!)

Je recommanderais simplement d'ajouter votre nom en dessous de l'auteur d'origine.

Il n'est pas nécessaire de remplacer le nom de l'autre personne, car elle peut connaître un aspect du besoin commercial d' origine que vous n'avez pas, et d'autres qui suivent après vous devrez peut-être également parler à cette personne.


+1 pour le troisième paragraphe, car l'auteur d'origine peut connaître une autre personne qui a fait quelque chose dans le code, mais qui n'a pas mis son nom dessus.
Coyote21

1

Ma politique sur les commentaires @author est la suivante:

  1. S'il s'agit d'un tout nouveau fichier, je me mets en tant que @author.
  2. S'il s'agit d'un fichier existant, je laisse @author tranquille, indépendamment de ce que je fais au fichier.

Si vous avez des questions sur quelque chose, peu importe qui est @l'auteur du fichier - peu importe qui est @l'auteur de la partie du fichier que vous modifiez. C'est pour ça [git/svn/whatever] blame.

OMI, @author doit s'en aller.


D'une part, vous vous listez comme auteur dans un nouveau fichier. D'un autre côté, vous voulez que l'auteur s'en aille?
Anthony Pegram

1
Les normes de codage de l'entreprise nécessitent la présence de la balise @author. Sinon, je ne l'utiliserais pas du tout (parce que je veux qu'il disparaisse :)).
Michael Moussa
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.