Każda prosta odpowiedź będzie skrajna. Oczywiście są przypadki, w których termin jest tak napięty, że musisz użyć brzydkiego kodu, a są przypadki, w których kod jest tak brzydki, że warto go nie dotrzymać, aby go poprawić. Potrzebne są metody oceny, w którym się znajdujesz, i być może metody ustalania realistycznych terminów, które dają czas na napisanie lepszego kodu.
Nie zapisuj czyszczenia na później. O ile zwykle nie masz okresów, które nie mają nic do roboty oprócz refaktoryzacji, nie ma „późniejszego”, w którym uporządkowanie kodu będzie miało wyższy priorytet niż obecnie. Rutyna to „czerwony, zielony, refaktor”, a nie „czerwony, zielony, zrób coś zupełnie innego przez dwa tygodnie, refaktoryzator”. Realistycznie nie zmienisz kodu, dopóki następnym razem nie wrócisz do niego z jakiegoś innego powodu, i prawdopodobnie wtedy też będziesz w terminie. Twoje prawdziwe opcje to naprawić to teraz lub zostawić.
Oczywiście dobrze napisany kod jest lepszy niż źle napisany kod, zakładając, że planujesz go przeczytać ponownie. Jeśli nie planujesz go nigdy więcej czytać, nie sprzątaj go . Wyślij pierwszą rzecz, która przejdzie testy. Ale to dość rzadki scenariusz, dla większości programistów dzieje się to w przybliżeniu nigdy. Ignorując tę sprawę, tylko Ty masz szczegóły swojej prawdziwej sprawy, aby ocenić, ile kosztuje naprawić, a ile kosztuje (w przypadku zwiększonej przyszłej konserwacji), aby go nie naprawić.
Są pewne rzeczy, które nie są trudniejsze do naprawienia w momencie, gdy kod wymaga konserwacji, niż do naprawy teraz. Naprawdę nie przynoszą one wiele korzyści teraz. Najbardziej oczywiste są trywialne do naprawienia (błędy białych znaków itp.), Więc trudno sobie wyobrazić, że masz czas, aby zadać to pytanie, ale go nie naprawić ;-) Dla tych, którzy nie są trywialni i są tego rodzaju, to OK , masz kod, który nie jest idealny, ale musisz być pragmatyczny. To działa, a ty dotrzymujesz terminu. Użyj tego.
Są pewne rzeczy, które są teraz znacznie łatwiejsze do naprawienia niż będą później, gdy (a) nie będą tak świeże w umysłach wszystkich; (b) napisano inne rzeczy, które na nich polegają lub imitują je. Są o wiele bardziej wartościowe do naprawienia, więc uszereguj je priorytetowo. Jeśli nie masz czasu na ich naprawę, musisz naciskać jak najdłużej na dłuższe terminy, ponieważ budujesz dług w bazie kodu, który prawdopodobnie będziesz musiał spłacić przy następnej wizycie kod.
Preferowaną metodą naprawy kodu jest proces przeglądu. Skomentuj problemy, które masz z tym związane, i odeślij je do juniora w celu zmiany . Możesz podać przykłady tego, co masz na myśli, i zostawić młodszego, aby znalazł wszystkie przypadki w kodzie, którego dotyczą, ale nie po prostu dokończ dla nich kodu. Jeśli to zrobisz, nie dajesz im możliwości poprawy.
Powinieneś napisać typowe problemy w przewodniku po stylu, który mówi „nie rób tego, rób to zamiast tego” i wyjaśniaj dlaczego. Ostatecznie dopuszcza się, aby „w celu uczynienia naszego kodu estetycznie spójnym”, ale jeśli nie jesteś przygotowany na spisanie reguł z pewnym uzasadnieniem, prawdopodobnie nie powinieneś ich egzekwować. Po prostu zostaw każdego programistę do wyboru.
Wreszcie, strzeż się tendencji do ulepszania rzeczy w nieskończoność. Zwroty maleją, a Ty musisz uczyć się przez doświadczenie, gdzie są nadal dobre. Jest absolutnie niezbędne, abyś sformułował realistyczne wyobrażenie o tym, co jest wystarczająco dobre, w przeciwnym razie nie możesz mieć negocjacji, w których upewnisz się, że twoje terminy dają ci czas na stworzenie „wystarczająco dobrego” kodu. Poświęć czas na rzeczy, które nie są wystarczająco dobre.