Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów - ebook
Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów - ebook
C++ należy do najpopularniejszych i najbardziej cenionych za uniwersalność języków oprogramowania - umożliwia projektowanie rozbudowanych, a zarazem intuicyjnych w obsłudze aplikacji wysokiego poziomu. Pozwala tworzyć wydajną i czytelną architekturę oprogramowania również w wypadku znacznie zaawansowanych systemów i programów.
Dzięki tej książce poznasz narzędzia i rozwiązania, które ułatwiają projektowanie w języku C++ nawet najbardziej skomplikowanych aplikacji. Autorzy przybliżają samo pojęcie architektury oprogramowania i na praktycznych przykładach wyjaśniają, na czym polega jej tworzenie. Pokazują również aktualne trendy projektowe i uczą, jak za pomocą C++ krok po kroku, element po elemencie budować aplikacje i systemy na dowolnym poziomie zaawansowania. W trakcie lektury dowiesz się, jakie warunki powinna spełniać efektywna architektura oprogramowania i jak sprawić, by gwarantowała wysoki poziom bezpieczeństwa, skalowalności i wydajności. Liczne przykłady, zrozumiałe objaśnienia i przyjazny język pozwalają na efektywne i szybkie przyswajanie wiedzy dotyczącej tworzenia rozproszonych, skomplikowanych aplikacji w C++.
W książce:
- projektowanie aplikacji bazujących na wydajnej, nowoczesnej i czytelnej architekturze oprogramowania
- używanie najważniejszych zasad i wzorców projektowych umożliwiających tworzenie efektywnego kodu za pomocą języka C++
- analizowanie różnych koncepcji architektury oprogramowania i stosowanie tych, które w największym stopniu odpowiadają danemu projektowi
- efektywne wykorzystywanie mechanizmów i rozwiązań dostępnych w najnowszej odsłonie języka C++
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
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-8667-9 |
Rozmiar pliku: | 5,7 MB |