Zmień sposób myślenia o projektowaniu systemów informatycznych!Tworzenie skomplikowanych systemów informatycznych wymaga nowego podejścia. Dotychczas stosowane metody przestają się sprawdzać i generują mnóstwo problemów. Odpowiedzią na nie jest DomainDriven Design, w skrócie DDD. W tym podejściu szczególny nacisk kładzie się na tworzenie obiektów dokładnie odzwierciedlających zachowanie ich odpowiedników istniejących w rzeczywistości. Dzięki temu projektowanie systemu można powierzyć ekspertom z danej branży, którzy niekoniecznie muszą być specjalistami w dziedzinie projektowania architektury systemów informatycznych.
Ta książka jest niezwykłym przewodnikiem, który wprowadzi Cię w świat DDD. Sięgnij po nią i poznaj elementy składowe projektu sterowanego modelem oraz cykl życia obiektu dziedziny. W trakcie lektury kolejnych rozdziałów dowiesz się, jak odkrywać pojęcia niejawne, stosować wzorce analityczne oraz wiązać wzorce projektowe z modelem. Ponadto zobaczysz, w jaki sposób utrzymywać integralność modelu, a na sam koniec zaznajomisz się ze strukturami dużej skali oraz łączeniem strategii. Ta książka jest doskonałą lekturą dla wszystkich osób chcących zrozumieć DomainDriven Design oraz zastosować to podejście w praktyce!
Dzięki tej książce:
- zrozumiesz ideę DomainDriven Design
- nauczysz się tworzyć modele
- zadbasz o integralność stworzonego modelu
- uporządkujesz system za pomocą struktur dużej skali
- rozpoznasz momenty przełomowe w trakcie modelowania oraz na nie zareagujesz
- wykorzystasz DDD w Twoim projekcie
Rozdziały:
Przedmowa (15)
Wstęp (17)
Podziękowania (27)
CZĘŚĆ I ZASTOSOWANIE MODELU DZIEDZINY (29)
Rozdział 1. Przetwarzanie wiedzy (35)
- Elementy wydajnego modelowania (40)
- Przetwarzanie wiedzy (41)
- Ciągła nauka (44)
- Projekt bogaty w wiedzę (45)
- Modele dogłębne (48)
Rozdział 2. Komunikacja i użycie języka (51)
- Język wszechobecny (52)
- Modelowanie na głos (58)
- Jeden zespół, jeden język (60)
- Dokumenty i diagramy (63)
- Spisane dokumenty projektowe (65)
- Wykonywalna podstawa (68)
- Modele objaśniające (68)
Rozdział 3. Związanie modelu z implementacją (71)
- Projektowanie sterowane modelem (73)
- Paradygmaty modelowania i narzędzia wspierające (76)
- Projekt mechaniczny (79)
- Projekt sterowany modelem (80)
- Odkrywanie szkieletu - dlaczego modele są ważne dla użytkowników (83)
- Modelowanie praktyczne (86)
CZĘŚĆ II ELEMENTY SKŁADOWE PROJEKTU STEROWANEGO MODELEM (89)
Rozdział 4. Wyizolowanie dziedziny (93)
- Architektura warstwowa (94)
- Powiązanie warstw (99)
- Szkielety architektury (100)
- To w warstwie dziedziny żyje model (101)
- Antywzorzec inteligentnego interfejsu użytkownika (102)
- Inne rodzaje izolacji (106)
Rozdział 5. Wyrażenie modelu w programie (107)
- Asocjacje (109)
- ENCJE (zwane również obiektami referencyjnymi) (115)
- Modelowanie ENCJI (120)
- Projektowanie operacji na tożsamości (121)
- WARTOŚCI (125)
- Projektowanie OBIEKTÓW WARTOŚCI (128)
- Projektowanie asocjacji korzystających z WARTOŚCI (131)
- USŁUGI (132)
- USŁUGI a wyizolowana warstwa dziedziny (134)
- Ziarnistość (136)
- Dostęp do USŁUG (137)
- MODUŁY (zwane również PAKIETAMI) (138)
- MODUŁY zwinne (agile modules) (140)
- Pułapki tworzenia pakietów na podstawie wymogów infrastruktury (142)
- Paradygmaty modelowania (146)
- Dlaczego dominuje paradygmat obiektowy? (146)
- Nieobiekty w świecie obiektowym (149)
- Utrzymywanie PROJEKTU STEROWANEGO MODELEM w przypadku łączenia paradygmatów (150)
Rozdział 6. Cykl życia obiektu dziedziny (153)
- AGREGATY (155)
- FABRYKI (166)
- Wybór FABRYK oraz ich miejsc (169)
- Kiedy potrzebujesz jedynie konstruktora (171)
- Projektowanie interfejsu (173)
- Gdzie mieści się logika niezmienników? (174)
- FABRYKI ENCJI a FABRYKI WARTOŚCI (174)
- Odtwarzanie zachowanych obiektów (175)
- REPOZYTORIA (178)
- Odpytywanie REPOZYTORIUM (184)
- Kod klienta, w przeciwieństwie do programistów, ignoruje implementację REPOZYTORIUM (185)
- Implementacja REPOZYTORIUM (186)
- Praca ze szkieletami architektury (188)
- Relacje z FABRYKAMI (189)
- Projektowanie obiektów dla relacyjnych baz danych (190)
Rozdział 7. Użycie języka - przykład rozszerzony (195)
- Prezentacja systemu logistycznego dla ładunku (195)
- Izolowanie dziedziny - wprowadzenie aplikacji (198)
- Rozróżnianie ENCJI oraz WARTOŚCI (199)
- Role (rola) oraz inne atrybuty (201)
- Projektowanie asocjacji w dziedzinie logistyki morskiej (201)
- Granice AGREGATU (203)
- Wybór REPOZYTORIÓW (204)
- Przeglądanie scenariuszy (206)
- Przykładowa funkcjonalność aplikacji - zmiana miejsca przeznaczenia ładunku (206)
- Przykładowa funkcjonalność aplikacji - powtórzenie operacji (206)
- Tworzenie obiektów (207)
- FABRYKI oraz konstruktory klasy Cargo (207)
- Dodanie operacji obsługi (208)
- Przerwa na refaktoring - projekt alternatywny AGREGATU Cargo (209)
- MODUŁY w modelu logistyki morskiej (213)
- Nowa funkcjonalność - sprawdzanie przydziału (215)
- Łączenie dwóch systemów (216)
- Wzbogacanie modelu - segmentacja biznesu (217)
- Poprawa wydajności (219)
- Ostateczna wersja (220)
CZĘŚĆ III REFAKTORYZACJA KU GŁĘBSZEMU ZROZUMIENIU (223)
Rozdział 8. Moment przełomowy (229)
- Historia pewnego przełomu (230)
- Przyzwoity model, lecz wciąż... (230)
- Moment przełomowy (231)
- Model pogłębiony (233)
- Otrzeźwiająca decyzja (236)
- Zapłata (237)
- Możliwości (237)
- Koncentracja na podstawach (237)
- Epilog - potok nowych spostrzeżeń (238)
Rozdział 9. Odkrywanie pojęć niejawnych (241)
- Wyciąganie pojęć (242)
- Nasłuchiwanie języka (242)
- Analiza dziwnej implementacji (247)
- Rozmyślanie nad sprzecznościami (252)
- Czytanie książki (253)
- Wielokrotne powtarzanie prób (255)
- W jaki sposób zamodelować mniej oczywiste pojęcia (256)
- Procesy jako obiekty dziedziny (259)
- SPECYFIKACJA (261)
- Zastosowanie SPECYFIKACJI w implementacji (264)
Rozdział 10. Projekt elastyczny (279)
- INTERFEJSY UJAWNIAJĄCE ZAMIAR (283)
- FUNKCJE BEZ EFEKTÓW UBOCZNYCH (287)
- ASERCJE (293)
- Teraz widzimy lepiej (296)
- ZARYSY KONCEPCYJNE (298)
- Nieprzewidziana zmiana (301)
- KLASY SAMODZIELNE (304)
- ZAMKNIĘCIE OPERACJI (307)
- Projektowanie deklaratywne (310)
- Języki właściwe dziedzinie (311)
- Deklaratywny styl projektowania (312)
- Rozszerzenie SPECYFIKACJI w stylu deklaratywnym (313)
- Subsumpcja (318)
- Kierunki ataku (321)
- Definiowanie poddziedzin (321)
- W miarę możliwości polegaj na ustalonym formalizmie (322)
Rozdział 11. Stosowanie wzorców analitycznych (333)
Rozdział 12. Powiązanie wzorców projektowych z modelem (349)
- STRATEGIA (zwana również POLITYKĄ) (351)
- KOMPOZYT (356)
- Dlaczego nie wzorzec PYŁKU (FLYWEIGHT)? (361)
Rozdział 13. Refaktoryzacja ku głębszemu zrozumieniu (363)
- Początek (364)
- Zespoły poszukiwawcze (364)
- Wcześniejsze odkrycia (365)
- Projekt dla programistów (366)
- Wyczucie czasu (367)
- Kryzys jako źródło możliwości (368)
CZĘŚĆ IV PROJEKT STRATEGICZNY (369)
Rozdział 14. Utrzymywanie integralności modelu (373)
- KONTEKST ZWIĄZANY (377)
- Rozpoznawanie odprysków pojęciowych w KONTEKŚCIE ZWIĄZANYM (381)
- CIĄGŁA INTEGRACJA (383)
- MAPA KONTEKSTÓW (386)
- Testowanie na granicach KONTEKSTU (393)
- Organizacja oraz dokumentacja MAP KONTEKSTÓW (394)
- Relacje pomiędzy KONTEKSTAMI ZWIĄZANYMI (395)
- JĄDRO WSPÓŁDZIELONE (396)
- ZESPOŁY PROGRAMISTYCZNE KLIENTA - DOSTAWCY (398)
- KONFORMISTA (403)
- WARSTWA ZAPOBIEGAJĄCA USZKODZENIU (406)
- Projektowanie interfejsu WARSTWY ZAPOBIEGAJĄCEJ USZKODZENIU (408)
- Implementacja WARSTWY ZAPOBIEGAJĄCEJ USZKODZENIU (408)
- Opowieść ku przestrodze (412)
- ODDZIELNE DROGI (414)
- USŁUGA OTWARTEGO GOSPODARZA (417)
- JĘZYK OPUBLIKOWANY (419)
- Unifikacja słonia (422)
- Wybór strategii kontekstu modelu (426)
- Decyzja zespołowa lub wyższa (426)
- Stawianie siebie w kontekście (427)
- Przekształcanie granic (427)
- Akceptacja tego, czego nie możemy zmienić - wyznaczanie zewnętrznych systemów (428)
- Relacje z systemami zewnętrznymi (429)
- System w projektowaniu (430)
- Dostosowanie do specjalnych potrzeb przy użyciu odrębnych modeli (431)
- Wdrożenie (432)
- Kompromis (433)
- Kiedy projekt już trwa (433)
- Transformacje (434)
- Łączenie KONTEKSTÓW - ODDZIELNE DROGI > JĄDRO WSPÓŁDZIELONE (434)
- Łączenie KONTEKSTÓW - JĄDRO WSPÓŁDZIELONE > CIĄGŁA INTEGRACJA (437)
- Wygaszanie starego systemu (438)
- USŁUGA OTWARTEGO GOSPODARZA > JĘZYK OPUBLIKOWANY (440)
Rozdział 15. Destylacja (443)
- DZIEDZINA GŁÓWNA (446)
- Wybór RDZENIA dziedziny (449)
- Kto wykonuje prace? (449)
- Zwiększanie destylacji (451)
- PODDZIEDZINY OGÓLNE (452)
- Ogólny nie oznacza możliwy do ponownego wykorzystania (459)
- Zarządzanie ryzykiem projektowym (459)
- OPIS WIZJI DZIEDZINY (461)
- RDZEŃ WYRÓŻNIONY (464)
- Dokument destylacji (465)
- RDZEŃ oznaczony (466)
- Dokument destylacji jako narzędzie procesowe (467)
- SPÓJNE MECHANIZMY (469)
- OGÓLNE PODDZIEDZINY a SPÓJNE MECHANIZMY (471)
- Kiedy MECHANIZM jest częścią DZIEDZINY GŁÓWNEJ (472)
- Destylacja do stylu deklaratywnego (473)
- RDZEŃ ODDZIELONY (474)
- Koszt utworzenia RDZENIA ODDZIELONEGO (475)
- Rozwijanie decyzji zespołowych (476)
- RDZEŃ ABSTRAKCYJNY (481)
- Głęboka destylacja modelu (482)
- Wybór celów refaktoryzacji (483)
Rozdział 16. Struktury dużej skali (485)
- PORZĄDEK EWOLUCYJNY (490)
- METAFORA SYSTEMU (493)
- Dlaczego nie potrzebujemy metafory "naiwnej" (495)
- WARSTWY ODPOWIEDZIALNOŚCI (496)
- W jaki sposób struktura wpływa na bieżący projekt? (502)
- Wybór odpowiednich warstw (505)
- POZIOM WIEDZY (511)
- SZKIELET KOMPONENTÓW DOŁĄCZANYCH (521)
- Jak ograniczająca powinna być struktura? (526)
- Refaktoryzacja ku lepiej dopasowanej strukturze (527)
- Minimalizm (528)
- Komunikacja oraz samodyscyplina (528)
- Restrukturyzacja przyczynia się do projektu elastycznego (529)
- Destylacja zmniejsza obciążenie (530)
Rozdział 17. Łączenie strategii (531)
- Łączenie struktur dużej skali z KONTEKSTAMI ZWIĄZANYMI (531)
- Łączenie struktur dużej skali oraz destylacji (534)
- Najpierw oszacowanie (536)
- Kto określa strategię? (536)
- Powstawanie struktury w trakcie tworzenia aplikacji (537)
- Zespół architektoniczny skoncentrowany na kliencie (538)
- Sześć podstawowych kryteriów dotyczących podejmowania strategicznych decyzji projektowych (538)
- To samo dotyczy szkieletów technicznych (541)
- Wystrzegaj się planu głównego (542)
ZAKOŃCZENIE (545)
Dodatek (553)
Wykorzystanie szablonów z tej książki (553)
Słownik (559)
Bibliografia (565)
Prawa do zdjęć (567)
Skorowidz (569)
Najniższa cena z 30 dni przed obniżką 74,25zł
|