reklama - zainteresowany?

C++. Projektowanie oprogramowania. Zasady i wzorce projektowe - Helion

C++. Projektowanie oprogramowania. Zasady i wzorce projektowe
ebook
Autor: Klaus Iglberger
Tytuł oryginału: C++ Software Design: Design Principles and Patterns for High-Quality Software
TÅ‚umaczenie: Piotr Rajca
ISBN: 978-83-8322-721-4
stron: 400, Format: ebook
Data wydania: 2023-06-01
Księgarnia: Helion

Cena książki: 48,95 zł (poprzednio: 87,41 zł)
Oszczędzasz: 44% (-38,46 zł)

Dodaj do koszyka C++. Projektowanie oprogramowania. Zasady i wzorce projektowe

Tagi: C++ - Programowanie

Wi

Dodaj do koszyka C++. Projektowanie oprogramowania. Zasady i wzorce projektowe

Dodaj do koszyka C++. Projektowanie oprogramowania. Zasady i wzorce projektowe

Spis treści

C++. Projektowanie oprogramowania. Zasady i wzorce projektowe eBook -- spis treści

Wstęp

1. Sztuka projektowania oprogramowania

  • Wytyczna 1.: Znaczenie projektu oprogramowania
    • Cechy to nie projekt oprogramowania
    • Projektowanie oprogramowania: Sztuka zarzÄ…dzania zależnoÅ›ciami i abstrakcjami
    • Trzy poziomy projektowania oprogramowania
    • Zwracanie uwagi na możliwoÅ›ci
    • Zwracanie uwagi na projekt oprogramowania oraz zasady projektowe
  • Wytyczna 2.: Projektuj pod kÄ…tem zmian
    • Separacja zagadnieÅ„
    • PrzykÅ‚ad sztucznych powiÄ…zaÅ„
    • PowiÄ…zania logiczne oraz fizyczne
    • Nie powtarzaj siÄ™
    • Unikaj zbyt wczesnego separowania zagadnieÅ„
  • Wytyczna 3.: Separuj interfejsy w celu unikania sztucznych powiÄ…zaÅ„
    • Segregacja interfejsów w celu separacji zagadnieÅ„
    • Minimalizacja wymagaÅ„ okreÅ›lanych przez argumenty szablonów
  • Wytyczna 4.: Projektuj pod kÄ…tem Å‚atwoÅ›ci testowania
    • Jak testować prywatnÄ… funkcjÄ™ skÅ‚adowÄ…?
    • Prawdziwe rozwiÄ…zanie: Separacja zagadnieÅ„
  • Wytyczna 5.: Projektuj pod kÄ…tem rozszerzania
    • Zasada otwarte-zamkniÄ™te
    • Rozszerzalność podczas kompilacji
    • Unikanie przedwczesnego projektowania pod kÄ…tem rozszerzania

2. Sztuka tworzenia abstrakcji

  • Wytyczna 6.: Trzymaj siÄ™ oczekiwanych zachowaÅ„ abstrakcji
    • PrzykÅ‚ad naruszania oczekiwaÅ„
    • Zasada podstawienia Liskov
    • Krytyka zasady podstawienia Liskov
    • Potrzeba dobrych i sensownych abstrakcji
  • Wytyczna 7.: Zrozum podobieÅ„stwa pomiÄ™dzy klasami bazowymi a konceptami
  • Wytyczna 8.: Zrozum semantyczne wymagania zbiorów przeciążeÅ„
    • PotÄ™ga funkcji zewnÄ™trznych: mechanizm abstrakcji czasu kompilacji
    • Problem funkcji zewnÄ™trznych: Oczekiwane zachowanie
  • Wytyczna 9.: Zwracaj uwagÄ™ na wÅ‚asność abstrakcji
    • Zasada odwrócenia zależnoÅ›ci
    • Odwrócenie zależnoÅ›ci w architekturze opartej na wtyczkach
    • Odwrócenie zależnoÅ›ci z wykorzystaniem szablonów
    • Odwrócenie zależnoÅ›ci z wykorzystaniem zbioru przeciążeÅ„
    • Zasada odwrócenia zależnoÅ›ci kontra zasada jednej odpowiedzialnoÅ›ci
  • Wytyczna 10.: Rozważ stworzenie dokumentacji architektury

3. Przeznaczenie wzorców projektowych

  • Wytyczna 11.: Zrozum przeznaczenie wzorców projektowych
    • Wzorzec projektowy ma nazwÄ™
    • Wzorce projektowe majÄ… swoje przeznaczenie
    • Wzorce projektowe wprowadzajÄ… abstrakcjÄ™
    • Przydatność wzorca potwierdzono w praktyce
  • Wytyczna 12.: Strzeż siÄ™ bÅ‚Ä™dnych przekonaÅ„ dotyczÄ…cych wzorców projektowych
    • Wzorce projektowe nie sÄ… celem
    • We wzorcach projektowych nie chodzi o szczegóÅ‚y implementacyjne
    • Wzorce projektowe nie ograniczajÄ… siÄ™ do jÄ™zyków programowania zorientowanych obiektowo ani do polimorfizmu dynamicznego
  • Wytyczna 13.: Wzorce projektowe sÄ… wszÄ™dzie
  • Wytyczna 14.: Używaj nazwy wzorca, by wyrazić jego przeznaczenie

