Szczegóły ebooka

Podstawy architektury oprogramowania dla inżynierów. Wydanie II

Podstawy architektury oprogramowania dla inżynierów. Wydanie II

Mark Richards, Neal Ford

Ładowanie...
EBOOK

Architektura oprogramowania to dziś nie tylko kwestia doświadczenia czy intuicji - staje się pełnoprawną dziedziną inżynieryjną, która zakłada powtarzalność, rygor i skuteczną analizę.

Ta książka pokazuje, jak projektować systemy w sposób świadomy, oparty na sprawdzonych zasadach i analizie kompromisów. Zawiera rozdziały poświęcone najnowszym spostrzeżeniom związanym z tą dziedziną. Obejmuje zarówno klasyczne tematy (na przykład wzorce architektoniczne, wyodrębnianie komponentów, dokumentowanie architektury), jak i nowe zagadnienia, takie jak architektura ewolucyjna, wpływ AI na projektowanie systemów czy organizacja zespołów developerskich. Dokładnie wyjaśnia zasady, które mogą być zastosowane do wszystkich zestawów rozwiązań technologicznych. W książce duży nacisk położono na analizę kompromisów, która pozwala na obiektywną ocenę rozwiązań technologicznych. Architektura oprogramowania została tu ujęta jako dziedzina inżynieryjna - z całym dorobkiem ostatniej dekady.

Najważniejsze zagadnienia:

  • style i wzorce architektoniczne
  • kluczowe składniki i cechy nowoczesnych projektów
  • umiejętności miękkie pomocne w pracy architekta
  • nowoczesne praktyki inżynierii oprogramowania
  • architektura jako dziedzina inżynieryjna

W książce znajdziesz niezbędne źródło wiedzy pozwalające zgłębić nowoczesną architekturę oprogramowania z perspektywy współczesnych realiów.

Raju Gandhi, autor Head First Git i współautor Architektury oprogramowania. Rusz głową!

Przedmowa

1. Wprowadzenie

  • Zdefiniowanie architektury oprogramowania
  • Prawa architektury oprogramowania
  • Oczekiwania wobec architekta
    • Podejmowanie decyzji architektonicznych
    • Ciągłe analizowanie architektury
    • Śledzenie najnowszych trendów
    • Zapewnienie zgodności z decyzjami
    • Różnorodne technologie
    • Wiedza z zakresu biznesu
    • Umiejętności interpersonalne
    • Znajomość i umiejętność stosowania polityki firmy
  • Plan książki

Część I. Podstawy

  • 2. Myślenie architektoniczne
    • Architektura a projekt
      • Porównanie decyzji strategicznych z taktycznymi
      • Poziom podejmowanych działań
      • Znaczenie kompromisów
    • Rozpiętość techniczna
      • Zasada 20 minut
      • Opracowanie osobistego radaru
    • Analiza kompromisów
    • Czynniki biznesowe
    • Zachowanie równowagi między architekturą a kodowaniem
    • Myślenie architektoniczne to coś więcej
  • 3. Modułowość
    • Modułowość i ziarnistość
    • Definiowanie modułowości
    • Pomiar modułowości
      • Spójność
      • Sprzężenie
      • Podstawowe wskaźniki
      • Odległość od ciągu głównego
      • Splątanie
    • Od modułów do składników
  • 4. Definiowanie parametrów architektury
    • Parametry architektury i projekt systemu
    • (Niepełna) lista parametrów architektury
      • Operacyjne parametry architektury
      • Strukturalne parametry architektury
      • Parametry dostawcy technologii chmury
      • Przekrojowe parametry architektury
    • Kompromisy i najmniej niekorzystna architektura
  • 5. Identyfikacja parametrów architektury
    • Określanie parametrów architektury na podstawie zagadnień domenowych
    • Złożone parametry architektury
    • Określanie parametrów architektury
      • Wykonywanie ćwiczeń kata
    • Kata: Krzemowe Kanapki
      • Parametry sprecyzowane
      • Parametry dorozumiane
    • Ograniczanie parametrów architektury i określanie ich priorytetu
  • 6. Pomiar parametrów architektury i zarządzanie nimi
    • Pomiar parametrów architektury
      • Pomiary operacyjne
      • Pomiary strukturalne
      • Pomiary procesowe
    • Funkcje zarządzania i dopasowania
      • Zarządzanie parametrami architektury
      • Funkcje dopasowania
  • 7. Zakres parametrów architektury
    • Kwanty architektury i ziarnistość
      • Liczba mnoga technicznych terminów pochodzenia łacińskiego
      • Ograniczony kontekst w projektowaniu zorientowanym na domenę
    • Komunikacja synchroniczna
    • Wpływ określania zakresu
      • Zakres i styl architektoniczny
      • Kata: W Stronę Zieleni
    • Określanie zakresu i technologia chmury
  • 8. Myślenie w oparciu o składniki
    • Definicja składników logicznych
    • Porównanie architektury logicznej z fizyczną
    • Tworzenie architektury logicznej
      • Identyfikowanie głównych składników
      • Przypisywanie historyjek użytkownika do składników
      • Analiza ról i zakresu odpowiedzialności
      • Analiza parametrów architektury
      • Restrukturyzacja składników
    • Sprzężenie składników
      • Sprzężenie statyczne
      • Sprzężenie przejściowe
      • Prawo Demeter
    • Studium przypadku: "Po raz pierwszy, po raz drugi, sprzedane!" - odkrywanie składników

