Code Complete obejmuje wiele ponadczasowych koncepcji, takich jak:
- silna spójność
- luźne powiązanie
- dobre rutynowe nazwy
- programowanie obronne
- kod samokontrujący
- recenzje oprogramowania
- testów jednostkowych
które są z pewnością aktualne dzisiaj.
Niektóre z koncepcji bronionych w CC są teraz egzekwowane składniowo w nowszych językach, na przykład C # nie pozwala na definiowanie zmiennych w podzakresach w sposób, który ukrywa definicję super-zasięgową.
Inne koncepcje, takie jak węgierski zapis nazw zmiennych, odeszły na dalszy plan w głównym nurcie programowania (chociaż każdy, kto nadal pracuje z Win32 API, będzie stanowczo argumentował, że żyje i ma się dobrze). Niemniej jednak prawdziwą koncepcją konwencji nazewnictwa zmiennych jest przekazanie niezbędnego znaczenia i wyjaśnienie kodu. Pojęcia, które, jak twierdzę, są również ponadczasowe.
Wszystko, co mogę powiedzieć, z tego, co pamiętam (i szybki wgląd w moją czcigodną kopię CC), powiedziałbym, że z pewnością warto to przejrzeć.
Nie sądzę jednak, aby wznosiło się ono do naprawdę ponadczasowej natury The Mythical Man Month. MMM rozwiązuje problemy dotyczące tego, kto wykonuje pracę, w jaki sposób i dlaczego to robi; a także koszty i złożoność (ludzkiej) komunikacji. MMM rozwiązuje problemy, które są fundamentalne dla wszystkiego, co robimy. Dla porównania CC koncentruje się na praktycznych i pragmatycznych kwestiach związanych z tym, jak to robimy. Innymi słowy, jeśli projekt jest opóźniony, a kierownik decyduje się na dodanie do zespołu 100 osób, napisanie zrozumiałego kodu tak naprawdę nie robi różnicy.
CC tak naprawdę nie rozwiązuje istotnych problemów nękających naszą branżę; ale zapewnia dobrą podstawę do dążenia do najlepszego wyniku w często niemożliwej sytuacji.
Z pewnością uznałbym, że oba wymagają czytania dla każdego, kto dba o rozwój oprogramowania; i polecam ponowne przeczytanie MM, gdy będziesz potrzebować odświeżenia. CC warto ponownie przeczytać, jeśli kierujesz zespołem programistów, ustanawiasz standardy grupy lub szkolisz nowych programistów; poza tym osobiście uważam, że dawno temu zinternalizowałem materiał w CC i ćwiczyłem go codziennie.
Mam nadzieję, że to pomoże. Z pewnością są dwoma moimi ulubionymi.