Jakie są kluczowe punkty Code Complete? [Zamknięte]

72

Słyszałem, że wiele osób wspomina Code Complete jako książkę wartą przeczytania. Niestety jestem tak zajęty, że nie mam czasu na czytanie, więc czy ktoś może mi powiedzieć, jakie są kluczowe punkty tej książki?

Casebash
źródło
49
Kluczowym punktem strony 824 Code Complete 2 jest to, że powinieneś czytać książki programistyczne!
azheglov
@azheglov: Czy to 2 jak w 2. edycji lub 2 jak w Code Complete 2, które należy przeczytać po Code Complete?
Chris,
@Chris, prawie 4 lata później: jest 2 jak w 2. edycji, poprawione i zaktualizowane. I mam nadzieję, że w międzyczasie ją przeczytałeś :-)
streppel

Odpowiedzi:

83

Code Complete dotyczy kunsztu oprogramowania; jest to książka dla początkujących / średnio zaawansowanych, napisana dla pracującego programisty, ale nadal byłaby bardzo przydatna dla kogoś, kto programuje od co najmniej roku.

Zatem kluczowe punkty Code Complete (wydanie drugie) są ładnie streszczone w rozdziale 34, Tematy w oprogramowaniu. Jak sparafrazowałem z moich notatek:

  1. Podbij złożoność : zmniejsz obciążenie poznawcze swojego umysłu poprzez dyscyplinę, konwencje i abstrakcję.
  2. Wybierz proces : bądź świadomy jakości od początku (wymagania) do zakończenia (wdrożenie) i później (konserwacja).
  3. Napisz programy dla ludzi po pierwsze, a komputery po drugie : czytelność kodu jest niezwykle ważna z punktu widzenia zrozumiałości, możliwości przeglądu, współczynnika błędów, korekcji błędów, możliwości modyfikacji, a co za tym idzie czasu i jakości rozwoju.
  4. Programuj w swoim języku, a nie w nim : pomyśl o czym? i dlaczego? przed jak?
  5. Skoncentruj swoją uwagę za pomocą konwencji : konwencje zarządzają złożonością, zapewniając strukturę tam, gdzie jest potrzebna, aby można było efektywnie wykorzystać ostateczny zasób - twoją uwagę.
  6. Program pod względem dziedziny problemowej : praca na najwyższym poziomie abstrakcji; kod najwyższego poziomu powinien opisywać rozwiązywany problem. Rozróżnij poziom systemu operacyjnego, poziom języka programowania, niskopoziomowe struktury implementacji, niskopoziomowe domeny problemowe, a na koniec wysokopoziomowe terminy domen problemowych, które byłyby całkowicie sensowne dla użytkownika (niekodującego).
  7. Uważaj na spadające skały : ponieważ programowanie łączy sztukę i naukę, niezbędna jest dobra ocena sytuacji, w tym przestrzeganie znaków ostrzegawczych.
  8. Iteruj, powtarzaj, znowu i znowu : iteruj wymagania, projektowanie, szacunki, kod, strojenie kodu.
  9. Renderuj oprogramowanie i religię : bądź eklektyczny i chętny do eksperymentowania. Nie bądź nieelastycznym fanatykiem, wyklucza ciekawość i naukę. Więcej niż posiadanie tylko młotka w zestawie narzędzi.

Ale najważniejsze dania na wynos znajdują się w rozdziale 33, Charakter osobisty : kiedy świadomie starasz się ulepszyć jako programista, możesz i zrobisz to. Najszybszym sposobem jest przyjęcie postaw mistrzów kodowania (pokora, ciekawość, uczciwość intelektualna, dyscyplina, kreatywność), a także praktykowanie ich nawyków (w książce wymieniono wiele dobrych nawyków, np. Wybór dobrej zmiennej / wartości nazwy).

Ponadto książka wyjaśnia, że różnica między średnią a doskonałą w oprogramowaniu jest ogromna ; sam ten fakt powinien doprowadzić sumiennego programistę do poprawy siebie.

To już koniec; długa wersja jest w książce. :) Mogę również wysłać ci moje niezbyt długie, niezbyt krótkie notatki, jeśli chcesz uzyskać więcej szczegółów. Ale książka to z pewnością dobrze wydane pieniądze i czas, nawet jeśli styl pisania jest czasem męczący.

Poza kodem Complete, gorąco polecam programistę Pragmatic . Jest przeznaczony dla programistów na poziomie średnim, ładnie napisany i stanowi doskonałe połączenie porad na wysokim, średnim i niskim poziomie.

limist
źródło
Czy na pewno jest to książka na poziomie średnim? Wydaje się to dość proste, z poradami typu „pamiętaj o usuwaniu nieużywanych nazw zmiennych” - może to być świetne dla kogoś na pierwszym lub drugim roku studiów, ale nie na poziomie pośrednim (IMO).
Colen
1
@ Colen: dziękuję za komentarz, powinienem był podać, że jest on przeznaczony dla początkujących / średnio zaawansowanych programistów.
limist
10
@ Colen: Chociaż Code Complete dotyczy kilku prostych tematów połączonych ze złożonymi, zdecydowanie nie jest to dla początkujących. Prawie każdy programista na dowolnym poziomie może skorzystać z lektury; zdziwiłbyś się, jak mało niektórzy „starsi” programiści tak naprawdę wiedzą o podstawach, szczególnie jeśli kiedykolwiek programowali tylko w jednym języku lub pracowali dla jednej firmy przez całą swoją karierę.
Steve Hill
1
Kompletny kod IMO to niepotrzebna pełna informacja - więc kupujący uważaj!
BKSpurgeon
To dobre podsumowanie tematów w książce. Czy możesz podzielić się swoimi niezbyt długimi, nie tak krótkimi notatkami?
Akshay Khot
18

Jest to książka pośrednia, zbiór najlepszych praktyk w zakresie tworzenia oprogramowania.

Jeśli jesteś początkującym programistą, nie zrozumiesz dużo materiału, a jeśli masz doświadczenie, książka potwierdzi tylko to, co już wiesz. W związku z tym książka może być najbardziej wartościowa dla programistów średnio zaawansowanych, którzy mają już trochę wiedzy programistycznej, ale potrzebują książki najlepszych praktyk, aby wszystko to połączyć.

Kilka stron poświęcono na formatowanie bloków kodu i względne zalety każdego podejścia. Osobiście uważam, że wielka debata na temat tego, gdzie umieścić kędzierzawe szelki, dobiegła końca. (Albo to jest?)

Robert Harvey
źródło
4
Twój nawias przyniósł ci przychylność. : p
Nathan Taylor
Gdzie mam położyć nawiasy klamrowe?
Petah