W pytaniu są dwie znaczące kwestie, część taktyczna i zbliżająca się data. Są to odrębne kwestie - pierwsza to kwestia komunikacji i dynamiki zespołu, druga to planowanie i ustalanie priorytetów.
Taktownie . Zakładam, że chcesz uniknąć szczotkowanych ego i negatywnych reakcji w stosunku do recenzji. Jakieś sugestie:
- Uzgodnij standardy kodowania i zasady projektowania.
- Nigdy nie krytykuj ani nie oceniaj programisty , tylko kod . Unikaj słowa „ty” lub „swój kod”, po prostu porozmawiaj o sprawdzanym kodzie, niepowiązanym z żadnym programistą.
- Daj się pochwalić jakością ukończonego kodu, aby docenić komentarze, które pomogą poprawić wynik końcowy.
- Sugeruj ulepszenia zamiast popytu. Jeśli nie zgadzasz się, zawsze miej dialog. Kiedy się nie zgadzasz, spróbuj zrozumieć inny punkt widzenia.
- Niech recenzje przebiegną w obie strony. Poproszę osobę, którą sprawdziłeś, o sprawdzenie Twojego kodu. Nie mam recenzji „jednokierunkowych”.
Druga część to ustalanie priorytetów . Masz wiele sugestii dotyczących ulepszeń, ale ponieważ zbliża się termin, jest tylko czas, aby zastosować kilka.
Po pierwsze, chcesz tego uniknąć, przede wszystkim! Robisz to, wykonując ciągłe, przyrostowe recenzje. Nie pozwól programistom pracować nad tygodniami nad funkcją, a następnie przejrzyj ją w ostatniej chwili. Po drugie, recenzje kodu i czas na wdrożenie sugestii przeglądu powinny być częścią regularnego planowania i szacunków dla każdego zadania. Jeśli nie ma wystarczająco dużo czasu na prawidłowe sprawdzenie, coś poszło nie tak w planowaniu.
Załóżmy jednak, że coś poszło nie tak, a teraz masz do czynienia z wieloma recenzjami i nie masz czasu na ich wdrożenie. Musisz ustalić priorytety. Następnie przejdź do zmian, które będą najtrudniejsze i najbardziej ryzykowne do zmiany później, jeśli je odłożysz.
Nazewnictwo identyfikatorów w kodzie źródłowym jest niezwykle ważne dla czytelności i łatwości konserwacji, ale jest również dość łatwe i wiąże się z niskim ryzykiem zmiany w przyszłości. To samo z formatowaniem kodu. Więc nie skupiaj się na tych rzeczach. Z drugiej strony, zdrowy rozsądek publicznie ujawnionych interfejsów powinien mieć najwyższy priorytet, ponieważ naprawdę trudno je zmienić w przyszłości. Trwałe dane trudno zmienić - jeśli najpierw zaczniesz przechowywać niespójne lub niekompletne dane w bazie danych, naprawdę trudno będzie je naprawić w przyszłości.
Obszary objęte testami jednostkowymi są obarczone niskim ryzykiem. Zawsze możesz to naprawić później. Obszary, które nie są, ale które można poddać testom jednostkowym, są mniej zagrożone niż obszary, których nie można poddać testom jednostkowym.
Załóżmy, że masz dużą część kodu bez testów jednostkowych i wszelkiego rodzaju problemów z jakością kodu, w tym na stałe zależną od usługi zewnętrznej. Zamiast tego wstrzykiwanie tej zależności powoduje, że fragment kodu jest testowalny. Oznacza to, że możesz w przyszłości dodawać testy, a następnie pracować nad naprawieniem pozostałych problemów. W przypadku stałej zależności nie można nawet dodawać testów. Najpierw skorzystaj z tej poprawki.
Ale staraj się przede wszystkim nie dopuścić do tego scenariusza!