Czy moi koledzy powinni sprawdzać nawzajem kod z systemu kontroli źródła?

9

Oto moja historia: jeden z moich kolegów używa do przeglądu całego kodu hostowanego w systemie wersji. Nie mówię o odpowiednim przeglądzie zmian w częściach, do których on należy. Obserwuje kod pliku do pliku, linia po linii. Każdy nowy plik i każdy zmodyfikowany. Mam ochotę być szpiegowanym!

Domyślam się, że jeśli kod był już hostowany do sterowania systemem, powinieneś zaufać temu co najmniej jako wykonalnemu. Moje pytanie brzmi: może jestem po prostu zbyt paranoiczny i praktyka wzajemnego sprawdzania kodu jest dobra?

PS: Jesteśmy zespołem tylko trzech programistów i obawiam się, że jeśli będzie nas więcej, kolega po prostu nie będzie miał czasu na sprawdzenie całego kodu, który napiszemy.

Daniel Ganiev
źródło

Odpowiedzi:

19

Powiedziałbym tak!

Dwa szybkie powody:

1) Jeśli kod jest w produkcji, nie można zakładać, że jest poprawny. Każda zmiana w innym miejscu w systemie może powodować błędy. Myślę, że bardzo ważne jest regularne sprawdzanie kodu. W ten sposób refaktoryzacja odbywa się regularnie, utrzymując porządek i poprawiając kod (bardziej aktualny jest prawdopodobnie lepszy).

2) Umiejętność czytania kodu jest bardzo ważną umiejętnością, jeśli zamierzasz zostać programistą. Jest to umiejętność, nad którą musisz popracować. Dla każdego programisty rozpoczynającego pracę nad istniejącą bazą kodu, jeśli nie jest przyzwyczajony do czytania kodu innej osoby, istnieje stroma krzywa uczenia się, próbująca zapoznać się z tym, co się dzieje.

Nie sądzę, że powinieneś czuć się szpiegowany. Zaakceptuj każdą krytykę, którą ktoś ci daje (jeśli jest to oczywiście ważne). I zachęcaj innych do wyrażania WAŻNEJ krytyki. To jest sposób, w jaki się uczymy. Gdy przestaniemy się uczyć (lub chcemy przestać), pojawią się duże problemy.

Nico Huysamen
źródło
12

Jeśli wspomniany kolega zapewnia dobre i konstruktywne opinie, jest to fantastyczna rzecz i powinieneś bardzo ją docenić.

To BĘDZIE łapać błędy, o których nie pomyślałeś podczas pisania. Ten BĘDZIE powodować piszesz lepszy kod, bo wiesz, że inni będą go zobaczyć.


źródło
4

Byłoby dobrze, gdyby cały zespół dokonywał recenzji kodu zamiast jednej osoby. Idealnie każdy zaprosiłby kogoś do przejrzenia swojego kodu po zakończeniu. Pomocne jest utrzymywanie go w sposób nieformalny (trzymanie menedżerów z daleka) i umożliwienie recenzentowi omówienia twoich ustaleń. Idealnie, jeśli recenzent udziela tylko informacji zwrotnych i nie wprowadza zmian w kodzie, oczywiście można go trochę sparować.

Naprawdę pomaga mieć standardy kodowania, aby uniknąć ciągłych dyskusji na temat białych znaków i stylu kodu. Posiadanie pewnej statycznej analizy kodu na komputerze kompilacji może być pomocne w powstrzymywaniu niektórych dyskusji.

Jeśli chodzi o aspekt czasowy, teoria ta pozwala zaoszczędzić czas. Im później zostaną wykryte usterki, tym droższa będzie ich zasada. Przegląd kodu równorzędnego może złapać sporo problemów.

Joppe
źródło
1
+1 uzgodnione. Jedna osoba przeprowadzająca całą recenzję może prowadzić do niepokoju w zespole. Może pójść strasznie źle i może być używany, ponieważ mój kod jest lepszy od twojego kodu . To powinna być praca zespołowa.
Audrius
@Andrius: smutne, rozumiem o co ci chodziło.
kizzx2
3

Twój kolega brzmi jak sumienny programista, powinieneś pójść za jego przykładem.

Christoffer Hammarström
źródło
3