Część II. Style architektoniczne

  • 9. Podstawy
    • Porównanie stylów ze wzorcami
      • Skąd się biorą style architektoniczne?
    • Podstawowe wzorce
      • Bryła błotna
      • Architektura unitarna
      • Klient-serwer
    • Podział architektury
      • Kata: Krzemowe Kanapki - podział
    • Architektury monolityczne a rozproszone
      • Mit 1. Sieć jest niezawodna
      • Mit 2. Opóźnienie jest zerowe
      • Mit 3. Przepustowość jest nieskończona
      • Mit 4. Sieć jest bezpieczna
      • Mit 5. Topologia nigdy się nie zmienia
      • Mit 6. Jest tylko jeden administrator
      • Mit 7. Koszt transportu jest zerowy
      • Mit 8. Sieć jest homogeniczna
      • Inne mity
    • Topologie zespołów i architektura
    • Zaznajomienie się z konkretnymi stylami
  • 10. Styl architektury warstwowej
    • Topologia
    • Szczegóły dotyczące stylu
      • Warstwy izolacji
      • Dodawanie warstw
    • Topologie danych
    • Uwagi dotyczące technologii chmury
    • Typowe ryzyka
    • Nadzór
    • Uwagi dotyczące topologii zespołów
    • Parametry stylu
      • Kiedy stosować?
      • Kiedy nie stosować?
    • Przykłady i przypadki użycia
  • 11. Styl architektoniczny monolitu modułowego
    • Topologia
    • Szczegóły stylu
      • Struktura monolityczna
      • Struktura modułowa
      • Komunikacja między modułami
    • Topologie danych
    • Kwestie dotyczące technologii chmury
    • Typowe zagrożenia
    • Nadzór
    • Kwestie dotyczące topologii zespołów
    • Parametry stylu
      • Kiedy stosować?
      • Kiedy nie stosować?
    • Przykłady i przypadki użycia
  • 12. Styl architektury potokowej
    • Topologia
    • Szczegóły dotyczące stylu
      • Filtry
      • Potoki
    • Topologie danych
    • Uwagi dotyczące technologii chmury
    • Typowe ryzyka
    • Nadzór
    • Uwagi dotyczące topologii zespołów
    • Parametry stylu
      • Kiedy stosować?
      • Kiedy nie stosować?
    • Przykłady i przypadki użycia
  • 13. Styl architektury mikrojądra
    • Topologia
    • Szczegóły dotyczące stylu
      • Podstawowy system
      • Dołączane składniki
      • Spektrum "mikrojądrowości"
      • Rejestr
      • Kontrakty
    • Topologie danych
    • Uwagi dotyczące technologii chmury
    • Typowe ryzyka
      • Zmienny podstawowy system
      • Zależności między wtyczkami
    • Nadzór
    • Uwagi dotyczące topologii zespołów
    • Ocena parametrów architektury
    • Przykłady i przypadki użycia
  • 14. Styl architektury bazującej na usługach
    • Topologia
    • Szczegóły dotyczące stylu
      • Projekt usług i szczegółowość
      • Opcje interfejsu użytkownika
      • Opcje bramy interfejsów API
    • Topologie danych
    • Uwagi dotyczące technologii chmury
    • Typowe ryzyka
    • Nadzór
    • Uwagi dotyczące topologii zespołów
    • Parametry architektury
    • Przykłady i przypadki użycia
  • 15. Styl architektury sterowanej zdarzeniami
    • Topologia
    • Szczegóły dotyczące stylu
      • Porównanie zdarzeń z komunikatami
      • Zdarzenia pochodne
      • Generowanie zdarzeń rozszerzalnych
      • Komunikacja asynchroniczna
      • Możliwości rozgłaszania
      • Ładunek zdarzenia
      • Antywzorzec roju komarów
      • Obsługa błędów
      • Zapobieganie utracie danych
      • Żądanie-odpowiedź
      • Architektura sterowana zdarzeniami z mediacją
    • Topologie danych
      • Topologia monolitycznej bazy danych
      • Topologia domenowej bazy danych
      • Topologia specjalnej bazy danych
    • Uwagi dotyczące technologii chmury
    • Typowe ryzyka
    • Nadzór
    • Uwagi dotyczące topologii zespołów
    • Parametry stylu
      • Wybór między modelem opartym na żądaniach a modelem opartym na zdarzeniach
    • Przykłady i przypadki użycia
  • 16. Styl architektury przestrzennej
    • Topologia
    • Szczegóły dotyczące stylu
      • Jednostka przetwarzająca
      • Zwirtualizowane oprogramowanie pośredniczące
      • Klaster przesyłania komunikatów
      • Klaster danych
      • Klaster przetwarzania
      • Menedżer wdrażania
      • Pompy danych
      • Jednostki zapisu danych
      • Jednostki odczytu danych
    • Topologie danych
    • Uwagi dotyczące technologii chmury
    • Typowe ryzyka
      • Częste odczyty bazy danych
      • Synchronizacja danych i ich spójność
      • Duże ilości danych
      • Kolizje danych
    • Nadzór
    • Uwagi dotyczące topologii zespołów
    • Parametry stylu
    • Przykłady i przypadki użycia
      • System sprzedaży biletów na koncerty
      • System aukcji internetowych
  • 17. Architektura zorientowana na usługi sterowana orkiestracją
    • Topologia
    • Szczegóły dotyczące stylu
      • Taksonomia
      • Wykorzystuj ponownie. i sprzęgaj
    • Topologie danych
    • Uwagi dotyczące technologii chmury
    • Typowe ryzyka
    • Nadzór
    • Uwagi dotyczące topologii zespołów
    • Parametry stylu
    • Przykłady i przypadki użycia
  • 18. Architektura mikrousług
    • Topologia
    • Szczegóły dotyczące stylu
      • Ograniczony kontekst
      • Poziom szczegółowości
      • Izolacja danych
      • Warstwa API
      • Wieloużywalność operacyjna
      • Interfejsy
      • Komunikacja
      • Choreografia i orkiestracja
      • Transakcje i sagi
    • Topologie danych
    • Uwagi dotyczące technologii chmury
    • Typowe ryzyka
    • Nadzór
    • Uwagi dotyczące topologii zespołów
    • Parametry stylu
    • Przykłady i przypadki użycia
  • 19. Wybór odpowiedniego stylu architektonicznego
    • Zmiana "mody" w architekturze
    • Kryteria decyzyjne
    • Studium przypadku architektury monolitycznej: Krzemowe Kanapki
      • Monolit modułowy
      • Mikrojądro
    • Studium przypadku architektury rozproszonej: "Po raz pierwszy, po raz drugi, sprzedane!"
  • 20. Wzorce architektoniczne
    • Ponowne użycie
      • Rozdzielenie sprzężenia domenowego i operacyjnego
    • Komunikacja
      • Porównanie orkiestracji i choreografii
    • Wzorzec CQRS
    • Infrastruktura
      • Wzorzec broker-domena

