E-book details

Architektura oprogramowania. Rusz głową! Przewodnik po myśleniu architektonicznym

Architektura oprogramowania. Rusz głową! Przewodnik po myśleniu architektonicznym

Raju Gandhi, Mark Richards, Neal Ford

Ebook

Jeśli zależy Ci na sukcesie systemu, który budujesz, musisz zadbać o jego architekturę! Dobre praktyki architektoniczne poprawiają jakość oprogramowania, które skutecznie dostosowuje się do wymagań, nawet podczas bezustannych zmian środowisk biznesowych i technicznych. Jednak architektura oprogramowania jest trudnym zagadnieniem, więc Twój mózg może się starać Cię przekonać, że się jej nie nauczysz. Zatem pora go oszukać!

Ta fantastyczna książka, pełna zabawnej narracji i praktycznych przykładów, nauczy Cię myślenia architektonicznego. Została ona, podobnie jak inne pozycje z serii Rusz głową!, przygotowana na bazie odkryć nauk poznawczych i neurofizjologii. Właśnie dzięki temu zaangażujesz swój mózg, użyjesz wielu zmysłów i niepostrzeżenie zrozumiesz dwa prawa architektury oprogramowania i cztery opisujące ją wymiary. Mistrzowsko opanujesz cechy i style architektury, a także nauczysz się określać logiczne komponenty systemów. Efekt? Zdobędziesz świetną orientację w świecie architektury oprogramowania. A wszystkiego nauczysz się, rozwiązując łamigłówki, wykonując praktyczne ćwiczenia, tworząc architektury ? i wybuchając głośnym śmiechem!

W książce:

  • zasady architektury oprogramowania i jej komponenty
  • filozofia różnych stylów architektury
  • architektura warstwowa, modułowa, mikrojądra i mikrousługi
  • architektura sterowana zdarzeniami
  • ...i mnóstwo radości z tworzenia pięknej architektury!

Autorzy w mistrzowski sposób przekształcają złożone pojęcia w łatwo przyswajalne informacje!

James Erler, inżynier oprogramowania wbudowanego Medtronic

Wprowadzenie
  • Dla kogo jest ta książka?
  • Wiemy, co myślisz
  • Wiemy, co myśli Twój mózg
  • Metapoznanie - myślenie o myśleniu
  • Oto co MY zrobiliśmy
  • To, co TY możesz zrobić, aby zmusić swój mózg do posłuszeństwa
  • Przeczytaj to
  • Rozdziały "zrób to sam"
  • Zespół recenzentów technicznych
  • Wspólne podziękowania
  • Indywidualne podziękowania

1. Architektura oprogramowania bez tajemnic. Zaczynajmy!

  • Budowanie zrozumienia architektury oprogramowania
  • Plan budynku i architektura oprogramowania
  • Wymiary architektury oprogramowania
  • Rozgryzanie wymiarów
  • Pierwszy wymiar: cechy architektury
  • Drugi wymiar: decyzje architektoniczne
  • Trzeci wymiar: komponenty logiczne
  • Czwarty wymiar: style architektury
  • Z punktu widzenia projektu
  • Z punktu widzenia architektury
  • Spektrum pomiędzy architekturą a projektem
  • W którym miejscu spektrum wypada Twoja decyzja?
  • Strategiczna czy taktyczna
  • Wysoki czy niski nakład pracy
  • Kompromisy znaczące i mniej znaczące
  • Łączenie wszystkiego w całość
  • Udało Ci się!

2. Cechy architektury. Znaj swoje właściwości

  • Cieszmy się razem!
  • Rozmowy w boksie
  • Czym są cechy architektury?
  • Definiowanie cech architektury
  • Cechy są aspektami projektu niezwiązanymi z dziedziną
  • Cechy mają wpływ na strukturę architektury
  • Ograniczaj cechy, by zapobiec nadmiernemu projektowaniu
  • Rozważ możliwości jawne i niejawne
  • Międzynarodowe Zoo MożliwOŚCI
  • Cechy architektury dotyczące procesu
  • Strukturalne cechy architektury
  • Operacyjne cechy architektury
  • Przekrojowe cechy architektury
  • Wyodrębnianie cech architektury z dziedziny problemu
  • Wyodrębnianie cech architektury ze świadomości środowiskowej
  • Określanie cech architektury na podstawie holistycznej wiedzy o dziedzinie
  • Złożone cechy architektury
  • Priorytety mają swój kontekst
  • Zagubiony w przekładzie
  • Cechy architektury i komponenty logiczne
  • Równoważenie kwestii związanych z dziedziną i cech architektury
  • Ograniczanie cech architektury

