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...(53.40 zł najniższa cena z 30 dni)
53.40 zł
89.00 zł(-40%) -
Dawno, dawno temu, w głębokich latach osiemdziesiątych ubiegłego wieku pewien duński informatyk zainspirowany językiem C opracował jeden z najważniejszych, najbardziej elastycznych i do dziś niezastąpionych języków programowania — C++. Dziś ten język jest wykorzystywany do tworzenia gier ko...(149.40 zł najniższa cena z 30 dni)
149.40 zł
249.00 zł(-40%) -
Unlock the power of C++ and enhance your algorithmic thinking with this course. From understanding basic operations to mastering complex structures, this course provides a structured pathway for new programmers. Start your coding journey today!
-
Kiedy myślimy o takich aplikacjach jak Maya, VirtualBox, Telegram, Spotify, Dropbox czy Google Earth, być może nie od razu znajdujemy wspólny mianownik. A jest nim framework Qt, używany przez wszystkie te znane marki. Qt powstał z myślą o programowaniu interfejsów graficznych GUI, a ze względu na...(74.50 zł najniższa cena z 30 dni)
104.30 zł
149.00 zł(-30%) -
C++ to jeden z najpopularniejszych i najpotężniejszych języków programowania. Stanowi punkt wyjścia dla wielu innych języków, które odziedziczyły po nim składnię i liczne możliwości, dzięki czemu można śmiało stwierdzić, że znajomość C++ otwiera drzwi do świata nowoczesnego programowania i jest p...(41.40 zł najniższa cena z 30 dni)
41.40 zł
69.00 zł(-40%) -
This book is a fun introduction to the world of game programming, C++20, and the OpenGL-powered SFML using four fun, fully playable games of increasing difficulty and advancing features
-
Modern CMake for C++ is your guide to building, testing, and packaging software with ease. You'll learn to create maintainable projects, compile and link executables and libraries, use external dependencies, and more.
-
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.
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ł
(44.50 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
-
This concise yet comprehensive guide explains how to adopt a data lakehouse architecture to implement modern data platforms. It reviews the design considerations, challenges, and best practices for implementing a lakehouse and provides key insights into the ways that using a lakehouse can impact ...(193.69 zł najniższa cena z 30 dni)
193.19 zł
249.00 zł(-22%) -
In today's fast-paced world, more and more organizations require rapid application development with reduced development costs and increased productivity. This practical guide shows application developers how to use PowerApps, Microsoft's no-code/low-code application framework that helps developer...(162.47 zł najniższa cena z 30 dni)
162.27 zł
209.00 zł(-22%) -
Welcome to the systems age, where software professionals are no longer building software&emdash;we're building systems of software. Change is continuously deployed across software ecosystems coordinated by responsive infrastructure. In this world of increasing relational complexity, we need t...(152.21 zł najniższa cena z 30 dni)
152.01 zł
209.00 zł(-27%) -
This book provides an ideal guide for Python developers who want to learn how to build applications with large language models. Authors Olivier Caelen and Marie-Alice Blete cover the main features and benefits of GPT-4 and GPT-3.5 models and explain how they work. You'll also get a step-by-step g...(155.41 zł najniższa cena z 30 dni)
155.36 zł
209.00 zł(-26%) -
In today's cloud native world, where we automate as much as possible, everything is code. With this practical guide, you'll learn how Policy as Code (PaC) provides the means to manage the policies, related data, and responses to events that occur within the systems we maintain—Kubernetes, c...(212.59 zł najniższa cena z 30 dni)
212.39 zł
279.00 zł(-24%) -
Geared to intermediate- to advanced-level DBAs and IT professionals looking to enhance their MySQL skills, this guide provides a comprehensive overview on how to manage and optimize MySQL databases. You'll learn how to create databases and implement backup and recovery, security configurations, h...(221.43 zł najniższa cena z 30 dni)
221.33 zł
279.00 zł(-21%) -
Get the details, examples, and best practices you need to build generative AI applications, services, and solutions using the power of Azure OpenAI Service. With this comprehensive guide, Microsoft AI specialist Adrián González Sánchez examines the integration and utilization of Az...(162.23 zł najniższa cena z 30 dni)
162.18 zł
209.00 zł(-22%) -
Despite the increase of high-profile hacks, record-breaking data leaks, and ransomware attacks, many organizations don't have the budget for an information security (InfoSec) program. If you're forced to protect yourself by improvising on the job, this pragmatic guide provides a security-101 hand...(214.77 zł najniższa cena z 30 dni)
214.57 zł
239.00 zł(-10%) -
Keeping up with the Python ecosystem can be daunting. Its developer tooling doesn't provide the out-of-the-box experience native to languages like Rust and Go. When it comes to long-term project maintenance or collaborating with others, every Python project faces the same problem: how to build re...(189.29 zł najniższa cena z 30 dni)
188.79 zł
239.00 zł(-21%) -
Bringing a deep-learning project into production at scale is quite challenging. To successfully scale your project, a foundational understanding of full stack deep learning, including the knowledge that lies at the intersection of hardware, software, data, and algorithms, is required.This book il...(227.19 zł najniższa cena z 30 dni)
227.14 zł
279.00 zł(-19%)
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
![Loader](https://static01.helion.com.pl/ebookpoint/img/ajax-loader.gif)
![ajax-loader](https://static01.helion.com.pl/ebookpoint/img/ajax-loader.gif)
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.