full-version-agile-programowanie-zwinne-zasady-wzorce-i-praktyki-zwinnego-wytwarzania-oprogramowania-w-c_agile.pdf

(8166 KB) Pobierz
665299084 UNPDF
Agile. Programowanie zwinne:
zasady, wzorce i praktyki
zwinnego wytwarzania
oprogramowania w C#
Autor: Robert C. Martin, Micah Martin
TĀumaczenie: MikoĀaj Szczepaniak
ISBN: 978-83-246-1177-5
and Practices in C#
Format: B5, stron: 848
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Poznaj nowoczesnĴ metodykķ wytwarzania oprogramowania w C #
¤ Jak stosowaě w praktyce zasady zwinnego wytwarzania oprogramowania?
¤ W jaki sposb wykorzystywaě w projekcie diagramy UML?
¤ Jak korzystaě z wzorcw projektowych?
W zwiĴzku ze stale rosnĴcymi oczekiwaniami uŃytkownikw oprogramowania
produkcja systemw informatycznych wymaga dziľ korzystania
z usystematyzowanych metod zarzĴdzania. Projekt informatyczny, przy ktrym
nie uŃywa siķ sensownej metodologii wytwarzania, jest skazany na poraŃkķ
Ï przekroczenie terminu, budŃetu i niespeĀnienie wymagaĺ funkcjonalnych. Kierowanie
projektem zgodnie z okreľlonymi zasadami rwnieŃ nie gwarantuje sukcesu, lecz
znacznie uĀatwia jego osiĴgniķcie. Na poczĴtku roku 2001 grupa ekspertw zawiĴzaĀa
zespĀ o nazwie Agile Alliance. Efektem prac tego zespoĀu jest metodologia zwinnego
wytwarzania oprogramowania Ï Agile.
KsiĴŃka â Agile. Programowanie zwinne: zasady, wzorce i praktyki zwinnego
wytwarzania oprogramowania w C# Ò to podrķcznik metodologii Agile przeznaczony
dla twrcw oprogramowania korzystajĴcych z technologii .NET. Dziķki niemu poznasz
podstawowe zaĀoŃenia i postulaty twrcw Agile i nauczysz siķ stosowaě je w praktyce.
Dowiesz siķ, jak szacowaě terminy i koszty, dzieliě proces wytwarzania na iteracje
i testowaě produkt. Zdobķdziesz wiedzķ na temat refaktoryzacji, diagramw UML,
testw jednostkowych i wzorcw projektowych. Przeczytasz takŃe o publikowaniu
kolejnych wersji oprogramowania.
¤ Techniki programowania ekstremalnego
¤ Planowanie projektu
¤ Testowanie i refaktoryzacja
¤ Zasady zwinnego programowania
¤ Modelowanie oprogramowania za pomocĴ diagramw UML
¤ Stosowanie wzorcw projektowych
¤ Projektowanie pakietw i komponentw
Przekonaj siķ, ile czasu i pracy zaoszczķdzisz,
stosujĴc w projektach metodologiķ Agile
665299084.002.png 665299084.003.png 665299084.004.png 665299084.005.png
 
