Architektura oprogramowania bez tajemnic. Wykorzystaj j - Helion
Autor: Adrian Ostrowski, Piotr Gaczkowski
Tytuł oryginału: Software Architecture with C++: Design modern systems using effective architecture concepts, design patterns, and techniques with C++20
Tłumaczenie: Krzysztof B
ISBN: 978-83-283-8666-2
stron: 503, Format: 168x237, okładka: mi
Księgarnia: Helion
Tytuł oryginału: Software Architecture with C++: Design modern systems using effective architecture concepts, design patterns, and techniques with C++20
Tłumaczenie: Krzysztof B
ISBN: 978-83-283-8666-2
stron: 503, Format: 168x237, okładka: mi
Księgarnia: Helion
Książka będzie dostępna od kwietnia 2022
Tagi: C++ - Programowanie
C++ nale
Spis treści
Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów -- spis treści
Wstęp
Część I. Koncepcje i składniki architektury oprogramowania
- Rozdział 1. Znaczenie architektury oprogramowania i zasady dobrego projektowania
- Wymagania techniczne
- Zrozumienie pojęcia "architektura oprogramowania"
- Uświadomienie sobie znaczenia właściwej architektury
- Badanie podstaw dobrej architektury
- Opracowywanie architektury według zasad podejścia zwinnego
- Filozofia języka C++
- Stosowanie zasad SOLID i DRY
- Sprzężenie i spójność
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 2. Style architektoniczne
- Wymagania techniczne
- Wybór pomiędzy podejściem stanowym i bezstanowym
- Zapoznanie się z monolitami - dlaczego należy ich unikać i jakie są wyjątki
- Zrozumienie działania usług i mikrousług
- Badanie architektury opartej na zdarzeniach
- Zrozumienie działania architektury warstwowej
- Zapoznanie się z architekturą opartą na modułach
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 3. Wymagania funkcjonalne i niefunkcjonalne
- Wymagania techniczne
- Zapoznanie się z typami wymagań
- Rozpoznawanie wymagań istotnych dla architektury
- Zbieranie wymagań z różnych źródeł
- Dokumentowanie wymagań
- Dokumentowanie architektury
- Wybór właściwych perspektyw do udokumentowania
- Generowanie dokumentacji
- Podsumowanie
- Pytania
- Materiały dodatkowe
Część II. Projektowanie i wytwarzanie oprogramowania w języku C++
- Rozdział 4. Projektowanie architektur i systemów
- Wymagania techniczne
- Zrozumienie specyfiki systemów rozproszonych
- Zapewnienie systemowi dostępności i odporności na uszkodzenia
- Integrowanie systemu
- Osiąganie wydajności w dużej skali
- Wdrażanie systemu
- Zarządzanie interfejsami API
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 5. Wykorzystywanie cech języka C++
- Wymagania techniczne
- Projektowanie doskonałych interfejsów API
- Pisanie deklaratywnego kodu
- Przenoszenie obliczeń na czas kompilacji
- Wykorzystanie potęgi bezpiecznych typów
- Pisanie modularnego kodu C++
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 6. Wzorce projektowe a język C++
- Wymagania techniczne
- Pisanie idiomatycznego kodu C++
- Ciekawie rekurencyjny wzorzec szablonu
- Tworzenie obiektów
- Śledzenie stanu i odwiedzanie obiektów w języku C++
- Efektywne postępowanie z pamięcią
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 7. Budowanie i pakowanie
- Wymagania techniczne
- Wykorzystanie kompilatorów do granic ich możliwości
- Zapewnianie abstrakcji procesu budowania
- Korzystanie z modułów zewnętrznych
- Wielokrotne korzystanie z kodu o dobrej jakości
- Pakowanie przy użyciu narzędzia Conan
- Podsumowanie
- Pytania
- Materiały dodatkowe
Część III. Architektoniczne atrybuty jakościowe
- Rozdział 8. Pisanie testowalnego kodu
- Wymagania techniczne
- Po co testować kod?
- Wprowadzenie do frameworków testowych
- Zapoznanie się z atrapami i imitacjami
- Projektowanie klas sterowane testami
- Automatyzowanie testów na potrzeby ciągłej integracji/ciągłego wdrażania
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 9. Ciągła integracja i ciągłe wdrażanie
- Wymagania techniczne
- Zapoznanie się z ciągłą integracją
- Recenzowanie zmian w kodzie
- Badanie automatyzacji sterowanej testami
- Zarządzanie wdrażaniem jako kodem
- Budowanie kodu wdrożeniowego
- Budowanie potoku CD
- Korzystanie z niezmiennej infrastruktury
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 10. Bezpieczeństwo kodu i wdrażania
- Wymagania techniczne
- Sprawdzanie zabezpieczeń kodu
- Sprawdzanie, czy zależności są bezpieczne
- Utwardzanie kodu
- Utwardzanie środowiska
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 11. Wydajność
- Wymagania techniczne
- Mierzenie wydajności
- Pomaganie kompilatorowi w generowaniu wydajnego kodu
- Zrównoleglanie obliczeń
- Używanie koprocedur
- Podsumowanie
- Pytania
- Materiały dodatkowe
Część IV. Zasady projektowania natywnego dla chmury
- Rozdział 12. Architektura zorientowana na usługi
- Wymagania techniczne
- Zapoznanie się z architekturą zorientowaną na usługi
- Wdrażanie zasad wymiany komunikatów
- Korzystanie z usług sieciowych
- Wykorzystywanie usług zarządzanych i dostawców chmury
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 13. Projektowanie mikrousług
- Wymagania techniczne
- Wniknięcie w temat mikrousług
- Budowanie mikrousług
- Obserwowanie mikrousług
- Łączenie mikrousług
- Skalowanie mikrousług
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 14. Kontenery
- Wymagania techniczne
- Reaktywacja kontenerów
- Budowanie kontenerów
- Testowanie kontenerów i integrowanie ich ze sobą
- Zapoznanie się z orkiestracją kontenerów
- Podsumowanie
- Pytania
- Materiały dodatkowe
- Rozdział 15. Projektowanie rozwiązań natywnych dla chmury
- Wymagania techniczne
- Zapoznanie się z rozwiązaniami natywnymi dla chmury
- Orkiestracja obciążeń natywnych dla chmury przy użyciu platformy Kubernetes
- Obserwowalność w systemach rozproszonych
- Łączenie usług za pomocą siatki usług
- Podejście GitOps
- Podsumowanie
- Pytania
- Materiały dodatkowe
Dodatek A
Dodatek B. Odpowiedzi