Sollte ich den Namen des Autors in der Klassendatei ändern, wenn ich mehr als 80% ige Änderungen vornehme?

18

Ich überarbeite die vorhandenen Java-Testklassen für automatisierte UI-Tests. Manchmal ändere ich die Klassendatei massiv oder überarbeite sie komplett. Das lässt mich denken, dass ich, wenn ich die gesamte Klasse umschreibe, den Namen des Autors im Kommentarbereich in meinen ändern soll?

Bin ich gierig? oder ist es sinnvoll, meinen namen zu sehen und mich im zweifel zu fragen?

Tarun
quelle
17
Verwenden Sie die Versionskontrolle? Ich finde, dass Commit-Protokolle ein zuverlässigerer Verfolgungsmechanismus für die Urheberschaft sind (falls es jemals einen legitimen Bedarf gibt, dies herauszufinden ...)
rwong
5
Der Name sollte dort sein, wenn er einen Wert für den Code hat. Dh Ansprechpartner. Verantwortung und so weiter. In diesem Fall muss ein Enddatum und ein neuer Name hinzugefügt werden.
Independent
15
Was ist der Zweck des Namens eines Autors in Klassendateien?
BЈовић
2
Wenn die Datei einen Platzhalter für den Namen eines Autors enthält, enthält sie möglicherweise auch einen Platzhalter für das Änderungsprotokoll. Ich würde meinen Namen anstelle des ursprünglichen Autors in das Änderungsprotokoll eintragen. Wie auch immer, ich hinterlasse niemals meine eigenen Fingerabdrücke auf dem Code, den ich schreibe, nur die meines Chefs.
Mouviciel
1
Was ist falsch daran, ihren Namen als Autor zu hinterlassen und eine Zeile darunter hinzuzufügen, in der "umgeschriebenes /
überarbeitetes Namensdatum

Antworten:

15

Es kommt wirklich darauf an ...

Wenn Sie der Meinung sind, dass eine andere Person möglicherweise später daran interessiert ist, den Originalautor zu fragen, geben Sie ihren Namen im Code an. Wenn Sie der Meinung sind, dass jemand daran interessiert ist, Sie persönlich zu fragen, geben Sie Ihren Namen an. Und wenn Sie denken, dass beides möglich sein könnte, lassen Sie beide Namen ein (oder einen Kommentar wie "basierend auf der Arbeit von ...").

Wenn die Verwendung der Quellcodeverwaltung an Ihrem Arbeitsplatz obligatorisch ist und dies die einzige Möglichkeit ist, auf die Quellen zuzugreifen, sollten Sie jeden Kommentar des Autors aus der Quelle streichen. An meinem Arbeitsplatz haben wir zum Beispiel viele Quelldateien in der Quellcodeverwaltung, in die wir keine Namen schreiben müssen. Wenn ich wissen möchte, wer für die Datei verantwortlich ist, in der Vergangenheit war oder für eine bestimmte Änderung, erstellt TortoiseSVN mir einfach ein Protokoll dafür.

Auf der anderen Seite haben wir viele VBA-Makros, die von einigen Leuten geschrieben wurden, an andere weitergegeben wurden (einige von ihnen haben das Unternehmen im Laufe der Jahre verlassen) und wurden stark modifiziert, alle ohne Verwendung der Quellcodeverwaltung. Glücklicherweise enthalten Kommentare zu diesen Dateien häufig Autorennamen und eine Art Verlaufsprotokoll.

Doc Brown
quelle
13

Ich bin gerade auf einen anderen Beitrag gestoßen, in dem OP gefragt hat, ob der Name des Autors überhaupt in der Dateikopfzeile stehen soll. Mindestens zwei Drittel der Befragten gaben an, dass der Name nicht einmal aufgeführt werden sollte und Sie die Versionskontrolle verwenden sollten Verfolgen Sie einfach, wer die Datei geändert hat. Ich weiß nicht, was mit diesem Beitrag passiert ist, aber jetzt kann ich ihn nicht finden. <- (daher anonymes "OP")

