Patrzyłem na Code Complete na półce, myśląc: „Poza miesiącem Mitycznego Człowieka może to być jedna z niewielu książek o inżynierii oprogramowania, która przetrwa próbę czasu”. Z tego powodu zastanawiam się, czy nie wskoczyć, by go ponownie przeczytać.
Jestem ciekawy - czy ktokolwiek ostatnio ostatnio rzucił mu drugie spojrzenie? Tak, widziałeś coś, co bardzo się mylił?
To nie jest atak ani prośba o recenzję książki - bardziej interesuje mnie, jakie pomysły zmieniły się na przestrzeni lat.
I proszę - bez komentarza na temat: „Demarco / Spewak / Zachman przetrwał próbę czasu ...” Szczególnie interesuje mnie Code Complete ze względu na szerokość ziemi, którą obejmuje, i zasięg, jaki miał na polu.
Odpowiedzi:
Code Complete obejmuje wiele ponadczasowych koncepcji, takich jak:
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.
źródło
Ogólnie rzecz biorąc, książka jest nadal dobra. Mam jednak kilka drobnych problemów:
Mam niejasne wspomnienie dotyczące innych argumentów funkcyjnych, ale w tej chwili nie mogę ich znaleźć. To mogła być kolejna książka.
źródło