Jak śledzisz autorów kodu? [Zamknięte]

14

Tego nigdy mnie nie nauczono. Widziałem wiele różnych stylów tworzenia. Piszę głównie w Javie i Pythonie. Zastanawiałem się, czy istnieje standardowy styl autorskie, czy wszystko jest w stylu dowolnym. Również jeśli odpowiesz, czy nie masz nic przeciwko dołączeniu stylu, którego używasz do tworzenia plików, które tworzysz w domu lub w pracy.

Zwykle po prostu idę

@author garbagecollector
@company garbage inc.
zakurzony programista
źródło
3
Gdzie osoba, która zmienia kod, umieszcza swoje nazwisko?
JeffO
@Jeff gdzie i jak to wygląda.
zakurzony programista
Nie ma sensu tego robić. Dlaczego chcesz to zrobić?
CodeART

Odpowiedzi:

-1

Nie jestem do końca pewien, o co pytasz, ale używam bardzo surowego stylu:

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

Styl inspirowany jest programistami montażu.

Umieszczam to na górze stron, które muszę „Autor”, niezależnie od tego, czy jest to klasa, plik tekstowy, procedura przechowywana SQL itp.

Ciemna noc
źródło
Jest to zgodne z tym, czego szukam.
zakurzony programista
5
-1 To (które rośnie, jeśli jest aktualizowane (zarówno zmiany, jak i zmiany kodu przez różne osoby) są skutecznie zastępowane przez kontrolę wersji.
Michael Durrant
1
@MichaelDurrant zapomniałeś zamknąć nawias;) i tak fajnie. Lubię pingwiny.
Darknight
4
@Giorgio Niezupełnie ... w pliku może nie pozostać ani jeden wiersz kodu oryginalnego autora. To bezcelowe.
Wilbert
1
@Wilbert: Oczywiście zależy to również od zasad zespołu: w przypadku posiadania kodu współdzielonego śledzenie autora pliku może być bezcelowe. Przy indywidualnym posiadaniu kodu ważne jest, aby wiedzieć, kto jest odpowiedzialny za które pliki.
Giorgio
71

Dlaczego miałbyś? to jest zadanie systemu kontroli wersji i „Winy” :)

Homde
źródło
8
kontrola wersji ftw.
Paul Nathan
1
Jeszcze bardziej sensowne jest zrobienie tego w ten sposób, jeśli myślisz o tym jako o zarządzaniu kodem źródłowym (SCM), a nie o systemie kontroli wersji (VCS).
Peter Eisentraut
małe ograniczenia, zmiany kosmetyczne (wcięcia itp.) zmieniają autora linii ...
Matthieu M.
4
@Matthieu: Dobry SCM może pokazać, kto wprowadził zmiany w czasie, a nie tylko ten, który go dotknął. Mogę też argumentować, że zmiany kosmetyczne to także zmiany.
grossvogel
1
Ta odpowiedź ma ponad 8 lat i nikt nie zauważył jej ograniczeń? Ma zastosowanie tylko wtedy, gdy kod źródłowy pozostaje w jednym VCS przez cały okres jego życia (lub jest odpowiednio migrowany)! Jednak wiele kodów open source jest od czasu do czasu przesyłanych między różnymi środowiskami, więc informacje o autorze mogą nie zostać przekazane, jeśli nie zostaną zapisane bezpośrednio w kodzie źródłowym.
Doc Brown
11

W mojej firmie nie zajmujemy się pisaniem. Zamiast tego pozwalamy naszej kontroli wersji sobie z tym poradzić.

Przy każdym zameldowaniu dołącza nazwę użytkownika do listy zmian. Jeśli coś jest zepsute, ktoś może cofnąć się i spojrzeć na historię zmian, aby zobaczyć, co się zmieniło, kiedy i kto to zrobił. Dobrze jest również spojrzeć na wykres wersji, aby zobaczyć, jak plik ewoluował w czasie, kto go dotknął, jakie projekty się z niego rozgałęziły.

Problem, jaki widzę przy umieszczaniu znacznika autora w klasie, polega na tym, że z czasem jest prawdopodobne, że więcej niż jeden programista będzie pracował nad tą klasą. Aktualizacje i tym podobne. To dodatkowy krok, aby zaktualizować ten komentarz autora, a dodatkowe małe kroki są często zapominane. W ten sposób szybko staje się nieaktualny.

Tyanna
źródło
10

W ogóle tego nie robię. Myślę, że w pracy mamy szablon, który jest wstawiany do plików z nazwą firmy i identyfikatorem użytkownika osoby, która jako ostatnia zmodyfikowała plik, ale nigdy nie zwracam na to uwagi.