Spis treści
Słowo wstępne ............................................................................................. 17
Przedmowa .................................................................................................... 21
Podziękowania ............................................................................................. 31
O autorach ..................................................................................................... 33
Część I Wytwarzanie zwinne ................................................... 35
Rozdział 1. Praktyki programowania zwinnego ...................... 37
Agile Alliance ............................................................................................. 38
Programiści i ich harmonijna współpraca jest ważniejsza
od procesów i narzędzi ......................................................................... 39
Działające oprogramowanie jest ważniejsze
od wyczerpującej dokumentacji ........................................................... 40
Faktyczna współpraca z klientem jest ważniejsza
od negocjacji zasad kontraktu ............................................................... 41
Reagowanie na zmiany jest ważniejsze
od konsekwentnego realizowania planu .............................................. 42
Podstawowe zasady ................................................................................... 43
Konkluzja .................................................................................................... 46
Bibliografia ................................................................................................. 47
Rozdział 2. Przegląd technik programowania
ekstremalnego ................................................................... 49
Praktyki programowania ekstremalnego ............................................ 50
Cały zespół ............................................................................................... 50
Opowieści użytkownika ........................................................................... 50
3
665299084.001.png
4
Spis treści
Krótkie cykle ............................................................................................ 51
Testy akceptacyjne ................................................................................... 52
Programowanie w parach ........................................................................ 53
Wytwarzanie sterowane testami (TDD) ................................................. 54
Wspólna własność .................................................................................... 54
Ciągła integracja ...................................................................................... 55
Równe tempo ........................................................................................... 56
Otwarta przestrzeń pracy ........................................................................ 56
Gra planistyczna ....................................................................................... 57
Prosty projekt ........................................................................................... 57
Refaktoryzacja .......................................................................................... 59
Metafora ................................................................................................... 59
Konkluzja .................................................................................................... 61
Bibliografia ................................................................................................. 61
Rozdział 3. Planowanie .......................................................................... 63
Wstępne poznawanie wymagań ............................................................ 64
Dzielenie i scalanie opowieści użytkownika .......................................... 65
Planowanie wydań .................................................................................... 66
Planowanie iteracji ................................................................................... 66
Definiowanie warunków zakończenia projektu ................................ 67
Planowanie zadań ..................................................................................... 67
Iteracje ......................................................................................................... 69
Śledzenie postępu ..................................................................................... 69
Konkluzja .................................................................................................... 70
Bibliografia ................................................................................................. 71
Rozdział 4. Testowanie .......................................................................... 73
Wytwarzanie sterowane testami ........................................................... 74
Przykład projektu poprzedzonego testami ............................................. 75
Izolacja testów .......................................................................................... 76
Eliminowanie powiązań .......................................................................... 78
Testy akceptacyjne ................................................................................... 79
Wpływ testów akceptacyjnych
na architekturę oprogramowania ...................................................... 81
Spis treści
5
Konkluzja .................................................................................................... 82
Bibliografia ................................................................................................. 82
Rozdział 5. Refaktoryzacja .................................................................. 83
Prosty przykład refaktoryzacji
— generowanie liczb pierwszych ....................................................... 84
Testy jednostkowe ................................................................................... 86
Refaktoryzacja .......................................................................................... 87
Ostatnie udoskonalenia ........................................................................... 93
Konkluzja .................................................................................................... 97
Bibliografia ................................................................................................. 98
Rozdział 6. Epizod z życia programistów ................................... 99
Gra w kręgle ............................................................................................. 100
Konkluzja .................................................................................................. 146
Przegląd reguł gry w kręgle ................................................................. 147
Część II Projektowanie zwinne ............................................ 149
Rozdział 7. Czym jest projektowanie zwinne? ....................... 153
Symptomy złego projektu ..................................................................... 154
Symptomy złego projektu, czyli potencjalne źródła porażek ............. 154
Sztywność ............................................................................................... 155
Wrażliwość ............................................................................................. 155
Nieelastyczność ...................................................................................... 156
Niedostosowanie do rzeczywistości ...................................................... 156
Nadmierna złożoność ............................................................................ 156
Niepotrzebne powtórzenia .................................................................... 157
Nieprzejrzystość .................................................................................... 157
Dlaczego oprogramowanie ulega degradacji .................................. 158
Program Copy .......................................................................................... 159
Przykład typowego scenariusza ............................................................ 159
Przykład budowy programu Copy w ramach projektu zwinnego ...... 163
Konkluzja .................................................................................................. 166
Bibliografia ............................................................................................... 166
6
Spis treści
Rozdział 8. Zasada pojedynczej odpowiedzialności ............ 167
Definiowanie odpowiedzialności ........................................................ 170
Oddzielanie wzajemnie powiązanych odpowiedzialności ............ 171
Trwałość .................................................................................................... 171
Konkluzja .................................................................................................. 172
Bibliografia ............................................................................................... 172
Rozdział 9. Zasada otwarte-zamknięte ....................................... 173
Omówienie zasady otwarte-zamknięte .............................................. 174
Aplikacja Shape ....................................................................................... 177
Przykład naruszenia zasady OCP ......................................................... 177
Przykład pełnej zgodności z zasadą otwarte-zamknięte ...................... 180
Przewidywanie zmian i „naturalna” struktura ..................................... 181
Przygotowywanie punktów zaczepienia ............................................... 182
Stosowanie abstrakcji do jawnego zamykania oprogramowania
dla zmian .............................................................................................. 184
Zapewnianie zamknięcia z wykorzystaniem techniki sterowania
przez dane ............................................................................................ 185
Konkluzja .................................................................................................. 187
Bibliografia ............................................................................................... 187
Rozdział 10. Zasada podstawiania Liskov ................................. 189
Naruszenia zasady podstawiania Liskov ........................................... 190
Prosty przykład ...................................................................................... 190
Przykład mniej jaskrawego naruszenia zasady LSP ............................ 192
Przykład zaczerpnięty z rzeczywistości ................................................ 199
Wyodrębnianie zamiast dziedziczenia .............................................. 205
Heurystyki i konwencje ......................................................................... 208
Konkluzja .................................................................................................. 209
Bibliografia ............................................................................................... 209
Rozdział 11. Zasada odwracania zależności ............................ 211
Podział na warstwy ................................................................................. 212
Odwracanie relacji własności ................................................................ 213
Zależność od abstrakcji .......................................................................... 215
Zgłoś jeśli naruszono regulamin