Zwinne.wytwarzanie.oprogramowania.najlepsze.zasady.wzorce.i.praktyki - martin.robert.cecil.pdf

(21150 KB) Pobierz
Spis treści
Słowo wstępne
Przedmowa
O autorach
CZĘŚĆ I
ZWINNE WYTWARZANIE OPROGRAMOWANIA
Agile Alliance
Manifest Agile Alliance
13
14
20
21
23
24
24
Rozdział 1 Praktyki agile
Zasady
Wniosek
Bibliografia
27
29
29
Rozdział 2 Przegląd informacji o programowaniu ekstremalnym
Praktyki programowania ekstremalnego
Klient jest członkiem zespołu
Historyjki użytkowników
Krótkie cykle
Testy akceptacyjne
Programowanie parami
Programowanie sterowane testami
Wspólna własność
Ciągła integracja
Równomierne tempo
Otwarta przestrzeń robocza
Gra w planowanie
Prosty projekt
Refaktoryzacja
Metafora
31
31
32
32
32
33
33
34
34
34
35
35
35
36
37
37
Wniosek
Bibliografia
38
38
Rozdział 3 Planowanie
Początkowa eksploracja
Tworzenie prototypów, dzielenie i szybkość
39
40
40
Planowanie wersji dystrybucyjnych
Planowanie iteracji
Planowanie zadań
Półmetek
41
41
41
42
Przebieg iteracji
Wniosek
Bibliografia
42
43
43
4
SPIS TREŚCI
Rozdział 4 Testowanie
Programowanie sterowane testami
Przykład projektu w stylu „najpierw test”
Izolacja testu
Nieoczekiwane wyeliminowanie sprzężeń
45
45
46
47
48
Testy akceptacyjne
Przykład testów akceptacyjnych
Architektura „przy okazji”
49
50
51
Wniosek
Bibliografia
51
52
Rozdział 5 Refaktoryzacja
Generowanie liczb pierwszych — prosty przykład refaktoryzacji
Ostateczny przegląd
53
54
59
Wniosek
Bibliografia
62
63
Rozdział 6 Epizod programowania
Gra w kręgle
Wniosek
65
66
98
CZĘŚĆ II
PROJEKT AGILE
Symptomy złego projektu
Zasady
Zapachy a zasady
Bibliografia
101
101
101
102
102
Rozdział 7 Co to jest projekt agile?
Co złego dzieje się z oprogramowaniem?
Zapachy projektu — woń psującego się oprogramowania
Co stymuluje oprogramowanie do psucia się?
Zespoły agile nie pozwalają psuć się oprogramowaniu
103
103
104
106
106
Program Copy
Przykład programu Copy wykonanego zgodnie z metodyką agile
Skąd deweloperzy agile wiedzieli, co należy zrobić?
106
109
110
Utrzymywanie projektu w jak najlepszej postaci
Wniosek
Bibliografia
110
111
111
Rozdział 8 SRP — zasada pojedynczej odpowiedzialności
SRP — zasada pojedynczej odpowiedzialności
Czym jest odpowiedzialność?
Rozdzielanie sprzężonych odpowiedzialności
Trwałość
113
113
115
115
116
Wniosek
Bibliografia
116
116
Rozdział 9 OCP — zasada otwarte-zamknięte
OCP — zasada otwarte-zamknięte
Opis
Kluczem jest abstrakcja
117
117
118
118
SPIS TREŚCI
5
Aplikacja Shape
Naruszenie zasady OCP
Zachowanie zgodności z zasadą OCP
Przyznaję się. Kłamałem
Przewidywanie i „naturalna” struktura
Umieszczanie „haczyków”
Stosowanie abstrakcji w celu uzyskania jawnego domknięcia
Zastosowanie podejścia „sterowania danymi” w celu uzyskania domknięcia
119
120
121
122
122
123
124
125
Wniosek
Bibliografia
126
126
Rozdział 10 LSP — zasada podstawiania Liskov
LSP — zasada podstawiania Liskov
Prosty przykład naruszenia zasady LSP
Kwadraty i prostokąty — bardziej subtelne naruszenie zasady LSP
Prawdziwy problem
Poprawność nie jest wrodzona
Relacja IS-A dotyczy zachowania
Projektowanie według kontraktu
Specyfikowanie kontraktów w testach jednostkowych
127
127
128
129
131
132
132
132
133
Realny przykład
Motywacja
Problem
Rozwiązanie niezgodne z zasadą LSP
Rozwiązanie zgodne z zasadą LSP
133
133
135
136
136
Wydzielanie zamiast dziedziczenia
Heurystyki i konwencje
Zdegenerowane funkcje w klasach pochodnych
Zgłaszanie wyjątków z klas pochodnych
137
139
140
140
Wniosek
Bibliografia
140
140
Rozdział 11 DIP — zasada odwracania zależności
DIP — zasada odwracania zależności
Podział na warstwy
Odwrócenie własności
Zależność od abstrakcji
141
141
142
142
143
Prosty przykład
Wyszukiwanie potrzebnych abstrakcji
144
145
Przykład programu Furnace
Polimorfizm dynamiczny i statyczny
146
147
Wniosek
Bibliografia
148
148
Rozdział 12 ISP — zasada segregacji interfejsów
Zaśmiecanie interfejsów
Odrębne klienty oznaczają odrębne interfejsy
Siła oddziaływania klientów na interfejsy
149
149
150
151
ISP — zasada segregacji interfejsów
Interfejsy klas a interfejsy obiektów
Separacja przez delegację
Separacja przez wielokrotne dziedziczenie
151
152
152
153
6
SPIS TREŚCI
Przykład interfejsu użytkownika bankomatu
Poliady i monady
153
158
Wniosek
Bibliografia
159
159
CZĘŚĆ III
STUDIUM PRZYPADKU: SYSTEM PŁACOWY
Szczątkowa specyfikacja systemu płacowego
Ćwiczenie
Przypadek użycia nr 1: dodawanie nowego pracownika
Przypadek użycia nr 2: usuwanie pracownika
Przypadek użycia nr 3: dostarczenie karty pracy
Przypadek użycia nr 4: dostarczenie raportu sprzedaży
Przypadek użycia nr 5: dostarczenie informacji o opłacie na rzecz związku zawodowego
Przypadek użycia nr 6: zmiana danych pracownika
Przypadek użycia nr 7: wygenerowanie listy płac na dzień
161
162
162
162
163
163
163
164
164
164
Rozdział 13 Wzorce projektowe Polecenie i Aktywny obiekt
Proste polecenia
Transakcje
Fizyczny i czasowy podział kodu
Czasowy podział kodu
165
166
167
168
168
Metoda Undo
Aktywny obiekt
Wniosek
Bibliografia
169
169
173
173
Rozdział 14 Metoda szablonowa i Strategia: dziedziczenie a delegacja
Metoda szablonowa
Nadużywanie wzorca
Sortowanie bąbelkowe
175
176
178
179
Strategia
Sortowanie jeszcze raz
181
183
Wniosek
Bibliografia
185
185
Rozdział 15 Wzorce projektowe Fasada i Mediator
Fasada
Mediator
Wniosek
Bibliografia
187
187
188
190
190
Rozdział 16 Wzorce projektowe Singleton i Monostate
Singleton
Korzyści ze stosowania wzorca Singleton
Koszty stosowania wzorca Singleton
Wzorzec projektowy Singleton w praktyce
191
192
193
193
193
Monostate
Korzyści ze stosowania wzorca Monostate
Koszty stosowania wzorca Monostate
Wzorzec projektowy Monostate w praktyce
194
196
196
196
Wniosek
Bibliografia
200
200
Zgłoś jeśli naruszono regulamin