Zawsze czułem, że jedną z cech dobrego leadu jest ktoś, kto zapewnia dodatkowe szkolenie w razie potrzeby podczas każdego cyklu rozwoju. Dla mnie oznacza to, że nie tylko koduję siebie lub przeglądam kod, ale siedzę z większą liczbą młodszych programistów, łącząc programowanie z nimi, aby pomóc im uniknąć rodzaju min lądowych, na które nadepnąłem.
Głównie nie mam złudzeń, że naszym głównym celem jest edukacja - nie jest. Niezależnie od tego, czy jesteś seniorem, liderem czy młodszym programistą, celem nie jest twoja edukacja. Celem jest zawsze dostarczenie klientowi kodu jakości. Najlepiej na czas, z ograniczonym budżetem, robiąc to, co chcą. Zdaję sobie jednak sprawę z tego, że nie jestem w stanie wykonać całej pracy sam, więc spoczywa na mnie jako przewodniku, który pomoże wszystkim pomóc zespołowi odnieść sukces. A to oznacza rozpoznanie możliwości szkolenia, kiedy pojawiają się w naturze.
Tak więc na twoje pytanie, czy prośby o pociągnięcie są miejscem szkolenia juniorów, muszę powiedzieć, że nierzadko zdarza się, aby podczas nich pojawiały się uczące się chwile. Hej, będziesz musiał poradzić sobie z pierwszym konfliktem scalania, przejdźmy do tego po przeglądzie. Och, spójrz, nie uwzględniłeś żadnych testów jednostkowych dla swojego DAO, odłożymy twoją recenzję do czasu, gdy będziemy mieli okazję omówić te nowe metody. Dlaczego uważasz, że lepiej byłoby stosować podwójne prymitywy w tych obliczeniach finansowych niż BigDecimals? Tak, to nie jest naprawdę rzadkie.
Tak więc, chociaż powiedziałbym, że na pewno może się to zdarzyć, ale najwyraźniej nie jest to główny cel żądania ściągnięcia. Nie uważam też, że można oczekiwać, że kod w żądaniu ściągnięcia jest gotowy do produkcji. Często tak nie jest.
Jeśli używasz gałęzi funkcji i wydania w strategii rozgałęziania w stylu gitflow, twoje żądania ściągnięcia stają się czymś w rodzaju kandydatów do wydania. Nie jest gotowa do produkcji, ale coś bardziej zbliżonego. Wiesz, że twój kod się kompiluje (po prawej) i masz wystarczającą liczbę testową covfefe, aby przyznać, że spełnia on cele historii użytkownika. A ponieważ przeprowadziłeś już kilka testów integracyjnych w swoim środowisku programistycznym, masz świetną wersję demonstracyjną gotową do użycia, jeśli zostaniesz poproszony o zademonstrowanie swoich zmian, co zrobisz podczas przeglądu twojego PR.
Ostatecznie uważam, że powinniśmy udzielać pomocy podczas przeglądów PR, ale nie dotyczy to ogólnego kodowania. Zamiast tego wiąże się z przygotowaniem proponowanego kodu do włączenia z roboczą bazą kodu jakości produkcyjnej. PR jest dla programistów okazją do wykazania, że mają uzasadnienie i solidne zrozumienie każdej zmiany, którą wprowadzili w PR. I nawet wtedy - nawet po obciążeniu ich testami jednostkowymi, demonstracjami i mnóstwem pytań - wciąż nie oczekujemy, że proponowane zmiany są gotowe do produkcji.
Kod jest już zamknięty. Ale potem pozwalamy QA torturować to.