Agile Programowanie zwinne zasady, wzorce i praktyki zwinnego wytwarzania oprogramowania w C.pdf
(
349 KB
)
Pobierz
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
Tytu³ orygina³u:
Agile Principles, Patterns,
and Practices in C#
Format: B5, stron: 848
Poznaj nowoczesn¹ metodykê wytwarzania oprogramowania w C#
•
Jak stosowaæ w praktyce zasady zwinnego wytwarzania oprogramowania?
•
W jaki sposób wykorzystywaæ w projekcie diagramy UML?
•
Jak korzystaæ z wzorców projektowych?
W zwi¹zku ze stale rosn¹cymi oczekiwaniami u¿ytkowników oprogramowania
produkcja systemów informatycznych wymaga dziœ korzystania
z usystematyzowanych metod zarz¹dzania. Projekt informatyczny, przy którym
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 równie¿ nie gwarantuje sukcesu, lecz
znacznie u³atwia jego osi¹gniêcie. Na pocz¹tku roku 2001 grupa ekspertów 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 twórców oprogramowania korzystaj¹cych z technologii .NET. Dziêki niemu poznasz
podstawowe za³o¿enia i postulaty twórców 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, diagramów UML,
testów jednostkowych i wzorców projektowych. Przeczytasz tak¿e o publikowaniu
kolejnych wersji oprogramowania.
•
Techniki programowania ekstremalnego
•
Planowanie projektu
•
Testowanie i refaktoryzacja
•
Zasady zwinnego programowania
•
Modelowanie oprogramowania za pomoc¹ diagramów UML
•
Stosowanie wzorców projektowych
•
Projektowanie pakietów i komponentów
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Przekonaj siê, ile czasu i pracy zaoszczêdzisz,
stosuj¹c w projektach metodologiê Agile
Spis treści
Słowo wstępne
............................................................................................. 17
Przedmowa
.................................................................................................... 21
Podziękowania
............................................................................................. 31
O autorach
..................................................................................................... 33
................................................... 35
...................... 37
Część I Wytwarzanie zwinne
Rozdział 1. Praktyki programowania zwinnego
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
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
....................... 153
Rozdział 7. Czym jest projektowanie zwinne?
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
Plik z chomika:
Ravel25
Inne pliki z tego folderu:
Asembler dla procesorow Intel Vademecum profesjonalisty.pdf
(400 KB)
Asembler cwiczenia praktyczne.pdf
(358 KB)
Architektura systemow zarzadzania przedsiebiorstwem Wzorce projektowe.pdf
(829 KB)
Architektura oprogramowania Metody oceny oraz analiza przypadkow.pdf
(429 KB)
Aplikacje w Visual C++ 2005 Przyklady.pdf
(296 KB)
Inne foldery tego chomika:
(X) HTML
algorytmy i struktury danych
asembler
C++
Core JAVA2 Podstawy
Zgłoś jeśli
naruszono regulamin