Ogólnie rzecz biorąc, nie sądzę, że to naprawdę ma znaczenie, jak to robisz. Jeśli chcesz automatycznie stemplować pliki, wybierz spójny styl i idź z nim.

Adam Lear
źródło
6

JavaDoc jest bardzo standardem w społeczności Java:

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

@author nazwa-tekst

Dodaje wpis „Autor” z podanym tekstem nazwa do wygenerowanych dokumentów, gdy używana jest opcja -author. Komentarz do dokumentu może zawierać wiele @authortagów. Możesz podać jedną nazwę dla @authortagu lub wiele nazw dla tagu. W pierwszym przypadku Javadoc wstawia przecinek (,) i spację między nazwami. W tym drugim przypadku cały tekst jest po prostu kopiowany do wygenerowanego dokumentu bez parsowania. Dlatego używaj wielu nazw w wierszu, jeśli chcesz zlokalizować separator nazw inny niż przecinek.

Luca Matteis
źródło
5

Myślę, że najlepiej pozostawić to systemowi kontroli wersji.

Tundey
źródło
4

Podoba mi się funkcja obwiniania w GIT. Możesz zobaczyć, kto jest autorem każdej części / linii kodu. Nie tylko plik.

chiurox
źródło
Inne VCS mają to samo (choć często nie nazywane „winą”).
Richard
Zrobiłbym -1, ponieważ jest to specyficzne dla GIT. OP nigdy nie wspominał o GIT. Ale niestety, nie mam wystarczającej liczby przedstawicieli, aby głosować.
Thomas Eding,
2

Jeśli pracujesz nad dużym projektem z wieloma współautorami, adnotacje dla każdego pliku z listą autorów po prostu nie działają. Co robisz z listą autorów, dzieląc plik na kilka mniejszych plików? Czy zachowałeś oryginalną nazwę autora, jeśli całkowicie przepisałeś kod? Czy dodajesz swoje nazwisko do listy autorów, gdy naprawiasz literówkę w komentarzu?

Te pytania lepiej pozostawić systemowi kontroli wersji.

Ale nie jestem całkowicie przeciwny liście autorów. Prowadzenie listy autorów całego projektu ma sens. Jeśli jest to projekt z jednym plikiem, na pewno trzymaj go w tym samym pliku. Jeśli jest to większy projekt, przechowuj go w README lub pliku źródłowym najwyższego poziomu (aka main.c). Ale nie powtarzaj się, wymieniając autorów w każdym pliku.

Rene Saarsoo
źródło
1

Śledzimy za pomocą systemu kontroli wersji lub poprzez umieszczenie @authorw kodzie. Innym sposobem jest powiedzenie bardziej ogólnie, że niektóre osoby były autorami całych modułów lub całego programu. To zachęca ludzi do myślenia o sobie jako o członku zespołu, a nie o zębatce w maszynie, która odpowiada za dokładnie X funkcji lub linii kodu.

Rudolf Olah
źródło
0

Używam komentarzy w stylu Doxygen (lub czasami KernelDoc) do prawie wszystkiego. Pracuję głównie w C i PHP, gdzie Doxygen jest dość popularny.

W większości przypadków pomocne jest co najmniej następujące informacje:

  • Zezwolenie (lub nie) na jego kopiowanie / Prawa autorskie firmy lub osoby fizycznej
  • Nazwisko autora / adres e-mail
  • Data napisania
  • Data ostatniej modyfikacji

Powinno to pomóc każdemu, kto akurat pracuje nad plikiem, wiedzieć, co ma, co może z nim zrobić i kogo może poprosić o pomoc, jeśli tego potrzebuje. Mówi im także, czy patrzą na coś 10 lat.

Tim Post
źródło
0

Nie robię tego osobiście, ponieważ jest to dodatkowa dokumentacja, która, jak powiedzieli inni, znajduje się w kontroli wersji. Ale gdybym miał zamiar zrobić snippit z kodu kung-fu, prawdopodobnie byłbym skłonny zastosować wszystko, co moje IDE było w stanie wygenerować automatycznie.

Na przykład, używanie w Delphi 7 z tymi pomocnymi zainstalowanymi CNTools piszę

///a [enter]

i wychodzi

//<author></author>

potem piszę

///d [enter]

i wychodzi

 //<date></date>

Wyobrażam sobie, że odpowiada to temu, co może pochwycić jakieś narzędzie innej firmy, ale jeśli chodzi o mnie - mam standard, którego nawet nie musiałem wymyślić i zepsuć.

Peter Turner
źródło