Wie verfolgen Sie die Autoren des Codes? [geschlossen]

14

Das wurde mir nie beigebracht. Ich habe viele verschiedene Arten von Autorenstilen gesehen. Ich programmiere hauptsächlich in Java und Python. Ich habe mich gefragt, ob es einen Standard-Authoring-Stil gibt oder ob alles Freestyle ist. Auch wenn Sie antworten, würde es Ihnen etwas ausmachen, den Stil, den Sie verwenden, um Dateien zu erstellen, die Sie zu Hause oder bei der Arbeit erstellen, anzuhängen.

Ich gehe normalerweise einfach

@author garbagecollector
@company garbage inc.
Staubprogrammierer
quelle
3
Wo trägt die Person, die Ihren Code ändert, ihren Namen ein?
JeffO
@ Jeff wo und wie sieht es aus.
Staubprogrammierer
Es macht keinen Sinn, das zu tun. Warum willst du das tun?
CodeART

Antworten:

-1

Nicht ganz sicher, was Sie fragen, aber ich benutze einen sehr strengen Stil:

;==========================================
; Title:  Author Style Sample
; Author: Darknite
; Date:   7 Jan 2011
;==========================================

Der Stil ist von Assembler-Programmierern inspiriert.

Ich setze dies oben auf die Seiten, die ich für "Author" benötige, unabhängig davon, ob es sich um eine Klasse, eine Textdatei oder eine gespeicherte SQL-Prozedur handelt.

Dunkle Nacht
quelle
Das entspricht genau dem, wonach ich suche.
Staubprogrammierer
5
-1 Dies (was bei Aktualisierungen erheblich zunimmt (sowohl es als auch der Code werden von verschiedenen Personen geändert) wird durch die Versionskontrolle effektiv ersetzt.
Michael Durrant
1
@MichaelDurrant hast du vergessen deine Klammer zu schließen;) trotzdem cool. Ich mag Pinguine.
Darknight
4
@Giorgio Nicht wirklich ... in der Datei ist möglicherweise keine einzige Codezeile des ursprünglichen Autors mehr vorhanden. Es hat keinen Sinn.
Wilbert
1
@Wilbert: Natürlich hängt es auch von den Richtlinien des Teams ab: Bei gemeinsamem Code-Besitz kann es sinnlos sein, den Autor einer Datei im Auge zu behalten. Beim Besitz von individuellem Code ist es wichtig zu wissen, wer für welche Dateien verantwortlich ist.
Giorgio
70

Warum würdest du? das ist die aufgabe des versionierungssystems und "schuld" :)

Homde
quelle
8
Versionskontrolle ftw.
Paul Nathan
1
Es ist sogar noch sinnvoller, dies so zu tun, wenn Sie es als Quellcodeverwaltung (SCM) und nicht als Versionskontrollsystem (VCS) betrachten.
Peter Eisentraut
kleine Einschränkung, kosmetische Änderungen (Einrückung, etc ...) ändern den Autor der Zeile ...
Matthieu M.
4
@Matthieu: Gutes SCM kann zeigen, wer im Laufe der Zeit welche Änderungen vorgenommen hat, und nicht nur, wer sie zuletzt berührt hat. Ich könnte auch argumentieren, dass kosmetische Veränderungen auch Veränderungen sind.
Grossvogel
1
Diese Antwort ist mehr als 8 Jahre alt und keiner hat die Einschränkungen bemerkt? Dies gilt nur, wenn der Quellcode während seiner gesamten Lebensdauer in einem VCS verbleibt (oder ordnungsgemäß migriert wird)! Es werden jedoch von Zeit zu Zeit viele Open-Source-Codes zwischen verschiedenen Umgebungen übertragen, sodass die Autoreninformationen möglicherweise nicht weitergegeben werden, wenn sie nicht direkt in den Quellcode geschrieben werden.
Doc Brown
11

Wir machen kein Authoring in meiner Firma. Stattdessen lassen wir unsere Versionskontrolle damit umgehen.

Jedes Mal, wenn Sie einchecken, wird Ihr Benutzername an die Änderungsliste angehängt. Wenn etwas kaputt ist, kann sich jemand die Änderungshistorie ansehen, um zu sehen, was sich wann geändert hat und wer es getan hat. Es ist auch eine gute Sache, das Revisionsdiagramm zu betrachten, um zu sehen, wie sich eine Datei im Laufe der Zeit entwickelt hat, wer sie berührt hat, welche Projekte davon abgezweigt sind.

Das Problem beim Platzieren eines Autorentags in einer Klasse ist, dass mit der Zeit wahrscheinlich mehr als ein Entwickler an dieser Klasse arbeiten wird. Aktualisierungen und dergleichen. Es ist ein zusätzlicher Schritt, um diesen Autorenkommentar zu aktualisieren, und besonders kleine Schritte werden häufig vergessen. Dadurch wird es schnell veraltet.

Tyanna
quelle
10

Das mache ich überhaupt nicht. Ich denke, bei der Arbeit haben wir eine Vorlage, die mit dem Firmennamen und der Benutzer-ID der Person, die die Datei zuletzt geändert hat, in die Dateien eingefügt wird, aber das beachte ich nie.