3. Dwa prawa architektury oprogramowania. Kompromisy. nic, tylko kompromisy!

  • Wszystko zaczyna się od aplikacji ze sneakersami
  • Co już wiemy?
  • Komunikacja z usługami serwerowymi
  • Analiza kompromisów
  • Analiza kompromisów: wersja z kolejkami
  • Analiza kompromisów: wersja z tematami
  • Pierwsze prawo architektury oprogramowania
  • Zawsze wszystko sprowadza się do kompromisów
  • Podejmowanie decyzji architektonicznych
  • Co jeszcze sprawia, że decyzja ma charakter architektoniczny?
  • Drugie prawo architektury oprogramowania
  • Dokumenty ADR - zapisy decyzji architektonicznych
  • Pisanie ADR: wybór odpowiedniego tytułu
  • Pisanie dokumentów ADR: jaki masz status?
  • Pisanie dokumentów ADR: określanie kontekstu
  • Pisanie dokumentów ADR: przedstawienie decyzji
  • Pisanie dokumentów ADR: rozważenie konsekwencji
  • Pisanie dokumentów ADR: zapewnianie nadzoru
  • Pisanie dokumentów ADR: uwagi końcowe
  • Korzyści ze stosowania dokumentów ADR
  • Sneakersowy Sezam okazał się sukcesem

4. Komponenty logiczne. Elementy konstrukcyjne

  • Ponowna prezentacja komponentów logicznych
  • Nazwij ten komponent
  • Aukcje na przygody online
  • Architektura logiczna a fizyczna
  • Tworzenie architektury logicznej
  • Krok 1. Określenie początkowych podstawowych komponentów
  • Podejście bazujące na przepływie pracy
  • Podejście bazujące na aktorach i akcjach
  • Pułapka encji
  • Krok 2. Przypisanie wymagań do komponentów
  • Krok 3. Analiza ról i odpowiedzialności
  • Dbanie o spójność
  • Krok 4. Analiza cech
  • Komponent Rejestracja oferty
  • Powiązania komponentów
  • Powiązania doprowadzające
  • Powiązania odprowadzające
  • Pomiar powiązań
  • System o ścisłych powiązaniach
  • Stosowanie prawa Demeter
  • Akt równoważenia
  • Kilka ostatnich słów o komponentach
  • Nazwij ten komponent

5. Style architektury. Kategoryzacja i filozofie

  • Istnieje wiele stylów architektury
  • Świat stylów architektury
  • Podział: techniczny kontra dziedzinowy
  • Model wdrożenia: monolityczny kontra rozproszony
  • Monolityczne modele wdrażania: zalety
  • Monolityczne modele wdrażania: wady
  • Rozproszone modele wdrażania: zalety
  • Rozproszone modele wdrażania: wady
  • A oto i podsumowanie!

6. Architektura warstwowa. Separując zagadnienia

  • Naan Mniaam!: zbieranie wymagań
  • Wzorce projektowe - przypomnienie
  • Warstwy wzorca MVC
  • Warstwa po warstwie
  • Przekształcanie warstw na kod
  • Dziedziny, komponenty i warstwy
  • Zalety architektury warstwowej
  • Warstwy w realu: architektury fizyczne
  • Kompromisy architektury fizycznej
  • Ostatnie ostrzeżenie dotyczące zmian dziedziny
  • Supermoce architektury warstwowej
  • Kryptonit architektury warstwowej
  • Architektura warstwowa w ocenach
  • Podsumowanie

7. Modularne monolity. Bazujące na dziedzinie

  • Modularny monolit?
  • Dziedzinowe problemy zmiany
  • Dlaczego modularne monolity?
  • Pokażcie mi kod!
  • Dbanie o modularność modułów
  • Rozszerzanie modularyzacji na bazy danych
  • Zwracaj uwagę na złączenia
  • Supermoce modularnych monolitów
  • Kryptonit modularnych monolitów
  • Modularny monolit w ocenach
  • Naan Mniaam! dostarcza pizze!