4. Wzorzec projektowy OdwiedzajÄ…cy

  • Wytyczna 15.: Projektuj pod kÄ…tem dodawania typów i operacji
    • RozwiÄ…zanie proceduralne
    • RozwiÄ…zanie obiektowe
    • Uważaj na decyzjÄ™ projektowÄ… zwiÄ…zanÄ… z polimorfizmem dynamicznym
  • Wytyczna 16.: Stosowanie wzorca OdwiedzajÄ…cy do rozszerzania operacji
    • Analiza problemów z projektem
    • Prezentacja wzorca projektowego OdwiedzajÄ…cy
    • Analiza wad wzorca projektowego OdwiedzajÄ…cy
  • Wytyczna 17.: Rozważ użycie std::variant do implementacji wzorca OdwiedzajÄ…cy
    • Wprowadzenie do std::variant
    • Refaktoryzacja rysowania figur z użyciem nieintruzyjnego rozwiÄ…zania opartego na wartoÅ›ciach
    • Pomiary wydajnoÅ›ci dziaÅ‚ania
    • Analiza wad rozwiÄ…zania korzystajÄ…cego z std::variant
  • Wytyczna 18.: Uważaj na wydajność acyklicznego odwiedzajÄ…cego

5. Wzorce projektowe Strategia i Polecenie

  • Wytyczna 19.: Stosuj wzorzec Strategia do okreÅ›lania sposobu wykonywania operacji
    • Analiza wad projektu
    • Przedstawienie wzorca projektowego Strategia
    • Analiza mankamentów naiwnej implementacji Strategii
    • Porównanie wzorców OdwiedzajÄ…cy i Strategia
    • Analiza mankamentów wzorca projektowego Strategia
    • Projekt oparty na strategii
  • Wytyczna 20.: PrzedkÅ‚adaj kompozycjÄ™ nad dziedziczenie
  • Wytyczna 21.: Stosuj wzorzec Polecenie, by izolować operacje do wykonania
    • Prezentacja wzorca projektowego Polecenie
    • Porównanie wzorców projektowych Polecenie i Strategia
    • Analiza mankamentów wzorca projektowego Polecenie
  • Wytyczna 22.: PrzedkÅ‚adaj semantykÄ™ wartoÅ›ci nad semantykÄ™ referencji
    • Wady stylu z książki Bandy Czworga: semantyka referencji
    • Semantyka referencji: drugi przykÅ‚ad
    • Filozofia nowoczesnego C++: semantyka wartoÅ›ci
    • Semantyka wartoÅ›ci: drugi przykÅ‚ad
    • W implementacjach wzorców projektowych preferuj stosowanie semantyki wartoÅ›ci
  • Wytyczna 23.: Preferuj implementacjÄ™ wzorca Strategia korzystajÄ…cÄ… z wartoÅ›ci
    • Przedstawienie std::function
    • Refaktoryzacja rysowania figur
    • Pomiary wydajnoÅ›ci dziaÅ‚ania
    • Analiza mankamentów rozwiÄ…zania korzystajÄ…cego z std::function

6. Wzorce projektowe: Adapter, Obserwator i CRTP

  • Wytyczna 24.: Stosuj adaptery, by standaryzować interfejsy
    • Prezentacja wzorca projektowego Adapter
    • Adaptery obiektowe a adaptery klasowe
    • PrzykÅ‚ady z Biblioteki standardowej
    • Porównanie wzorców Adapter i Strategia
    • Adaptery funkcyjne
    • Analiza mankamentów wzorca projektowego Adapter
  • Wytyczna 25.: Stosuj wzorzec Obserwator jako abstrakcyjny mechanizm powiadamiania
    • Prezentacja wzorca projektowego Obserwator
    • Klasyczna implementacja wzorca projektowego Obserwator
    • Implementacja obserwatora oparta na semantyce wartoÅ›ci
    • Analiza mankamentów wzorca projektowego Obserwator
  • Wytyczna 26.: Stosuj wzorzec CRTP, by wprowadzać statyczne kategorie typów
    • Przeznaczenie wzorca CRTP
    • Prezentacja wzorca projektowego CRTP
    • Analiza mankamentów wzorca projektowego CRTP
    • PrzyszÅ‚ość wzorca projektowego CRTP: Porównanie wzorca CRTP i konceptów C++20
  • Wytyczna 27.: Stosuj wzorzec CRTP do tworzenia statycznych klas domieszek
    • Chęć posiadania silnego typu
    • Stosowanie CRTP jako wzorca implementacyjnego

