Pisanie komunikatów zatwierdzania jako programista solo?


30

W moich projektach, w których repozytorium jest udostępniane mi i innym programistom, zawsze piszę komunikaty zatwierdzenia, nawet jeśli jestem głównym programistą.

Ale w tych projektach, w których jestem solowym programistą pracującym nad projektem, a repozytorium jest hostowane na moim osobistym laptopie i nawet nie jest hostowane przez klienta, dlatego nikt oprócz mnie nie widziałby zatwierdzeń, gdybym nadal pisał zatwierdzenie wiadomości?

Do tej pory pisałem je, ale odkryłem, że nigdy nie wróciłem i nie przeglądałem moich wiadomości z zatwierdzeniami. Zapisuję wiadomości, ale nie mam czasu na ich pisanie, ale nigdy więcej ich nie widzę.

Czy są jakieś dobre powody, aby pisać komunikaty zatwierdzania jako programista solo, czy powinieneś je pominąć, aby skupić się na rozwoju?


14
„Nigdy nie wracałem i nie przeglądałem moich wiadomości zatwierdzających”, cóż, za pierwszym razem, gdy będziesz musiał wrócić, zapewne poda ci dobry powód. Właściwie, chodząc w twoich butach, prawdopodobnie dokonałbym cichych zobowiązań, dopóki nie dojdzie do pierwszego powrotu
komara

5
„Zawsze piszę komunikaty zatwierdzeń, nawet jeśli jestem głównym programistą”. Myślisz, że to niezwykłe? Oczywiście główny programista powinien pisać wiadomości, nawet bardziej niż inni programiści (którzy powinni już 100% czasu).
AlbeyAmakiir

7
Komunikaty zatwierdzania są czystym złotem, gdy zaczynasz konserwować starsze wersje oprogramowania, a nie tylko najnowsze.

Odpowiedzi:


43

Oto jeden powód: jeśli nagle zdasz sobie sprawę, że coś zostało zepsute w ciągu ostatnich kilkuset zatwierdzeń (możliwe, jeśli popełniasz przy każdej drobnej edycji, mniej wykonalne, jeśli, podobnie jak ja, robisz tylko „stabilne” migawki), możesz łatwiej dowiedz się, gdzie wstawiłeś błąd, jeśli napisałeś wyraźne komunikaty zatwierdzenia, a nie „poprawki błędów”. (Uważam, że ulubiona struna kolegi). Oczywiście możesz korzystać z svn logdowolnego używanego SCM, ale powinno być łatwiej na odwrót.

Przekazywanie wiadomości zmusza cię również do zastanowienia się, co dokładnie zrobiłeś jako zmianę i, jak sądzę, podsumowując w myślach, jak najlepiej byłoby kontynuować ulepszanie projektu.


13
+1 za ostatni akapit. Uważam, że napisanie właściwego komunikatu zatwierdzenia zajmuje prawie zero czasu, ponieważ zawsze wiem, dlaczego dokonałem zmiany.
Stephen Darlington

5
Jeśli chodzi o moje solo, mam komunikat zatwierdzenia, zanim zacznę nad czymś pracować. Robię małą rzecz (celuj przez 30-45 minut ... mam tu żonę i dzieci!) I popełniam to. Może mógłbyś to nazwać rozwojem opartym na zatwierdzaniu?
corsiKa

52

Staram się zawsze. Ile razy spoglądasz wstecz i myślisz: „Człowieku, co robiłem, kiedy dokonałem tej zmiany”. Robię cały czas. 30 sekund pisania wiadomości może zaoszczędzić 20 minut pracy, którą trzeba zapamiętać.


12
Pomaga także przy tworzeniu raportu miesięcznego. Lista komunikatów zatwierdzeń jest świetnym początkiem dla raportu
mhoran_psprep

2
Tak, i naprawdę zajmuje to tylko jeden raz, gdy potrzebujesz go spłacić za czas potrzebny na komentarz.
tzerb

20

Czy szczerze wierzysz, że narzuty związane z pisaniem od 40 do 80 znaków zwykłym angielskim są znaczącym nakładem na zatwierdzenie, czy szukasz wymówki, aby być leniwym?

Być może problem polega na wyrażeniu prostym językiem angielskim, dlaczego dokonałeś zmiany, w takim przypadku może być konieczne sprawdzenie celu zmiany, nawet do pytania, czy naprawdę musisz to zrobić.

Radzę nie sądzić, że ponieważ lecisz sam, możesz złamać zasady. Pozostań profesjonalistą przez cały czas i dodawaj sensowne komunikaty zatwierdzania. Jak zauważyli inni autorzy, pewnego dnia będziesz z tego wdzięczny.


14
  • Nie zawsze będziesz programistą solo.

  • W końcu złamiesz bazę kodu i spróbujesz ją przywrócić. Dobre komunikaty zatwierdzania pozwolą Ci zaoszczędzić godziny.

  • Nie pamiętasz, nad czym pracowałeś trzy tygodnie temu, prawda?

  • Komunikaty zatwierdzania powinny być bardzo jasne. Jeśli tak nie jest, oznacza to, że albo nie zakończyłeś pracy nad zadaniem, albo jedno zadanie rozłożyło się na dwa lub więcej zadań.


