Opis ebooka: C++ Software Design
Good software design is essential for the success of your project, but designing software is hard to do. You need to have a deep understanding of the consequences of design decisions and a good overview of available design alternatives. With this book, experienced C++ developers will get a thorough, practical, and unparalleled overview of software design with this modern language.
C++ trainer and consultant Klaus Iglberger explains how you can manage dependencies and abstractions, improve changeability and extensibility of software entities, and apply and implement modern design patterns to help you take advantage of today's possibilities. Software design is the most essential aspect of a software project because it impacts the software's most important properties: maintainability, changeability, and extensibility.
- Learn how to evaluate your code with respect to software design
- Understand what software design is, including design goals such as changeability and extensibility
- Explore the advantages and disadvantages of each design approach
- Learn how design patterns help solve problems and express intent
- Choose the right form of a design pattern to get the most out of its advantages
Wybrane bestsellery
-
Ta książka jest doskonałym uzupełnieniem podręcznej biblioteczki każdego programisty C++. Opisano w niej znaczenie dobrego projektu oprogramowania oraz zasady tworzenia takich projektów. Omówiono szereg przydatnych wzorców projektowych, dzięki którym łatwiej można zrozumieć, jak zarządzać zależno...
C++. Projektowanie oprogramowania. Zasady i wzorce projektowe C++. Projektowanie oprogramowania. Zasady i wzorce projektowe
(53.40 zł najniższa cena z 30 dni)57.84 zł
89.00 zł(-35%) -
Nie pamiętasz jakiegoś algorytmu? Nie wiesz, jaką strukturę danych należy zastosować? Nie masz pojęcia, jak wyznaczyć złożoność obliczeniową algorytmu? Nie martw się, Twoje problemy należą już do przeszłości! Tablice informatyczne. Algorytmy pozwolą Ci szybko odnaleźć i przypomnieć sobie podstawo...(6.90 zł najniższa cena z 30 dni)
8.49 zł
17.00 zł(-50%) -
Unlock your architectural visualization potential with this comprehensive guide to UE5. Learn best practices, advanced techniques, and hands-on exercises for photorealistic real-time 3D environments. Ideal for beginners to experienced professionals.
Architectural Visualization in Unreal Engine 5. Create photorealistic architectural interior renderings in UE5 Architectural Visualization in Unreal Engine 5. Create photorealistic architectural interior renderings in UE5
-
Learn how design patterns offer the tools and practices to write code faster and more easily with Game Development Patterns with Unreal Engine 5. This book will walk you through a variety of design patterns and demonstrate how to apply them to Unreal Engine 5 projects as you design systems with t...
Game Development Patterns with Unreal Engine 5. Build maintainable and scalable systems with C++ and Blueprint Game Development Patterns with Unreal Engine 5. Build maintainable and scalable systems with C++ and Blueprint
-
Jeśli zastanawiasz się nad karierą programisty lub już się przygotowujesz do tego, by zostać koderem, poważnie rozważ naukę języka C++. Zaprojektowany w latach 80. XX wieku przez duńskiego informatyka Bjarne Stroustrupa C++ rozszerza język C o obiektowe mechanizmy abstrakcji danych i silną statyc...
C++ w zadaniach. Kurs video. Techniki rozwiązywania złożonych zagadnień C++ w zadaniach. Kurs video. Techniki rozwiązywania złożonych zagadnień
(39.90 zł najniższa cena z 30 dni)83.85 zł
129.00 zł(-35%) -
Starting with the fundamentals of IoT supported with real-world use cases, this book will take you through every aspect of building an IoT device using ESP32 from scratch. With each chapter, you’ll progressively enhance your IoT applications with features like sensor communication, integra...
Developing IoT Projects with ESP32. Unlock the full Potential of ESP32 in IoT development to create production-grade smart devices - Second Edition Developing IoT Projects with ESP32. Unlock the full Potential of ESP32 in IoT development to create production-grade smart devices - Second Edition
-
Początków C++ należy szukać w latach 70. XX wieku, kiedy powstał imperatywny, proceduralny język ogólnego przeznaczenia C. C++ stanowi jego rozszerzenie o obiektowe mechanizmy abstrakcji danych i silną statyczną kontrolę typów. Zgodny z językiem C na poziomie kodu źródłowego, pozwala na abstrakcj...
C++ w zadaniach. Kurs video. Doskonalenie warsztatu programisty C++ w zadaniach. Kurs video. Doskonalenie warsztatu programisty
(39.90 zł najniższa cena z 30 dni)83.85 zł
129.00 zł(-35%) -
Znajomość C++ otwiera więc drzwi do kreowania cyfrowego świata w różnych dziedzinach. Jednakże początki z C++ mogą stanowić wyzwanie i wywoływać pytania, jak się uczyć, aby robić postępy, i w jaki sposób uporządkować zdobytą wiedzę. Cóż, nie ma lepszej metody niż nauka poprzez praktykę! Przed Tob...(41.40 zł najniższa cena z 30 dni)
44.85 zł
69.00 zł(-35%) -
Dlaczego ze wszystkich języków programowania, jakie masz do wyboru, powinieneś wybrać właśnie C++? Może dlatego, że od kilku dekad jest on jednym z najpopularniejszych języków programowania na świecie. Może dlatego, że C++ jest uniwersalny, sprawdza się zarówno podczas tworzenia oprogramowania do...
Nowoczesny C++. Kurs video. Zmienne, operatory i instrukcje Nowoczesny C++. Kurs video. Zmienne, operatory i instrukcje
(39.90 zł najniższa cena z 30 dni)64.50 zł
129.00 zł(-50%) -
This book covers the essential system programming tools and helps you explore the features of C++20. It emphasizes important details to maintain code quality and tackle everyday challenges of developing software for high performance, optimization, and more.
C++ Programming for Linux Systems. Create robust enterprise software for Linux and Unix-based operating systems C++ Programming for Linux Systems. Create robust enterprise software for Linux and Unix-based operating systems
O autorze ebooka
Dr Klaus Iglberger jest niezależnym ekspertem, trenerem i konsultantem w dziedzinie programowania C++. Jest też współautorem kilku frameworków symulacyjnych i biblioteki matematycznej Blaze C++. Wcześniej był dyrektorem zarządzającym Centralnego Instytutu Obliczeń Naukowych na Uniwersytecie Erlangen-Norymberga.
Kup polskie wydanie:
C++. Projektowanie oprogramowania. Zasady i wzorce projektowe
- Autor:
- Klaus Iglberger
44,50 zł
89,00 zł
(39.90 zł najniższa cena z 30 dni)
Ebooka "C++ Software Design" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "C++ Software Design" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "C++ Software Design" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-10-981-1311-7, 9781098113117
- Data wydania ebooka:
- 2022-09-21 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 4.9MB
- Rozmiar pliku Mobi:
- 12.5MB
Spis treści ebooka
- Preface
- Why I Wrote This Book
- What This Book Is About
- Software Design
- Modern C++
- Design Patterns
- Who This Book Is For
- How This Book Is Structured
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- 1. The Art of Software Design
- Guideline 1: Understand the Importance of
Software Design
- Features Are Not Software Design
- Software Design: The Art of Managing Dependencies and Abstractions
- The Three Levels of Software Development
- The Focus on Features
- The Focus on Software Design and Design Principles
- Guideline 1: Understand the Importance of
Software Design
- Guideline 2: Design for Change
- Separation of Concerns
- An Example of Artificial Coupling
- Logical Versus Physical Coupling
- Dont Repeat Yourself
- Avoid Premature Separation of Concerns
- Guideline 3: Separate Interfaces to Avoid
Artificial Coupling
- Segregate Interfaces to Separate Concerns
- Minimizing Requirements of Template Arguments
- Guideline 4: Design for Testability
- How to Test a Private Member Function
- The True Solution: Separate Concerns
- Guideline 5: Design for Extension
- The Open-Closed Principle
- Compile-Time Extensibility
- Avoid Premature Design for Extension
- 2. The Art of Building Abstractions
- Guideline 6: Adhere to the Expected Behavior of Abstractions
- An Example of Violating Expectations
- The Liskov Substitution Principle
- Criticism of the Liskov Substitution Principle
- The Need for Good and Meaningful Abstractions
- Guideline 6: Adhere to the Expected Behavior of Abstractions
- Guideline 7: Understand the Similarities Between Base Classes and Concepts
- Guideline 8: Understand the Semantic Requirements of Overload Sets
- The Power of Free Functions: A Compile-Time Abstraction Mechanism
- The Problem of Free Functions: Expectations on the Behavior
- Guideline 9: Pay Attention to the Ownership of Abstractions
- The Dependency Inversion Principle
- Dependency Inversion in a Plug-In Architecture
- Dependency Inversion via Templates
- Dependency Inversion via Overload Sets
- Dependency Inversion Principle Versus Single-Responsibility Principle
- Guideline 10: Consider Creating an Architectural Document
- 3. The Purpose of Design Patterns
- Guideline 11: Understand the Purpose of Design Patterns
- A Design Pattern Has a Name
- A Design Pattern Carries an Intent
- A Design Pattern Introduces an Abstraction
- A Design Pattern Has Been Proven
- Guideline 11: Understand the Purpose of Design Patterns
- Guideline 12: Beware of Design Pattern Misconceptions
- Design Patterns Are Not a Goal
- Design Patterns Are Not About Implementation Details
- Design Patterns Are Not Limited to Object-Oriented Programming or Dynamic Polymorphism
- Guideline 13: Design Patterns Are Everywhere
- Guideline 14: Use a Design Patterns Name to Communicate Intent
- 4. The Visitor Design Pattern
- Guideline 15: Design for the Addition of
Types or Operations
- A Procedural Solution
- An Object-Oriented Solution
- Be Aware of the Design Choice in Dynamic Polymorphism
- Guideline 15: Design for the Addition of
Types or Operations
- Guideline 16: Use Visitor to Extend Operations
- Analyzing the Design Issues
- The Visitor Design Pattern Explained
- Analyzing the Shortcomings of the Visitor Design Pattern
- Guideline 17: Consider std::variant for
Implementing Visitor
- Introduction to std::variant
- Refactoring the Drawing of Shapes as a Value-Based, Nonintrusive Solution
- Performance Benchmarks
- Analyzing the Shortcomings of the std::variant Solution
- Guideline 18: Beware the Performance of Acyclic Visitor
- 5. The Strategy and Command
Design Patterns
- Guideline 19: Use Strategy to Isolate How Things Are Done
- Analyzing the Design Issues
- The Strategy Design Pattern Explained
- Analyzing the Shortcomings of the Naive Solution
- Comparison Between Visitor and Strategy
- Analyzing the Shortcomings of the Strategy Design Pattern
- Policy-Based Design
- Guideline 19: Use Strategy to Isolate How Things Are Done
- Guideline 20: Favor Composition over Inheritance
- Guideline 21: Use Command to Isolate What Things
Are Done
- The Command Design Pattern Explained
- The Command Design Pattern Versus the Strategy Design Pattern
- Analyzing the Shortcomings of the Command Design Pattern
- Guideline 22: Prefer Value Semantics over
Reference Semantics
- The Shortcomings of the GoF Style: Reference Semantics
- Reference Semantics: A Second Example
- The Modern C++ Philosophy: Value Semantics
- Value Semantics: A Second Example
- Prefer to Use Value Semantics to Implement Design Patterns
- Guideline 23: Prefer a Value-Based Implementation of Strategy and Command
- Introduction to std::function
- Refactoring the Drawing of Shapes
- Performance Benchmarks
- Analyzing the Shortcomings of the std::function Solution
- 6. The Adapter, Observer, and
CRTP Design Patterns
- Guideline 24: Use Adapters to Standardize Interfaces
- The Adapter Design Pattern Explained
- Object Adapters Versus Class Adapters
- Examples from the Standard Library
- Comparison Between Adapter and Strategy
- Function Adapters
- Analyzing the Shortcomings of the Adapter Design Pattern
- Guideline 24: Use Adapters to Standardize Interfaces
- Guideline 25: Apply Observers as an Abstract Notification Mechanism
- The Observer Design Pattern Explained
- A Classic Observer Implementation
- An Observer Implementation Based on Value Semantics
- Analyzing the Shortcomings of the Observer Design Pattern
- Guideline 26: Use CRTP to Introduce Static Type Categories
- A Motivation for CRTP
- The CRTP Design Pattern Explained
- Analyzing the Shortcomings of the CRTP Design Pattern
- The Future of CRTP: A Comparison Between CRTP and C++20 Concepts
- Guideline 27: Use CRTP for Static Mixin Classes
- A Strong Type Motivation
- Using CRTP as an Implementation Pattern
- 7. The Bridge, Prototype, and External Polymorphism Design Patterns
- Guideline 28: Build Bridges to Remove
Physical Dependencies
- A Motivating Example
- The Bridge Design Pattern Explained
- The Pimpl Idiom
- Comparison Between Bridge and Strategy
- Analyzing the Shortcomings of the Bridge Design Pattern
- Guideline 28: Build Bridges to Remove
Physical Dependencies
- Guideline 29: Be Aware of Bridge Performance Gains
and Losses
- The Performance Impact of Bridges
- Improving Performance with Partial Bridges
- Guideline 30: Apply Prototype for Abstract Copy Operations
- A Sheep-ish Example: Copying Animals
- The Prototype Design Pattern Explained
- Comparison Between Prototype and std::variant
- Analyzing the Shortcomings of the Prototype Design Pattern
- Guideline 31: Use External Polymorphism for Nonintrusive Runtime Polymorphism
- The External Polymorphism Design Pattern Explained
- Drawing of Shapes Revisited
- Comparison Between External Polymorphism and Adapter
- Analyzing the Shortcomings of the External Polymorphism Design Pattern
- 8. The Type Erasure Design Pattern
- Guideline 32: Consider Replacing Inheritance Hierarchies with Type Erasure
- The History of Type Erasure
- The Type Erasure Design Pattern Explained
- An Owning Type Erasure Implementation
- Analyzing the Shortcomings of the Type Erasure Design Pattern
- Comparing Two Type Erasure Wrappers
- Interface Segregation of Type Erasure Wrappers
- Performance Benchmarks
- A Word About Terminology
- Guideline 32: Consider Replacing Inheritance Hierarchies with Type Erasure
- Guideline 33: Be Aware of the Optimization Potential of Type Erasure
- Small Buffer Optimization
- Manual Implementation of Function Dispatch
- Guideline 34: Be Aware of the Setup Costs of Owning
Type Erasure Wrappers
- The Setup Costs of an Owning Type Erasure Wrapper
- A Simple Nonowning Type Erasure Implementation
- A More Powerful Nonowning Type Erasure Implementation
- 9. The Decorator Design Pattern
- Guideline 35: Use Decorators to Add Customization Hierarchically
- Your Coworkers Design Issue
- The Decorator Design Pattern Explained
- A Classic Implementation of the Decorator Design Pattern
- A Second Decorator Example
- Comparison Between Decorator, Adapter, and Strategy
- Analyzing the Shortcomings of the Decorator Design Pattern
- Guideline 35: Use Decorators to Add Customization Hierarchically
- Guideline 36: Understand the Trade-off Between Runtime and Compile Time Abstraction
- A Value-Based Compile Time Decorator
- A Value-Based Runtime Decorator
- 10. The Singleton Pattern
- Guideline 37: Treat Singleton as an Implementation Pattern, Not a Design Pattern
- The Singleton Pattern Explained
- Singleton Does Not Manage or Reduce Dependencies
- Guideline 37: Treat Singleton as an Implementation Pattern, Not a Design Pattern
- Guideline 38: Design Singletons for Change
and Testability
- Singletons Represent Global State
- Singletons Impede Changeability and Testability
- Inverting the Dependencies on a Singleton
- Applying the Strategy Design Pattern
- Moving Toward Local Dependency Injection
- 11. The Last Guideline
- Guideline 39: Continue to Learn About Design Patterns
- Index
O'Reilly Media - inne książki
-
JavaScript gives web developers great power to create rich interactive browser experiences, and much of that power is provided by the browser itself. Modern web APIs enable web-based applications to come to life like never before, supporting actions that once required browser plug-ins. Some are s...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
How will software development and operations have to change to meet the sustainability and green needs of the planet? And what does that imply for development organizations? In this eye-opening book, sustainable software advocates Anne Currie, Sarah Hsu, and Sara Bergman provide a unique overview...(160.65 zł najniższa cena z 30 dni)
177.65 zł
209.00 zł(-15%) -
OpenTelemetry is a revolution in observability data. Instead of running multiple uncoordinated pipelines, OpenTelemetry provides users with a single integrated stream of data, providing multiple sources of high-quality telemetry data: tracing, metrics, logs, RUM, eBPF, and more. This practical gu...(143.65 zł najniższa cena z 30 dni)
152.15 zł
179.00 zł(-15%) -
What will you learn from this book?If you're a software developer looking for a quick on-ramp to software architecture, this handy guide is a great place to start. From the authors of Fundamentals of Software Architecture, Head First Software Architecture teaches you how to think architecturally ...(245.65 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
If you use Linux in your day-to-day work, then Linux Pocket Guide is the perfect on-the-job reference. This thoroughly updated 20th anniversary edition explains more than 200 Linux commands, including new commands for file handling, package management, version control, file format conversions, an...(92.65 zł najniższa cena z 30 dni)
101.15 zł
119.00 zł(-15%) -
Interested in developing embedded systems? Since they don't tolerate inefficiency, these systems require a disciplined approach to programming. This easy-to-read guide helps you cultivate good development practices based on classic software design patterns and new patterns unique to embedded prog...(152.15 zł najniższa cena z 30 dni)
160.65 zł
189.00 zł(-15%) -
Gain the valuable skills and techniques you need to accelerate the delivery of machine learning solutions. With this practical guide, data scientists, ML engineers, and their leaders will learn how to bridge the gap between data science and Lean product delivery in a practical and simple way. Dav...(245.65 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
This practical book provides a detailed explanation of the zero trust security model. Zero trust is a security paradigm shift that eliminates the concept of traditional perimeter-based security and requires you to "always assume breach" and "never trust but always verify." The updated edition off...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
Decentralized finance (DeFi) is a rapidly growing field in fintech, having grown from $700 million to $100 billion over the past three years alone. But the lack of reliable information makes this area both risky and murky. In this practical book, experienced securities attorney Alexandra Damsker ...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
Whether you're a startup founder trying to disrupt an industry or an entrepreneur trying to provoke change from within, your biggest challenge is creating a product people actually want. Lean Analytics steers you in the right direction.This book shows you how to validate your initial idea, find t...(126.65 zł najniższa cena z 30 dni)
126.65 zł
149.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
Oceny i opinie klientów: C++ Software Design Klaus Iglberger (0) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.