Część III. Techniki i umiejętności miękkie

  • 21. Decyzje architektoniczne
    • Antywzorce w decyzjach architektonicznych
      • Antywzorzec Obrona Swojego Stanowiska
      • Antywzorzec Dzień Świstaka
      • Antywzorzec Architektura Sterowana Wiadomościami E-mail
    • Istotność architektoniczna
    • Rejestr decyzji architektonicznych
      • Podstawowa struktura
      • Przykład
      • Przechowywanie dokumentów ADR
      • ADR jako dokumentacja
      • Wykorzystanie dokumentów ADR do standaryzacji
      • Wykorzystanie dokumentów ADR w istniejących systemach
      • Wykorzystanie generatywnej sztucznej inteligencji i dużych modeli językowych przy podejmowaniu decyzji architektonicznych
  • 22. Analiza ryzyka w architekturze
    • Macierz ryzyka
    • Ocena ryzyka
    • Risk storming
      • Pierwsza faza: identyfikacja
      • Druga faza: konsensus
      • Trzecia faza: ograniczanie
    • Analizy ryzyka historyjek użytkownika
    • Przypadek użycia risk stormingu
      • Dostępność
      • Elastyczność
      • Bezpieczeństwo
    • Podsumowanie
  • 23. Tworzenie diagramów architektury
    • Diagramy
      • Narzędzia
      • Standardy tworzenia diagramów: UML, C4 i ArchiMate
      • Wskazówki dotyczące sporządzania diagramów
    • Podsumowanie
  • 24. Zwiększanie efektywności zespołów
    • Współpraca
    • Ograniczenia i granice
    • Osobowości architektów
      • Architekt będący maniakiem kontroli
      • Architekt fotelowy
      • Skuteczny architekt
    • Jaki poziom zaangażowania?
    • Znaki ostrzegawcze w zespole
      • Strata procesowa
      • Pluralistyczna ignorancja
    • Wykorzystanie list kontrolnych
      • Lista kontrolna gotowości kodu
      • Lista kontrolna testów jednostkowych i funkcjonalnych
      • Lista kontrolna wydania oprogramowania
    • Udzielanie wskazówek
    • Podsumowanie
  • 25. Umiejętności negocjacyjne i zdolności przywódcze
    • Negocjacje i koordynowanie
      • Negocjacje z interesariuszami biznesowymi
      • Negocjacje z innymi architektami
      • Negocjacje z programistami
    • Architekt oprogramowania jako lider
      • Cztery aspekty architektury
      • Bądź pragmatyczny, ale zarazem wizjonerski
      • Przewodzenie zespołom poprzez dawanie przykładu
    • Integracja z zespołem projektowym
    • Podsumowanie
  • 26. Punkty przecięcia architektur
    • Architektura i implementacja
      • Zagadnienia operacyjne
      • Integralność strukturalna
      • Ograniczenia architektoniczne
    • Architektura i infrastruktura
    • Architektura i topologie danych
      • Topologia bazy danych
      • Parametry architektury
      • Struktura danych
      • Priorytet odczytu/zapisu
    • Architektura i praktyki inżynierii
    • Architektura i topologie zespołów
    • Architektura i integracja systemów
    • Architektura i przedsiębiorstwo
    • Architektura i środowisko biznesowe
    • Architektura i generatywna sztuczna inteligencja
      • Integracja generatywnej sztucznej inteligencji z architekturą
      • Generatywna sztuczna inteligencja jako asystent architekta
    • Podsumowanie
  • 27. Prawa architektury oprogramowania - aktualizacja
    • Pierwsze prawo: w architekturze oprogramowania wszystko jest kompromisem
      • Porównanie wspólnej biblioteki z usługą współużytkowaną
      • Porównanie synchronicznego i asynchronicznego przesyłania komunikatów
      • Pierwszy wniosek: pominięte kompromisy
      • Drugi wniosek: nie da się zrobić tego tylko raz
    • Drugie prawo: dlaczego jest ważniejsze niż jak
      • Antywzorzec bez kontekstu
    • Spektrum między skrajnościami
    • Rada na zakończenie

A. Kwestie do omówienia

  • Tytuł:Podstawy architektury oprogramowania dla inżynierów. Wydanie II
  • Autor:Mark Richards, Neal Ford
  • Tytuł oryginału:Fundamentals of Software Architecture: A Modern Engineering Approach, 2nd Edition
  • Tłumaczenie:Piotr Pilch, Leszek Sagalara
  • ISBN:978-83-289-2999-9, 9788328929999
  • Data wydania:2025-12-02
  • Format:Ebook
  • Identyfikator pozycji: poaro2
  • Wydawca: Helion
Ładowanie...
Ładowanie...