Im Allgemeinen denke ich nicht, dass es wirklich wichtig ist, wie Sie es tun. Wenn Sie Ihre Dateien vom Autor stempeln möchten, wählen Sie einfach einen konsistenten Stil und gehen Sie damit um.

Adam Lear
quelle
6

JavaDoc ist in der Java-Community weit verbreitet:

http://download.oracle.com/javase/1.3/docs/tooldocs/win32/javadoc.html#@author

@author Name-Text

Fügt den generierten Dokumenten einen "Author" -Eintrag mit dem angegebenen Namenstext hinzu, wenn die Option -author verwendet wird. Ein Dokumentenkommentar kann mehrere @authorTags enthalten . Sie können einen Namen pro @authorTag oder mehrere Namen pro Tag angeben . Im ersten Fall fügt Javadoc ein Komma (,) und ein Leerzeichen zwischen den Namen ein. Im letzteren Fall wird der gesamte Text einfach in das generierte Dokument kopiert, ohne analysiert zu werden. Verwenden Sie daher mehrere Namen pro Zeile, wenn Sie ein anderes lokalisiertes Namenstrennzeichen als Komma verwenden möchten.

Luca Matteis
quelle
5

Ich denke, das bleibt am besten dem Versionskontrollsystem überlassen.

Tundey
quelle
4

Ich mag die Schuld- Funktion in GIT. Sie können sehen, wer die einzelnen Teile / Codezeilen verfasst hat. Nicht nur eine Datei.

Chiurox
quelle
Andere VCSs haben dasselbe (wenn auch oft nicht als "Schuld" bezeichnet).
Richard
Ich würde dies -1, weil es GIT-spezifisch ist. OP hat GIT nie erwähnt. Aber leider habe ich nicht genug Repräsentanten, um abzulehnen.
Thomas Eding
2

Wenn Sie an einem großen Projekt mit vielen Mitwirkenden arbeiten, funktioniert es einfach nicht, jede Datei mit einer Autorenliste zu versehen. Was machen Sie mit der Autorenliste, wenn Sie eine Datei in mehrere kleinere Dateien aufteilen? Behalten Sie den ursprünglichen Namen des Autors, wenn Sie den Code vollständig umschreiben? Fügen Sie Ihren Namen zur Liste der Autoren hinzu, wenn Sie einen Tippfehler im Kommentar korrigieren?

Diese Fragen sollten besser dem Versionskontrollsystem überlassen werden.

Ich bin aber nicht ganz gegen Autorenliste. Eine Autorenliste für das gesamte Projekt zu führen, ist absolut sinnvoll. Wenn es sich um ein Projekt mit nur einer Datei handelt, bewahren Sie es in genau dieser Datei auf. Wenn es sich um ein größeres Projekt handelt, speichern Sie es in der README-Datei oder in Ihrer Quelldatei der obersten Ebene (aka main.c). Aber wiederholen Sie sich nicht, indem Sie die Autoren in jeder einzelnen Datei angeben.

Rene Saarsoo
quelle
1

Wir behalten den Überblick über das Versionskontrollsystem oder indem wir @authorden Code eingeben. Eine andere Möglichkeit besteht darin, allgemeiner zu sagen, dass bestimmte Personen Autoren für ganze Module oder für das gesamte Programm waren. Das ermutigt die Leute, sich als Teil eines Teams zu sehen, anstatt als Zahnrad in der Maschine, die für genau die X-Anzahl von Funktionen oder Codezeilen verantwortlich ist.

Rudolf Olah
quelle
0

Ich benutze Doxygen- Kommentare (oder manchmal KernelDoc-Kommentare) für so ziemlich alles. Ich arbeite hauptsächlich in C und PHP, wo Doxygen sehr beliebt ist.

In den meisten Fällen ist es hilfreich, mindestens die folgenden Informationen anzugeben:

  • Erlaubnis (oder Nein) zum Kopieren / Copyright des Unternehmens oder der Person
  • Name des Autors / E-Mail
  • Datum geschrieben
  • Datum der letzten Änderung

Das sollte jedem helfen, der gerade an der Datei arbeitet, zu wissen, was er hat, was er damit machen kann und wen er um Hilfe bitten kann, wenn er sie benötigt. Es sagt ihnen auch, ob sie etwas 10 Jahre altes anschauen.

Tim Post
quelle
0

Ich persönlich mache das nicht, weil es zusätzliche Dokumentation gibt, die, wie andere sagten, in der Versionskontrolle ist. Aber wenn ich eine Art Kung-Fu-Code-Snippit machen würde, wäre ich wahrscheinlich dazu geneigt, alles zu verwenden, was meine IDE automatisch generieren konnte.

Wenn ich beispielsweise in Delphi 7 mit diesen hilfreichen installierten CNTools arbeite, gebe ich Folgendes ein

///a [enter]

und raus kommt

//<author></author>

dann tippe ich

///d [enter]

und raus kommt

 //<date></date>

Ich könnte mir vorstellen, dass dies etwas entspricht, das ein Drittanbieter-Dienstprogramm aufgreifen kann, aber für mich - ich habe einen Standard, den ich nicht einmal erfinden und selbst korrumpieren musste.

Peter Turner
quelle