Czysty_kod_Podrecznik_dobrego_programisty_czykov.pdf

(724 KB) Pobierz
Tytuł oryginału: Clean Code: A Handbook of Agile Software Craftsmanship
Tłumaczenie: Paweł Gonera
Projekt okładki: Mateusz Obarek, Maciej Pokoński
ISBN: 978-83-283-0234-1
Authorized translation from the English language edition, entitled: Clean Code: A Handbook of Agile
Software Craftsmanship, First Edition, ISBN 0132350882, by Robert C. Martin, published by Pearson
Education, Inc., publishing as Prentice Hall.
Copyright © 2009 by Pearson Education, Inc.
Polish language edition published by Helion S.A.
Copyright © 2014.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from Pearson Education Inc.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte
w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich
wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz
Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe
z wykorzystania informacji zawartych w książce.
Materiały graficzne na okładce zostały wykorzystane za zgodą iStockPhoto Inc.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/czykov
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/czykov.zip
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
SPIS TREŚCI
Słowo wstępne
Wstęp
1. Czysty kod
Niech stanie się kod...
W poszukiwaniu doskonałego kodu...
Całkowity koszt bałaganu
Rozpoczęcie wielkiej zmiany projektu
Postawa
Największa zagadka
Sztuka czystego kodu?
Co to jest czysty kod?
Szkoły myślenia
Jesteśmy autorami
Zasada skautów
Poprzednik i zasady
Zakończenie
Bibliografia
13
19
23
24
24
25
26
27
28
28
28
34
35
36
36
36
37
2. Znaczące nazwy
Wstęp
Używaj nazw przedstawiających intencje
Unikanie dezinformacji
Tworzenie wyraźnych różnic
Tworzenie nazw, które można wymówić
Korzystanie z nazw łatwych do wyszukania
Unikanie kodowania
Notacja węgierska
Przedrostki składników
Interfejsy i implementacje
Unikanie odwzorowania mentalnego
Nazwy klas
Nazwy metod
Nie bądź dowcipny
Wybieraj jedno słowo na pojęcie
Nie twórz kalamburów!
Korzystanie z nazw dziedziny rozwiązania
Korzystanie z nazw dziedziny problemu
Dodanie znaczącego kontekstu
Nie należy dodawać nadmiarowego kontekstu
Słowo końcowe
39
39
40
41
42
43
44
45
45
46
46
47
47
47
48
48
49
49
49
50
51
52
5
Kup książkę
Poleć książkę
3. Funkcje
Małe funkcje!
Bloki i wcięcia
Wykonuj jedną czynność
Sekcje wewnątrz funkcji
Jeden poziom abstrakcji w funkcji
Czytanie kodu od góry do dołu — zasada zstępująca
Instrukcje switch
Korzystanie z nazw opisowych
Argumenty funkcji
Często stosowane funkcje jednoargumentowe
Argumenty znacznikowe
Funkcje dwuargumentowe
Funkcje trzyargumentowe
Argumenty obiektowe
Listy argumentów
Czasowniki i słowa kluczowe
Unikanie efektów ubocznych
Argumenty wyjściowe
Rozdzielanie poleceń i zapytań
Stosowanie wyjątków zamiast zwracania kodów błędów
Wyodrębnienie bloków try-catch
Obsługa błędów jest jedną operacją
Przyciąganie zależności w Error.java
Nie powtarzaj się
Programowanie strukturalne
Jak pisać takie funkcje?
Zakończenie
SetupTeardownIncluder
Bibliografia
53
56
57
57
58
58
58
59
61
62
62
63
63
64
64
65
65
65
66
67
67
68
69
69
69
70
70
71
71
73
4. Komentarze
Komentarze nie są szminką dla złego kodu
Czytelny kod nie wymaga komentarzy
Dobre komentarze
Komentarze prawne
Komentarze informacyjne
Wyjaśnianie zamierzeń
Wyjaśnianie
Ostrzeżenia o konsekwencjach
Komentarze TODO
Wzmocnienie
Komentarze Javadoc w publicznym API
Złe komentarze
Bełkot
Powtarzające się komentarze
Mylące komentarze
Komentarze wymagane
Komentarze dziennika
75
77
77
77
77
78
78
79
80
80
81
81
81
81
82
84
85
85
6
SPIS TREŚCI
Kup książkę
Poleć książkę
Komentarze wprowadzające szum informacyjny
Przerażający szum
Nie używaj komentarzy, jeżeli można użyć funkcji lub zmiennej
Znaczniki pozycji
Komentarze w klamrach zamykających
Atrybuty i dopiski
Zakomentowany kod
Komentarze HTML
Informacje nielokalne
Nadmiar informacji
Nieoczywiste połączenia
Nagłówki funkcji
Komentarze Javadoc w niepublicznym kodzie
Przykład
Bibliografia
86
87
88
88
88
89
89
90
91
91
91
92
92
92
95
5. Formatowanie
Przeznaczenie formatowania
Formatowanie pionowe
Metafora gazety
Pionowe odstępy pomiędzy segmentami kodu
Gęstość pionowa
Odległość pionowa
Uporządkowanie pionowe
Formatowanie poziome
Poziome odstępy i gęstość
Rozmieszczenie poziome
Wcięcia
Puste zakresy
Zasady zespołowe
Zasady formatowania wujka Boba
97
98
98
99
99
101
101
105
106
106
107
109
110
110
111
6. Obiekty i struktury danych
Abstrakcja danych
Antysymetria danych i obiektów
Prawo Demeter
Wraki pociągów
Hybrydy
Ukrywanie struktury
Obiekty transferu danych
Active Record
Zakończenie
Bibliografia
113
113
115
117
118
118
119
119
120
121
121
7. Obsługa błędów
Użycie wyjątków zamiast kodów powrotu
Rozpoczynanie od pisania instrukcji try-catch-finally
Użycie niekontrolowanych wyjątków
Dostarczanie kontekstu za pomocą wyjątków
Definiowanie klas wyjątków w zależności od potrzeb wywołującego
123
124
125
126
127
127
SPIS TREŚCI
7
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin