REFAKTORYZACJA ULEPSZANIE STRUKTURY

71.11

Na stanie

SPIS TREŚCI

Słowo wstępne do pierwszego wydania 9

Przedmowa 11

  • Czym jest refaktoryzacja? 12
  • Co zawiera ta książka? 12
  • Kto powinien przeczytać tę książkę? 13
  • Podstawowe prace wykonane przez innych 14
  • Podziękowania 15

1. Refaktoryzacja: pierwszy przykład 17

  • Punkt wyjścia 17
  • Uwagi na temat przykładowego programu 19
  • Pierwszy krok refaktoryzacji 20
  • Dekompozycja funkcji statement 21
  • Aktualny stan: mnóstwo zagnieżdżonych funkcji 37
  • Rozdzielenie faz obliczeń i formatowania 39
  • Aktualny stan: podział na dwa pliki (i fazy) 46
  • Uporządkowanie obliczeń według typów przedstawień 48
  • Aktualny stan: tworzenie danych za pomocą polimorficznego kalkulatora 55
  • Podsumowanie 57

2. Zasady refaktoryzacji 59

  • Definicja refaktoryzacji 59
  • Dwa kapelusze 60
  • Po co refaktoryzować? 60
  • Kiedy refaktoryzować? 63
  • Problemy z refaktoryzacją 68
  • Refaktoryzacja, architektura i yagni 73
  • Refaktoryzacja i szerszy proces tworzenia oprogramowania 74
  • Refaktoryzacja a wydajność 75
  • Skąd się wzięła refaktoryzacja? 77
  • Refaktoryzacja automatyczna 78
  • Dalsze kroki 80

3. Brzydkie zapaszki w kodzie 81

  • Tajemnicza nazwa 82
  • Zduplikowany kod 82
  • Długa funkcja 82
  • Długa lista parametrów 83
  • Dane globalne 84
  • Dane mutowalne 84
  • Rozbieżne zmiany 85
  • Fala uderzeniowa 85
  • Zazdrosne funkcjonalności 86
  • Stada danych 86
  • Opętanie typami prostymi 87
  • Powtarzane instrukcje warunkowe 87
  • Pętle 88
  • Leniwa klasa 88
  • Spekulacyjne uogólnienia 88
  • Pole tymczasowe 89
  • Łańcuchy komunikatów 89
  • Pośrednik 89
  • Niestosowna bliskość 90
  • Duża klasa 90
  • Alternatywne klasy z różnymi interfejsami 91
  • Klasa danych 91
  • Odmowa przyjęcia spadku 91
  • Uwagi 92

4. Testy 93

  • Zalety samotestującego się kodu 93
  • Prosty kod do przetestowania 95
  • Pierwszy test 97
  • Dodanie następnego testu 100
  • Modyfikacja danych początkowych 102
  • Sprawdzanie warunków granicznych 102
  • Dalsze kroki 105

5. Katalog przekształceń refaktoryzacyjnych 107

  • Format opisu przekształceń 107
  • Wybór przekształceń 108

6. Pierwszy pakiet przekształceń 109

  • Ekstrakcja Funkcji 110
  • Wchłonięcie Funkcji 118
  • Ekstrakcja Zmiennej 122
  • Wchłonięcie Zmiennej 126
  • Zmiana Deklaracji Funkcji 127
  • Enkapsulacja Zmiennej 134
  • Zmiana Nazwy Zmiennej 139
  • Wprowadzenie Obiektu Parametrycznego 142
  • Zebranie Funkcji w Klasę 146
  • Zebranie Funkcji w Transformatę 151
  • Podział na Fazy 156

7. Enkapsulacja 161

  • Enkapsulacja Rekordu 162
  • Enkapsulacja Kolekcji 170
  • Zastąpienie Typu Prostego Obiektem 174
  • Zastąpienie Zmiennej Tymczasowej Zapytaniem 178
  • Ekstrakcja Klasy 182
  • Wchłonięcie Klasy 186
  • Ukrycie Delegata 189
  • Usunięcie Pośrednika 192
  • Zastąpienie Algorytmu 195

8. Przenoszenie funkcjonalności 197

  • Przeniesienie Funkcji 198
  • Przeniesienie Pola 206
  • Przeniesienie Instrukcji do Funkcji 211
  • Przeniesienie Instrukcji do Kodu Wywołującego 215
  • Zastąpienie Wchłoniętego Kodu Wywołaniem Funkcji 220
  • Przesunięcie Instrukcji 221
  • Podział Pętli 225
  • Zastąpienie Pętli Potokiem 229
  • Usunięcie Martwego Kodu 234

9. Porządkowanie danych 235

  • Podział Zmiennej 236
  • Zmiana Nazwy Pola 240
  • Zastąpienie Wyliczanej Zmiennej Zapytaniem 244
  • Zamiana Referencji na Wartość 248
  • Zamiana Wartości na Referencję 252

10. Upraszczanie wyrażeń warunkowych 255

  • Dekompozycja Instrukcji Warunkowej 256
  • Scalenie Instrukcji Warunkowej 259
  • Zastąpienie Zagnieżdżonej Instrukcji Warunkowej Instrukcją Wyjścia 262
  • Zastąpienie Instrukcji Warunkowej Polimorfizmem 267
  • Wprowadzenie Przypadku Specjalnego 283
  • Wprowadzenie Asercji 296

11. Refaktoryzacja interfejsu API 299

  • Rozdzielenie Zapytania i Modyfikacji 300
  • Parametryzacja Funkcji 303
  • Usunięcie Parametru-Flagi 307
  • Przekazanie Całego Obiektu 312
  • Zastąpienie Parametru Zapytaniem 317
  • Zastąpienie Zapytania Parametrem 320
  • Usunięcie Funkcji Ustawiającej Wartość 324
  • Zastąpienie Konstruktora Funkcją Wytwórczą 327
  • Zastąpienie Funkcji Poleceniem 330
  • Zastąpienie Polecenia Funkcją 336

12. Praca z hierarchią klas 341

  • Przesunięcie Metody w Górę Hierarchii 342
  • Przesunięcie Pola w Górę Hierarchii 345
  • Przesunięcie Ciała Konstruktora w Górę Hierarchii 347
  • Przesunięcie Metody w Dół Hierarchii 351
  • Przesunięcie Pola w Dół Hierarchii 352
  • Zastąpienie Kodu Typu Podklasami 353
  • Usunięcie Podklasy 360
  • Ekstrakcja Nadklasy 366
  • Zwinięcie Hierarchii 371
  • Zastąpienie Podklasy Delegatem 372
  • Zastąpienie Nadklasy Delegatem 390

Bibliografia 395

Skorowidz 398

Autor

ISBN

978-83-283-5563-7

Liczba stron

Rok wydania

Wydawca

Opinie

Na razie nie ma opinii o produkcie.

Napisz pierwszą opinię o „REFAKTORYZACJA ULEPSZANIE STRUKTURY”

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *