Refaktoryzacja do wzorców projektowych

Dostępność: na wyczerpaniu
Wysyłka w: 48 godzin
Dostawa: Cena nie zawiera ewentualnych kosztów płatności sprawdź formy dostawy
Cena: 89,00 zł
zawiera 5.00% VAT, bez kosztów dostawy
89.00
ilość szt.
Zyskujesz 8 pkt [?]

towar niedostępny

dodaj do przechowalni
Pin It

Opis

Zmodernizuj kod swoich aplikacji
pod kątem stosowania wzorców projektowych

  • Dowiedz się, czym jest refaktoryzacja
  • Poznaj zasady stosowania wzorców projektowych
  • Wprowadź wzorce projektowe do kodu źródłowego aplikacji

Refaktoryzacja to zmiana konstrukcji kodu bez modyfikowania jego działania. Najczęstszym powodem refaktoryzowania kodu jest konieczność jego "uporządkowania" lub usunięcia z niego funkcji niewykorzystywanych w projekcie. Często również stosuje się refaktoryzację, aby zmodernizować kod pod kątem zastosowania w nim wzorców projektowych. Wprowadzenie wzorców projektowych do kodu znacznie ułatwia jego późniejsze modyfikacje i ewentualne rozbudowy. Stosowanie technik programowania ekstremalnego nierozerwalnie wiąże ze sobą wzorce projektowe i refaktoryzację kodu.

Książka "Refaktoryzacja do wzorców projektowych" opisuje teoretyczne i praktyczne zagadnienia związane z refaktoryzowaniem kodu pod kątem wzorców projektowych. Przedstawia opisy niskopoziomowych przekształceń, które umożliwiają programiście bezpieczną zmianę konstrukcji kodu prowadzącą do zaimplementowania bądź usunięcia określonych wzorców z programu. Zawiera również szczegółowy opis łączenia tych przekształceń w procesie refaktoryzacji oraz sposobów implementowania wzorców w kodzie. Każde z omówionych w książce przekształceń zostało zilustrowane praktycznymi przykładami.

  • Podstawowe zasady refaktoryzacji
  • Zasady stosowania wzorców projektowych
  • Najczęstsze powody wprowadzania wzorców do kodu
  • Implementowanie wzorców projektowych
  • Zmiany sposobów tworzenia obiektów
  • Upraszczanie i uogólnianie kodu

Jeśli chcesz zmodernizować kod swoich aplikacji,
w tej książce znajdziesz wszystkie informacje na ten temat.

Spis treści

Przedmowa Ralpha Johnsona (11)

Przedmowa Martina Fowlera (13)

Wstęp (15)

  • O czym jest ta książka? (15)
  • Jaki jest cel tej książki? (15)
  • Dla kogo jest ta książka? (16)
  • Co trzeba wiedzieć? (16)
  • Jak korzystać z tej książki? (17)
  • Historia tej książki (17)
  • Na ramionach gigantów (18)
  • Podziękowania (18)

1. Dlaczego napisałem tę książkę (21)

  • Planowanie na wyrost (21)
  • Wzorce jako panaceum (22)
  • Brak właściwego planowania (23)
  • Programowanie sterowane testami i ciągła refaktoryzacja (24)
  • Refaktoryzacja i wzorce (25)
  • Projektowanie jako proces ewolucyjny (26)

2. Refaktoryzacja (27)

  • Czym jest refaktoryzacja? (27)
  • Dlaczego refaktoryzujemy? (28)
  • Co dwie głowy... (29)
  • Kod czytelny dla człowieka (29)
  • Porządek (30)
  • Zasada małych kroków (31)
  • Dług konstrukcyjny (32)
  • Rozwijanie architektury (33)
  • Przekształcenia złożone i oparte na testach (33)
  • Zalety przekształceń złożonych (34)
  • Narzędzia do refaktoryzacji (35)

3. Wzorce (37)

  • Czym jest wzorzec projektowy? (37)
  • Fan wzorców (38)
  • Jest wiele sposobów implementowania każdego wzorca (40)
  • Zmiana "do", "w stronę" i "od" wzorca (42)
  • Czy wzorce zwiększają złożoność kodu? (43)
  • Znajomość wzorców (44)
  • Rozpoczynanie pracy od pełnego projektu (45)

4. Zapachy kodu (47)

  • Duplicated Code (powtórzenia kodu) (48)
  • Long Method (długa metoda) (49)
  • Conditional Complexity (złożoność warunków) (50)
  • Primitive Obsession (pierwotna obsesja) (50)
  • Indecent Exposure (nieprzyzwoite obnażanie się) (51)
  • Solution Sprawl (rozrzucanie rozwiązania) (51)
  • Alternative Class with Different Interfaces (podobna klasa o innych interfejsach) (51)
  • Lazy Class (leniwa klasa) (52)
  • Large Class (duża klasa) (52)
  • Switch Statements (instrukcje switch) (52)
  • Combinatorial Explosion (eksplozja kombinatoryczna) (52)
  • Oddball Solution (osobliwe rozwiązanie) (53)

5. Katalog refaktoryzacji ukierunkowanych na wzorce (55)

  • Format opisu przekształceń (55)
  • Przykłady (56)
    • Obsługa XML (57)
    • HTML Parser (57)
    • Kalkulator ryzyka kredytu (58)
  • Punkt wyjścia (58)
  • Jak wykorzystać tę książkę do nauki (58)