Persönlich finde ich den Autor, der im Dateikopf aufgeführt ist, nützlich, aber aus einem etwas anderen Grund (und dies bezieht sich möglicherweise nicht auf andere in ihrer Umgebung). Auch wenn wir versuchen, Community Ownership zu üben und häufig an verschiedenen Teilen des Projekts arbeiten, haben wir in der Regel nur wenige Teammitglieder, die bestimmte Bereiche des Codes viel besser kennen als andere. Wenn also jemand (insbesondere zahlreiche Auftragnehmer, die kommen und gehen) eine Datei öffnet, die sie noch nie gesehen haben, wird der Autor zum Ansprechpartner. Er ist möglicherweise nicht der einzige oder sogar der Mehrheitsverantwortliche, hat jedoch seinen Namen an der Spitze und gibt zu, eine gewisse Verantwortung für die Weitergabe von Wissen / Informationen über den Code an den Rest des Teams zu haben. Wir können mehr als eine Person in der Kopfzeile auflisten, wenn tatsächlich mehrere Personen beigetragen haben und sich verantwortlich fühlen.

Ich finde es frustrierend, wenn ich eine Frage zu einer Datei habe und auf die Versionskontrolle zurückgreifen muss, um die primäre oder sachkundigste Person zu identifizieren. Dann gehen sie von einem Typ zum nächsten, da sie alle bestreiten, wirklich zu wissen, was der Code tut ... sie mussten nur ein oder zwei Fehler beheben.

Diese Praxis funktioniert in unserem Team, weil wir keine Übergaben haben. Sofern eine Person nicht aufgibt oder in ein anderes Team wechselt, bleibt dieser Code / dieses Projekt bei der Person und bei unserem Team. Es ist offensichtlich, dass es niemanden interessiert, wer in der Kopfzeile aufgeführt ist, wenn Leute, die den Code verwalten, nicht mit denen identisch sind, die ihn schreiben.

In Anbetracht meiner Sicht auf Dateiköpfe würde ich sagen, wenn Sie 80% der Datei geändert haben und sich jetzt als Ansprechpartner für alle Fragen fühlen (und Sie sollten sich wahrscheinlich so fühlen), ja, gehen Sie Aktualisieren Sie den Dateiheader, damit Ihr Name darauf steht. Wenn Sie Bedenken haben, frühere Personen zu entfernen, können Sie zumindest vorerst auch deren Namen dort belassen. Sie können immer den Originalautor fragen, und ich bin mir sicher, dass es ihnen nichts ausmacht, dass Sie den Namen geändert haben, da ich davon ausgehe, dass es kein Problem ist, wenn Sie 80% der Datei selbst ändern.

UPDATE: Diesen Beitrag gefunden . Habe keine Ahnung, wie ich es geschafft habe, etwas vom August zurückzuziehen. Ich habe gerade The Pragmatic Programmer gelesen und im letzten Kapitel sprechen die Autoren über das Signieren und die Rechenschaftspflicht (der andere Beitrag erwähnte es, deshalb habe ich es nachgeschlagen). Das Buch macht vollkommen Sinn und jetzt, wo ich darüber nachdenke, sollten wir vielleicht eine Teamrichtlinie einführen, dass jeder, der als Autor aufgeführt ist, in alle Code-Überprüfungen der fraglichen Datei aufgenommen werden sollte. Egal, wer die Datei zuletzt oder am meisten in SVN geändert hat, der Autor ist der Eigentümer und der Verwalter.

DXM
quelle
1
Ich sehe deine Punkte, aber wer ist "OP"?
Tarun
Es kann eine Projektseite oder ein internes Wiki geben, in dem Kontaktinformationen für alle sichtbar sind. Die Schwierigkeit, diese Informationen (Dokumentation und Ansprechpartner) in die Quellcodeverwaltung einzubeziehen, entsteht ... beim Verzweigen und Zusammenführen.
rwong
@Tarun: OP = "Originalposter" (dh die Person, die die Frage stellt). Es ist ein Ausdruck, der in Online-Diskussionsforen verwendet wird.
sleske
Wenn Sie mit @Tarun einverstanden sind, hilft ein Link zum Beitrag dabei, Ihre Antwort in die richtige Perspektive zu rücken. Ich schätze, es ist das hier ?
Yannis
1
@rwong: Warum gibt es ein Problem beim Verzweigen und Zusammenführen? Normalerweise sollte die Person, die eine Änderung zusammenführt, diese verstehen (ansonsten, warum wird sie zusammengeführt?). Also ist die Person im Protokoll diejenige, die gefragt werden muss.
sleske
5

Ich finde den Namen des Autors nicht besonders nützlich. Wie diese Frage zeigt, gibt es oft keinen einzelnen Autor, so dass die Nennung "des Autors" nicht möglich ist.

Sie könnten natürlich eine Liste aller Personen, die wichtige Beiträge geleistet haben, hinzufügen, aber das können Sie bereits aus dem Revisionskontrollprotokoll abrufen - also, worum geht es?

In meinem Projekt gibt es in den meisten Dateien keine Autoreninformationen. Wenn Sie eine Frage haben, schauen Sie einfach in die Protokolle und normalerweise ist es offensichtlich, dass ein oder zwei Personen den größten Teil der Arbeit erledigt haben, also fragen Sie sie.

Bearbeiten

Die Antwort geht von einem Projekt mit Versionskontrolle aus. Wenn Sie VC nicht (konsistent) verwenden, können Sie möglicherweise einen Autor (Liste) und möglicherweise einen Änderungsverlauf in eine Datei einfügen. Trotzdem sollten Sie VC wahrscheinlich so schnell wie möglich verwenden. In diesem Fall siehe oben :-).

sleske
quelle
so what's the point?Projekte, die sich nicht unter einem VCS befinden, Projekte, die zu einem bestimmten Zeitpunkt auf ein anderes VCS migriert wurden (leider ermöglichen nicht alle Migrationsschemata die Migration des Verlaufs), und Projekte, die mehr als ein VCS gleichzeitig verwenden - einige FLOSS-Projekte übernehmen dies Ansatz, um es den Menschen zu erleichtern, Beiträge zu leisten, ohne sie auf ein VCS zu beschränken (Svn-Leute finden Git schwer, Git-Leute finden Svn unbrauchbar, und wir Leute lachen über beide)
Yannis
1
@YannisRizos: OK, das stimmt. Ich nahm implizit an, dass jedes Softwareprojekt die Versionskontrolle verwenden würde. Bearbeitet meine Antwort.
sleske
Und natürlich sollten meine anderen Punkte mit ein paar kleinen vcs-fu leicht zu lösen sein, unabhängig von den beteiligten vcs. In der Praxis sind sie das leider selten.
Yannis
2

Wenn die Datei wesentlich geändert wurde, sollte es akzeptabel sein, Ihren Namen als jemand in die Datei aufzunehmen, der etwas darüber weiß.

Paul Nathan
quelle
1

Der Ersteller der Quelldatei sollte / muss immer (IMHO) in der Quelldatei genannt werden. Dies sollte mit guten Kommentaren in den Überschriften zeigen, warum der Autor die Quelle entwickelt hat und wie er den Code geschrieben hat. Für den Betreuer des Codes ist das Hinzufügen des Namens des Betreuers für die Versionsverwaltungsverfolgung von entscheidender Bedeutung.