W podobny sposób obserwuję nasz system kontroli wersji. Nasza baza kodów jest zbyt duża, aby oglądać każdą linię, ale staram się uzyskać wyczucie poziomu na większość zmian. Patrzę też na meldunki, które najprawdopodobniej wywołują skutki uboczne, i przeglądam je wiersz po wierszu. Za minimalny czas spędzony na tym, wypłata jest ogromna. (Uwaga: nie jestem jedynym programistą w naszym zespole z tym nawykiem).

Ten rodzaj recenzji ma tendencję do łapania błędów lub wywoływania dyskusji co tydzień. To oszczędza czas podczas przeprowadzania kontroli jakości. Dyskusje obejmują najlepsze praktyki, projektowanie algorytmów i wiele innych. Kluczem na tym froncie jest to, że wszyscy uważają to za konstruktywne.

Osobiście pozwala mi to lepiej zrozumieć, co dzieje się w innych częściach bazy kodu, których nie dotykam regularnie. Gdy inni potrzebują pomocy, jestem w stanie wskoczyć szybciej. Gdy pojawią się nowe pomysły, mogę z nich skorzystać wcześniej.

Colin Gislason
źródło
1

Czy czujesz, że to szpiegostwo (!)? Ale z perspektywy kolegi powiedziałbym, że robi właściwe rzeczy dla rozwoju swojej kariery. Przeczytaj inne kody i dowiedz się, jak projektują i wdrażają logikę, to wiele zyska!

IMHO, jeśli ktoś wskaże coś złego w kodzie, musisz to zaakceptować i dowiedzieć się od nich, jak napisać dobry kod

Gopi
źródło
1

Przez 6-7 miesięcy robiłem to samo. Nie szpiegować, ale kontrolować jakość. Każdy wiersz kodu aktywnie rozwijanej aplikacji, przypisanej do centralnego repozytorium, 2 głównych języków, kilku innych języków, ogromnych plików makefile na 4 platformy.

To bardzo zła praktyka . Pewnego dnia dowiedziałem się, że nie jestem w stanie uchwycić wszystkiego ze względu na wytrzymałość. Kolejnym argumentem przeciwko temu jest podmiotowość - każdy może się mylić.

Lepiej jest, gdy programiści sprawdzają nawzajem swoje kody, a ktoś ma doświadczenie w podejmowaniu ostatecznych decyzji i określaniu kierunków.

duros
źródło
1

Przeglądy kodu w zespole (przy użyciu rybiego oka , tygla lub innych narzędzi) są niezwykle ważne i przydatne. jedyną lepszą rzeczą jest bezpośrednie programowanie par, aby upewnić się, że kod, który dostaje się do systemu za pierwszym razem, jest dobrze przemyślany i przeszedł przez mózg więcej niż jednej osoby.

leora
źródło
0

To zdarzyło się raz w moim zespole. Niestety zakończyło się to winą. Ludzie ciągle czekali, aż inni sprawdzą kod i zawsze starali się znaleźć w nim coś złego i cały czas grali w winę.

Mam nadzieję, że masz bardziej dojrzałą publiczność.

Maniak
źródło
Lepiej, żeby koder sam zaprosił kogoś do przejrzenia swojego kodu, możliwe przed odprawą. Może to zapobiec opisanemu szaleństwu.
Joppe
@Tunga: Zabawne jest to, że sprawdzono tylko sprawdzony kod, ale wszyscy byli tak entuzjastycznie nastawieni do udowodnienia swojej wyższości, że nie mieliby nic przeciwko poniżeniu programisty i recenzenta. Uważam to za bardzo zabawne :-)
Geek
0

Jest to dość standardowa praktyka w przemyśle. Firmy, w których pracowałem, mają bardzo ścisłe wytyczne dotyczące przeglądu kodu. Jeden nawet nie pozwoliłby ci zatwierdzić, chyba że kod został sprawdzony.

Nie obrażaj się i nie czuj się obserwowany. Potraktuj to jako siatkę bezpieczeństwa i doświadczenie edukacyjne.

MM01
źródło
0

W poprzednim zadaniu starszy programista oglądał i sprawdzał wszystkie zameldowania, a ja często otrzymywałem doskonałe opinie, które pomogły mi stać się lepszym programistą.

W mojej obecnej pracy obserwuję wiele meldunków i trzy dni temu znalazłem błąd i powiadomiłem programistę.

Ta praktyka absolutnie złapie błędy i sprawi, że cały twój zespół będzie lepszy, jeśli ją przyjmiesz .

Steven Benitez
źródło