7. Wzorce projektowe Most, Prototyp oraz Polimorfizm zewnętrzny

  • Wytyczna 28.: Tworzenie mostów w celu wyeliminowania fizycznych zależnoÅ›ci
    • PrzykÅ‚ad motywujÄ…cy
    • Opis wzorca projektowego Most
    • Idiom Pimpl
    • Porównanie wzorców projektowych Most i Strategia
    • Analiza mankamentów wzorca projektowego Most
  • Wytyczna 29.: BÄ…dź Å›wiadom zysków i strat wydajnoÅ›ci we wzorcu projektowym Most
    • WpÅ‚yw użycia wzorca projektowego Most na wydajność dziaÅ‚ania
    • Poprawianie wydajnoÅ›ci przez zastosowanie wzorca projektowego Most
  • Wytyczna 30.: Stosuj wzorzec Prototyp, by wyodrÄ™bnić operacje kopiowania
    • PrzykÅ‚ad zootechniczny: Kopiowanie zwierzÄ…t
    • Prezentacja wzorca projektowego Prototyp
    • Porównanie wzorca projektowego Prototyp i szablonu klasy std::variant
    • Analiza mankamentów wzorca projektowego Prototyp
  • Wytyczna 31.: Stosuj wzorzec Polimorfizm zewnÄ™trzny, by tworzyć nieintruzyjny polimorfizm czasu wykonywania
    • Prezentacja wzorca projektowego Polimorfizm zewnÄ™trzny
    • Rysowanie figur raz jeszcze
    • Porównanie wzorców projektowych Polimorfizm zewnÄ™trzny i Adapter
    • Analiza mankamentów wzorca projektowego Polimorfizm zewnÄ™trzny

8. Wzorzec projektowy Ukrywanie typu

  • Wytyczna 32.: Rozważ zastÄ…pienie hierarchii dziedziczenia wzorcem projektowym Ukrywanie typu
    • Historia ukrywania typu
    • Przedstawienie wzorca projektowego Ukrywanie typu
    • Implementacja wzorca projektowego Ukrywanie typu majÄ…ca prawa wÅ‚asnoÅ›ci
    • Analiza mankamentów wzorca projektowego Ukrywanie typu
    • Porównanie dwóch rodzajów opakowaÅ„ stosowanych we wzorcu Ukrywanie typu
    • Segregacja interfejsów w opakowaniach wzorca projektowego Ukrywanie typu
    • Wyniki pomiarów wydajnoÅ›ci
    • Kilka sÅ‚ów o terminologii
  • Wytyczna 33.: Miej Å›wiadomość optymalizacyjnego potencjaÅ‚u wzorca projektowego Ukrywanie typu
    • Optymalizacja maÅ‚ego bufora
    • RÄ™czna implementacja przydzielania funkcji
  • Wytyczna 34.: PamiÄ™taj o kosztach konfiguracji zwiÄ…zanych z rodzajem opakowaÅ„ używanych we wzorcu Ukrywanie typu
    • Koszty konfiguracji zwiÄ…zane z rodzajem opakowaÅ„ stosowanych we wzorcu Ukrywanie typu
    • Prosta implementacja wzorca projektowego Ukrywanie typu niemajÄ…ca praw wÅ‚asnoÅ›ci
    • Pozbawiona praw wÅ‚asnoÅ›ci implementacja Ukrywania typu o wiÄ™kszych możliwoÅ›ciach

9. Wzorzec projektowy Dekorator

  • Wytyczna 35.: Stosuj dekoratory, aby dodawać dostosowania hierarchicznie
    • Problem projektowy kolegów z firmy
    • Prezentacja wzorca projektowego Dekorator
    • Klasyczna implementacja wzorca projektowego Dekorator
    • Drugi przykÅ‚ad dekoratora
    • Porównanie wzorców projektowych Dekorator, Adapter i Strategia
    • Analiza mankamentów wzorca projektowego Dekorator
  • Wytyczna 36.: Zrozum kompromis pomiÄ™dzy abstrakcjÄ… czasu wykonywania a abstrakcjÄ… czasu kompilacji
    • Dekorator czasu kompilacji oparty na wartoÅ›ciach
    • WartoÅ›ciowy dekorator czasu wykonania

10. Wzorzec projektowy Singleton

  • Wytyczna 37.: Traktuj Singleton jako wzorzec implementacyjny, a nie wzorzec projektowy
    • Przedstawienie wzorca Singleton
    • Singleton nie zarzÄ…dza zależnoÅ›ciami ani ich nie redukuje
  • Wytyczna 38.: Projektuj singletony pod kÄ…tem zmian i możliwoÅ›ci testowania
    • Singletony reprezentujÄ… globalny stan
    • Singletony utrudniajÄ… wprowadzanie zmian i możliwoÅ›ci testowania
    • Odwrócenie zależnoÅ›ci od singletonu
    • Stosowanie wzorca projektowego Strategia
    • PodążajÄ…c w kierunku wstrzykiwania zależnoÅ›ci

11. Ostatnia wytyczna

  • Wytyczna 39.: Kontynuuj poznawanie wzorców projektowych

Dodaj do koszyka C++. Projektowanie oprogramowania. Zasady i wzorce projektowe

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.