158660
Book
In basket
Sztuka projektowania 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 Projektuj pod kątem zmian Separacja zagadnień Przykład sztucznych powiązań Powiązania logiczne oraz fizyczne Unikaj zbyt wczesnego separowania zagadnień Separuj interfejsy w celu unikania sztucznych powiązań Segregacja interfejsów w celu separacji zagadnień Minimalizacja wymagań określanych przez argumenty szablonów Projektuj pod kątem łatwości testowania Jak testować prywatną funkcję składową? Separacja zagadnień Projektuj pod kątem rozszerzania Zasada otwarte-zamknięte Rozszerzalność podczas kompilacji Unikanie przedwczesnego projektowania pod kątem rozszerzania 2. Sztuka tworzenia abstrakcji Trzymaj się oczekiwanych zachowań abstrakcji Przykład naruszania oczekiwań Zasada podstawienia Liskov Krytyka zasady podstawienia Liskov Potrzeba dobrych i sensownych abstrakcji Zrozum podobieństwa pomiędzy klasami bazowymi a konceptami Zrozum semantyczne wymagania zbiorów przeciążeń Potęga funkcji zewnętrznych: mechanizm abstrakcji czasu kompilacji Problem funkcji zewnętrznych: Oczekiwane zachowanie 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 Rozważ stworzenie dokumentacji architektury 3. Przeznaczenie wzorców projektowych Zrozum przeznaczenie wzorców projektowych Wzorzec projektowy ma nazwę Wzorce projektowe mają swoje przeznaczenie Wzorce projektowe wprowadzają abstrakcję Przydatność wzorca potwierdzono w praktyce 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 Wzorce projektowe są wszędzie Używaj nazwy wzorca, by wyrazić jego przeznaczenie 4. Wzorzec projektowy Odwiedzający 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 Stosowanie wzorca Odwiedzający do rozszerzania operacji Analiza problemów z projektem Prezentacja wzorca projektowego Odwiedzający Analiza wad wzorca projektowego Odwiedzający 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 Uważaj na wydajność acyklicznego odwiedzającego 5. Wzorce projektowe Strategia i Polecenie 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 Przedkładaj kompozycję nad dziedziczenie 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 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 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 Wzorce projektowe: Adapter, Obserwator i CRTP 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 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 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 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 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 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 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 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 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 Miej świadomość optymalizacyjnego potencjału wzorca projektowego Ukrywanie typu Optymalizacja małego bufora Ręczna implementacja przydzielania funkcji 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 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 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 Traktuj Singleton jako wzorzec implementacyjny, a nie wzorzec projektowy Przedstawienie wzorca Singleton Singleton nie zarządza zależnościami ani ich nie redukuje 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 Kontynuuj poznawanie wzorców projektowych
Sygnatura czytelni BWEAiI: XII Ł 85
Media files:
Availability:
Biblioteka WEAiI
Copies are only available in the library: sygn. 154656 N (1 egz.)
Notes:
Tytuł oryginału: C++ software design : design principles and patterns for high-quality software, 2022
General note
Na stronie tytułowej i okładce także nazwa wydawcy oryginału: O'Reilly. W książce także ISBN oryginału.
The item has been added to the basket. If you don't know what the basket is for, click here for details.
Do not show it again

Deklaracja dostępności