6. Tworzenie obiektów (61)

  • Replace Constructors with Creation Methods (zastąp konstruktory metodami tworzącymi egzemplarze) (62)
    • Motywacja (62)
    • Mechanika (64)
    • Przykład (64)
    • Odmiany (69)
  • Move Creation Knowledge to Factory (przenieś operację tworzenia obiektów do fabryki) (71)
    • Motywacja (73)
    • Mechanika (75)
    • Przykład (75)
  • Encapsulate Classes with Factory (zahermetyzuj klasy, wprowadzając fabrykę) (81)
    • Motywacja (82)
    • Mechanika (82)
    • Przykład (83)
    • Odmiany (86)
  • Introduce Polymorphic Creation with Factory Method (wprowadź polimorficzne tworzenie obiektów - wzorzec Factory Method) (88)
    • Motywacja (89)
    • Mechanika (90)
    • Przykład (91)
  • Encapsulate Composite with Builder (użyj klasy Builder do hermetyzacji obiektów Composite) (95)
    • Mechanika (97)
    • Przykład (98)
    • Odmiany (108)
  • Inline Singleton (wstaw kod klasy Singleton w miejscu wywołania) (111)
    • Motywacja (111)
    • Mechanika (114)
    • Przykład (114)

7. Upraszczanie kodu (117)

  • Compose Method (zbuduj metodę z kilku elementów) (118)
    • Motywacja (118)
    • Mechanika (120)
    • Przykład (120)
  • Replace Conditional Logic with Strategy (zastąp wyrażenia warunkowe wzorcem Strategy) (123)
    • Motywacja (123)
    • Mechanika (125)
    • Przykład (126)
  • Move Embellishment to Decorator (przenieś upiększenia do klasy Decorator) (136)
    • Motywacja (136)
    • Mechanika (139)
    • Przykład (140)
  • Replace State-Altering Conditionals with State (zastąp wyrażenia warunkowe zmiany stanu klasami State) (154)
    • Motywacja (155)
    • Mechanika (156)
    • Przykład (156)
  • Replace Implicit Tree with Composite (zastąp niejawne drzewo strukturą Composite) (165)
    • Motywacja (165)
    • Mechanika (168)
    • Przykład (169)
  • Replace Conditional Dispatcher with Command (zastąp dyspozycje oparte na warunkach obiektami Command) (177)
    • Motywacja (177)
    • Mechanika (179)
    • Przykład (180)

8. Uogólnianie kodu (187)

  • Form Template Method (utwórz metodę szablonową) (188)
    • Motywacja (189)
    • Mechanika (190)
    • Przykład (190)
  • Extract Composite (wyodrębnij kompozyt) (195)
    • Motywacja (195)
    • Mechanika (196)
    • Przykład (197)
  • Replace One/Many Distinctions with Composite (zastąp zróżnicowanie jeden-wiele wzorcem Composite) (203)
    • Motywacja (203)
    • Mechanika (205)
    • Przykład (206)
  • Replace Hard-Coded Notifications with Observer (zastąp powiadomienia zapisane w kodzie wzorcem Observer) (214)
    • Motywacja (214)
    • Mechanika (216)
    • Przykład (217)
  • Unify Interfaces with Adapter (zunifikuj interfejsy, wprowadzając adapter) (223)
    • Motywacja (224)
    • Mechanika (224)
    • Przykład (226)
  • Extract Adapter (wyodrębnij adapter) (233)
    • Motywacja (234)
    • Mechanika (235)
    • Przykład (236)
    • Odmiany (242)
  • Replace Implicit Language with Interpreter (zastąp niejawny język interpreterem) (243)
    • Motywacja (244)
    • Mechanika (245)
    • Przykład (246)

9. Ochrona (257)

  • Replace Type Code with Class (zastąp kod typu klasą) (258)
    • Motywacja (258)
    • Mechanika (260)
    • Przykład (261)
  • Limit Instantiation with Singleton (ogranicz tworzenie egzemplarzy, stosując singleton) (267)
    • Motywacja (267)
    • Mechanika (268)
    • Przykład (269)
  • Introduce Null Object (wprowadź obiekt pusty) (271)
    • Motywacja (271)
    • Mechanika (273)
    • Przykład (274)

10. Akumulacja (279)

  • Move Accumulation to Collecting Parameter (przenieś operacje gromadzenia danych do parametru zbierającego) (280)
    • Motywacja (280)
    • Mechanika (281)
    • Przykład (282)
  • Move Accumulation to Visitor (przenieś operacje gromadzenia danych do inspektora) (286)
    • Motywacja (287)
    • Mechanika (290)
    • Przykład (294)

11. Narzędzia (301)

  • Chain Constructors (połącz konstruktory w łańcuch) (302)
    • Motywacja (303)
    • Mechanika (303)
    • Przykład (303)
  • Unify Interfaces (zunifikuj interfejsy) (305)
    • Motywacja (305)
    • Mechanika (306)
    • Przykład (306)
  • Extract Parameter (wyodrębnij parametr) (307)
    • Motywacja (307)
    • Mechanika (308)
    • Przykład (308)

Posłowie (311)

Bibliografia (313)

Skorowidz (315)

Koszty dostawy Cena nie zawiera ewentualnych kosztów płatności

Kraj wysyłki:

Opinie o produkcie (0)

do góry
Sklep jest w trybie podglądu
Pokaż pełną wersję strony
Sklep internetowy Shoper.pl