Die Nennung des Autors, IMHO wiederum, sollte die Quellversion des Codes außerhalb des Versionskontrollsystems, das erste Datum, an dem die Änderung vorgenommen wurde, sowie die Nummer der Änderungsanforderung enthalten. Der Grund ist, dass, wenn die Entscheidung zur Änderung des VCS getroffen wird, die Version des Codes, der Autor und die Nummer der Änderungsanforderung, auf die sich die Entwickler beziehen können, in der Vergangenheit vermerkt wurden (wenn sie wissen müssen, warum der Betreuer das getan hat, was er / sie getan hat). Sie tat). In unserer Organisation ist unser Format also wie folgt:

/**
 * $comment
 * <p />
 * $cr_number, $date, $author, $description 
 **/
Buhake Sindi
quelle
3
"Wenn sich die Entscheidung für eine Änderung des VCS ergibt, gibt es eine Vorgeschichte der Codeversion" Ich hoffe, keine vernünftige Organisation würde überhaupt eine Migration des VCS in Betracht ziehen, ohne die Vorgeschichte zu migrieren (zumindest die jüngste Vorgeschichte). Darum geht es schließlich bei der Verwendung von VCS.
sleske
1
Vollständig nicht einverstanden. Diese Art von Informationen sollte mit der Versionskontrolle verfolgt werden. Ansonsten ist es wirklich unmöglich zu wissen, wer Änderungen an welchen Zeilen vorgenommen hat (vorausgesetzt, mehr als eine Person hat an einer Datei gearbeitet). Das Einfügen in die Datei ist einfach ein Duplikat von Informationen mit niedriger Wiedergabetreue, die an anderer Stelle verfügbar sind.
Bryan Oakley
1
@Bryan Oakley, ich entferne die Versionskontrolle überhaupt nicht. Ich behaupte, dass das Erkennen des eigenen Codes eine Möglichkeit ist, zu wissen, wer an der Quelle gearbeitet hat, ohne dass eine Suche über die Versionskontrolle erforderlich ist. Außerdem gibt es einige Codes, die außerhalb von Versionskontrollsystemen verfügbar sind. Soll der Autorenname ausgeschlossen werden?
Buhake Sindi
1

Ich mag es, den Namen des ursprünglichen Autors zu sehen, wenn ich nur jemanden finde, der meine Suche nach Antworten über den Code startet. (Der Autor hat normalerweise keine Erinnerung, aber es ist zumindest eine Einstellung!)

Ich würde empfehlen, dass Sie einfach Ihren Namen unter dem des ursprünglichen Autors hinzufügen.

Es besteht keine Notwendigkeit, den Namen der anderen Person zu ersetzen, da diese möglicherweise einen Aspekt des ursprünglichen Geschäftsbedarfs kennt , den Sie nicht kennen, und andere, die folgen, nachdem Sie möglicherweise auch mit dieser Person sprechen müssen.

ka9cql
quelle
+1 für den dritten Absatz, da der ursprüngliche Autor möglicherweise eine andere Person kennt, die etwas im Code getan hat, aber seinen Namen nicht darauf gesetzt hat.
Coyote21
1

Meine Richtlinie zu @author-Kommentaren lautet:

  1. Wenn es eine brandneue Datei ist, setze ich mich als @author.
  2. Wenn es sich um eine vorhandene Datei handelt, lasse ich @author in Ruhe, unabhängig davon, was ich mit der Datei mache.

Wenn Sie Fragen zu etwas haben, spielt es keine Rolle, wer der @Autor der Datei ist - es ist wichtig, wer der @Autor des Teils der Datei ist, den Sie bearbeiten. Dafür [git/svn/whatever] blameist es da.

IMO, @author muss weg.

Michael Moussa
quelle
Zum einen listen Sie sich als Autor in einer neuen Datei auf. Auf der anderen Seite möchten Sie, dass der Autor verschwindet?
Anthony Pegram
1
Die Kodierungsstandards des Unternehmens erfordern das Vorhandensein des @ author-Tags. Andernfalls würde ich es überhaupt nicht benutzen (weil ich möchte, dass es weggeht :)).
Michael Moussa