Czasami, gdy sprawdzamy historię zatwierdzeń oprogramowania, możemy zauważyć, że istnieje kilka BITÓW, które są naprawdę DUŻE - mogą zmieniać 10 lub 20 plików setkami zmienionych linii kodu źródłowego (delta). Pamiętam, że istnieje taki termin na BIG, ale nie pamiętam dokładnie, co to jest. Czy ktoś może mi pomóc? Jakiego terminu programiści zwykle używają w odniesieniu do takiego DUŻEGO i gigantycznego zatwierdzenia?
BTW, czy wprowadzanie wielu zmian razem jest dobrą praktyką?
AKTUALIZACJA: dziękuję wam za inspirującą dyskusję! Ale myślę, że „bomba kodowa” to termin, którego szukam.
cluster f...
Odpowiedzi:
(1) Ben Collins-Sussman : „...” bomby kodowe . Co robisz, gdy ktoś pojawia się w projekcie open source z nową, gigantyczną funkcją, której napisanie zajęło miesiące? Kto ma czas na recenzję tysiące linii kodu? ... ”
(2) Dan Fabulich : „Bomba kodowa lub: Nowicjusz z wielkimi pomysłami ... Bomba kodowa to łatka tak duża, że nikt nie może jej przejrzeć”.
(3) Google Summer of Code: Wytyczne : „Podejmij decyzję wcześnie, często dokonuj… Nie pracuj cały dzień, a następnie wypchnij wszystko w jednej bombie kodowej . Zamiast tego każde zatwierdzenie powinno być samodzielne tylko dla jednego zadania które należy streścić w komunikacie dziennika. ”
(4) Jeff Atwood : „bomby kodowe ... Zasada nr 30: Nie ciemź .
źródło
Prawdopodobnie nazywamy to złym zatwierdzeniem . :)
Zła praktyka
I tak, byłoby to ogólnie uważane za złą praktykę , ponieważ ma negatywne skutki:
Dopuszczalne przypadki
Jednak można mieć przypadki, w których duże rewizje są całkowicie dopuszczalne . Na przykład:
Tak więc, o ile to możliwe, preferuj typy zatwierdzeń typu „chirurgiczne ostrzeżenie” (i połącz je z identyfikatorami zadań w narzędziu do śledzenia problemów!). Jeśli masz ważny powód, śmiało.
Poza tym tak naprawdę nie wiem i nie sądzę, żebym kiedykolwiek słyszał specjalną nazwę dla dużego zatwierdzenia. Potworne popełnienie? Fat-commit?
Aktualizacja: Odpowiedź Davida Cary'ego prowadzi do znanych aktorów IT posługujących się terminem „bomba kodowa” (co najważniejsze, Collins-Sussman, oryginalny twórca Subversion ). Tak to (choć do tej pory nie mogę powiedzieć, że słyszałem, jeśli często).
źródło
Cóż, nie jest dobrą praktyką trzymać się zmian przez długi czas i wdrażać różne funkcje i poprawki błędów, a następnie zatwierdzać je, co jest jednym ze sposobów, w jaki może się zdarzyć duże zatwierdzenie.
Innym sposobem może się to stać, jeśli refaktoryzacja zmieni sygnaturę powszechnie używanej funkcji, a następnie wszystkie te muszą zostać zmienione. Nie musi to być złe i nie chciałbym, aby programiści powstrzymywali się od czyszczenia kodu z obawy przed przekroczeniem pewnego progu.
Jest więc coś więcej niż tylko przeglądanie liczby plików dotkniętych w zatwierdzeniu.
źródło
Termin, który słyszałem, to „masywne zameldowania” . I nie jestem ich fanem. Lubię mniejsze zobowiązania, które zapewniają, że nic innego nie zostanie zerwane na rozsądnym etapie projektu. Wielkie zatwierdzenie jest na ogół obarczone problemami, które rozbrzmiewają przez pewien czas poza czasem.
źródło
Nazywam to „typowym zatwierdzeniem SVN” lub „jutro zatwierdza dzień premiery”
Mimo że uwielbiam SVN, jestem po prostu wyłączony przez fakt, że nie mogę wykonywać lokalnych zatwierdzeń.
EDYCJA: zwykle zawierają słowa „rzeczy” i „piwo” w komunikacie zatwierdzenia.
PONOWNIE EDYCJA: Popełniania wielu zmian, choć niekoniecznie zła praktyka, należy unikać w jak największym stopniu. Łatwiej jest mi przejrzeć krótką i zwięzłą wersję / zatwierdzenie. (w połączeniu z dobrze napisaną wiadomością zatwierdzenia, patrz mój poprzedni montaż, aby znaleźć zły przykład)
źródło
„Parujący kawałek kodu”. :-)
źródło
źródło
Zwykle wiele osób dokonuje dużych zatwierdzeń przy użyciu scentralizowanego VCS, szczególnie serwer wymusza dobre zasady zatwierdzania. Oznacza to, że zatwierdzenie musi przejść wszystkie testy, a testy trwają dłużej (dłużej niż kilka sekund). Dlatego programiści nie chcą tak długo czekać na wielokrotne zatwierdzanie i rozkładanie zmian na wiele małych zatwierdzeń.
A programiści, którzy są zieloni dla VCS, mogą zapomnieć o podziale zmian na wiele małych zatwierdzeń. Pamiętają tylko o popełnieniu, gdy udostępnią program zespołowi ds. Kontroli jakości. Co gorsza, aby inni nie widzieli błędnego kodu, nie zatwierdzają go, zanim pomyślnie przejdą testy kontroli jakości. Wreszcie, nie zdawali sobie sprawy z tego, że popełnili wyjściowe pliki binarne, pliki tymczasowe i dane wyjściowe konsolidatora, które naprawdę powodują „duże” zatwierdzenie.
źródło