8. Architektura mikrojądra. Konstruowanie dostosowań

  • Korzyści zapewniane przez RecyklKings
  • Dwie części architektury mikrojądra
  • Spektrum "mikrojądrowości"
  • Jądro usługi oceny urządzeń
  • Wtyczki hermetyzowane kontra wtyczki rozproszone
  • Komunikacja z wtyczkami
  • Kontrakty wtyczek
  • RecyklKings stawiają na ekologię
  • Supermoce mikrojądra
  • Kryptonit mikrojądra
  • Mikrojądro w ocenach
  • Podsumowanie

9. Zrób to sam. Aplikacja podróżnicza LuzTravel

  • Ułatwianie podróżowania
  • Przepływ pracy użytkownika LuzTravel
  • Planowanie architektury
  • Przewodnik architekta
  • Krok 1. Określenie cech architektury
  • Krok 2. Identyfikacja komponentów logicznych
  • Krok 3. Wybór stylu architektury
  • Krok 4. Dokumentowanie podjętych decyzji
  • Krok 5. Rysowanie diagramu architektury
  • Nie ma dobrych (ani złych) odpowiedzi

10. Architektura mikrousług. Kawałek po kawałku

  • Jak się dzisiaj czujemy?
  • Czym jest mikrousługa?
  • To są moje dane, nie Twoje
  • Jak małe jest "mikro"?
  • Siły dezintegrujące
  • Dlaczego mielibyśmy zmniejszać mikrousługi?
  • Siły integrujące
  • Dlaczego mielibyśmy powiększać mikrousługi?
  • Wszystko sprowadza się do równowagi
  • Współdzielenie funkcjonalności
  • Wielokrotne użycie kodu dzięki zastosowaniu współdzielonej usługi
  • Wielokrotne użycie kodu dzięki zastosowaniu współdzielonej biblioteki
  • Zarządzanie przepływami pracy
  • Orkiestracja: dyrygowanie mikrousługami
  • Choreografia: zatańczmy
  • Supermoce architektury mikrousług
  • Kryptonit architektury mikrousług
  • Mikrousługi w ocenach
  • Podsumowanie

11. Architektura sterowana zdarzeniami. Asynchroniczne przygody

  • Zbyt wolno
  • Przyspieszanie obsługi
  • Der Nile rozwija się szybciej niż kiedykolwiek
  • Czym jest zdarzenie?
  • Zdarzenia a komunikaty
  • Zdarzenia inicjujące i pochodne
  • Czy ktokolwiek mnie słucha?
  • Komunikacja asynchroniczna
  • Odpal i zapomnij
  • Asynchroniczna rządzi
  • Synchroniczna rządzi
  • Topologie baz danych
  • Monolityczna baza danych
  • Bazy danych podzielone w oparciu o dziedzinę
  • Po bazie na usługę
  • Architektura EDA kontra mikrousługi
  • Hybrydy: mikrousługi sterowane zdarzeniami
  • Supermoce architektury sterowanej zdarzeniami
  • Kryptonit architektury sterowanej zdarzeniami
  • Architektura sterowana zdarzeniami w ocenach
  • Scalenie tego wszystkiego w całość
  • Podsumowanie

12. Zrób to sam. Sprawdzanie swojej wiedzy

  • Witamy w Testoramie
  • Przebieg realizacji testów
  • Planowanie architektury
  • Przewodnik architekta
  • Krok 1. Określenie cech architektury
  • Krok 2. Identyfikacja komponentów logicznych
  • Krok 3. Wybór stylu architektury
  • Krok 4. Dokumentowanie podjętych decyzji
  • Krok 5. Narysowanie diagramu architektury
  • Nie ma dobrych (ani złych) odpowiedzi

Dodatek A. Pozostałości. Sześć najważniejszych zagadnień, których nie opisaliśmy

  • Nr 1. Architekt piszący kod
  • Nr 2. Oczekiwania względem architektów
  • Nr 3. Miękkie umiejętności architektów
  • Nr 4. Techniki tworzenia diagramów
  • Nr 5. Głębokość a szerokość wiedzy
  • Nr 6. Praktykowanie architektury w formie kata
  • Skorowidz
  • Title: Architektura oprogramowania. Rusz głową! Przewodnik po myśleniu architektonicznym
  • Author: Raju Gandhi, Mark Richards, Neal Ford
  • Original title: Head First Software Architecture: A Learner's Guide to Architectural Thinking
  • Translation: Piotr Rajca
  • ISBN: 978-83-289-1569-5, 9788328915695
  • Date of issue: 2025-03-25
  • Format: Ebook
  • Item ID: aropru
  • Publisher: Helion