7

Zdecydowanie, w przeciwnym razie korzystanie z funkcji takich jak rozgałęzianie i scalanie będzie znacznie trudniejsze w użyciu. I będzie chciał z nich korzystać, nawet jeśli deweloper solowy.


6

Jeden z możliwych powodów: zmusza cię do bardziej abstrakcyjnego myślenia o dokonanej właśnie zmianie i do zmiany struktury.

Jeśli wydaje Ci się to bezcelowe, może po prostu skomentuj główne zmiany lub te, które zmieniają istniejącą funkcjonalność, na wypadek, gdybyś kiedykolwiek szukał źródła dziwnego zachowania.


Ciekawe, aby ponownie przeczytać tę odpowiedź. Ostatnio zająłem nieco ekstremalne stanowisko: w ogóle nie było komunikatów o zatwierdzeniu. Ale dotyczy to dość płaskiego projektu HTML / JS, w którym nie wyobrażam sobie, by kiedykolwiek próbowałem wyśledzić regresję. Wszelkie wysiłki włożone w pisanie komunikatów zatwierdzania byłyby prawie na pewno lepiej wydane gdzie indziej. (Nie wszystkie projekty są w tej kategorii!)
Steve Bennett

4

Byłem jedynym podmiotem odpowiedzialnym za projekt TXR i zachowałem szczegółowy dziennik zmian od dość wczesnego etapu projektu. Jest to blisko 11 000 linii i rośnie: http://www.kylheku.com/cgit/txr/tree/ChangeLog

(Komunikaty zatwierdzania w repozytorium są tylko kopią tego, co znajduje się w dzienniku zmian.)

[Edycja 2016: od połowy 2015 r. Nie utrzymuję już pliku ChangeLog; jednak komunikaty zatwierdzania są zapisywane w formacie zgodnym z konwencjami Git i ChangeLog w tym samym czasie. Ten sam poziom szczegółowości istnieje w sposób, który nie powoduje problemów z scalaniem. Plik ChangeLog można mechanicznie zrekonstruować na podstawie tych komentarzy.]

Tak, więcej niż raz wróciłem do starej wiadomości zatwierdzenia związanej ze zmianą, która coś zepsuła (odkryta za pomocą git bisect). Wiadomość pomogła mi zrozumieć, co robię.

W dzienniku zmian możesz określić, kiedy po raz pierwszy wprowadzono funkcję, typ, makro lub zmienną globalną, a następnie zmiany dotknęły jej.

Ale główny powód pisania szczegółowych komunikatów zatwierdzania, takich jak te, podczas samodzielnej pracy, jest następujący: podczas wykonywania tej operacji znajdziesz błędy .

Napisanie szczegółowego komunikatu zatwierdzenia ma podobne zalety jak przegląd kodu twojego zatwierdzenia przez kogoś innego. Wartość przeglądu zatwierdzeń nie polega na tym, że ktoś sprawdza Twój kod, ale na tym, że musisz wyjaśnić swoje zmiany innemu programistowi.

Kiedy próbujesz wyjaśnić rzeczy, czasami okazuje się, że nie mają one sensu.

Kolejny powód: możesz złapać się na bezużytecznej zmianie . Pisząc szczegółowy komentarz zatwierdzenia, uchwycisz ogólny widok tego, co robisz, a następnie czasami stajesz przed faktem, że nie jest to dobra zmiana.

Czasami wprowadzałem zmiany, kiedy w trakcie pisania wpisu ChangeLog zdałem sobie sprawę, że będzie to raczej git reset --hard(wyrzuć te bezużyteczne zmiany) niż git commit -a.


3

Chociaż nie spotkałeś się jeszcze z potrzebą przeglądania wiadomości zatwierdzania, możesz być im bardzo wdzięczny w przyszłości. Powinieneś pisać je nawet dla siebie. Istnieje wiele powodów, które mogą być przydatne później (zapomniałeś, dlaczego dodajesz funkcję, lokalizujesz brakujące pliki itp.)

Oto powiązane pytanie dotyczące celu komunikatów zatwierdzania: Dlaczego powinienem napisać komunikat zatwierdzenia


3

Zawsze zatwierdzam sensowną wiadomością o zmianach i robię to często ze zmianami przyrostowymi.

Czy to zawsze najbardziej przydatna rzecz? Nie, nie ma w tym problemu. Jeśli musisz powrócić do poprzedniego etapu, Twoje wiadomości poinformują Cię, gdzie jesteś i co zrobiłeś. Można go również wykorzystać do śledzenia postępów w projekcie. Co do tego, że jest to postrzegane jako strata czasu, czy 30 sekund potrzebnych na zanotowanie zdania jest tak istotne?


3

Nie widzę żadnej różnicy w zakresie komunikatów zatwierdzania, niezależnie od tego, czy pracujesz w zespole, czy nie. Pamiętasz, co robiłeś tu lub tam przez ograniczony czas, a potem to samo, jakby ktoś inny to napisał. Powinieneś więc pisać wiadomości tak dobrze, jak dla innych ludzi.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.