Course Name
Course Code : CSW28
Venue Details
Postal Code : 50470
Session Dates
Duration: 3 days (21 hours)
The Advanced C++ Software Design Training focuses on designing robust, scalable, and maintainable C++ applications using modern C++ standards and proven software design principles. The course emphasizes architecture, design patterns, SOLID principles, dependency management, and testable design, rather than just language syntax.
Evolution of C++ design practices
Modern C++ vs legacy design
C++ Core Guidelines
Design for maintainability and longevity
Single Responsibility Principle in C++
Open–Closed Principle using templates and polymorphism
Liskov Substitution Principle pitfalls
Interface Segregation using abstract classes
Dependency Inversion and abstraction layers
Ownership models and boundaries
RAII as a design tool
Smart pointer design strategies
Value semantics vs reference semantics
Avoiding shared ownership pitfalls
Designing clean and stable interfaces
Header file best practices
ABI stability and versioning
Error handling in public APIs
Documentation-driven design
Modern implementations of classic patterns
Factory, Strategy, and Observer patterns
Builder and Prototype patterns
Policy-based design
CRTP (Curiously Recurring Template Pattern)
Template-based design patterns
Concepts and constraints (C++20)
constexpr and compile-time computation
Type traits and metaprogramming for design
Reducing runtime overhead through compile-time desig
Reducing compile-time dependencies
Forward declarations and Pimpl idiom
Dependency injection in C++
Plugin and modular architectures
Managing large codebases
Designing thread-safe components
Ownership and synchronization strategies
Task-based vs thread-based design
Avoiding data races and deadlocks by design
Designing for scalability
Exception safety levels
Designing for failure
Error codes vs exceptions
std::optional, std::variant, std::expected
Designing reliable recovery strategies
Designing for cache efficiency
Allocation-aware design
Zero-cost abstractions
Trade-offs between abstraction and performance
Measuring design impac
Designing for unit testing
Mocking and fakes in C++
Separation of concerns
Refactoring strategies
Code reviews and design critiques
Applying design principles and patterns
Architecture documentation
Design review and improvement
Best practices discussion
Hands-on Exercises
Summary and Conclusion
Mode of Delivery : The event can be attended both online and at nearby ProgNXT classroom by Individual Professionals and Corporate Employees as per the seat availability. Please Contact Us at [email protected] for checking the seat availability
Audience : We have a global audience that logs in to using their own computers to work hand in hand with our world-class instructors.
Assessment : Each training course will have ProgNXT Assessment at the end.
Certification : After successful passing of ProgNXT Assessment, ProgNXT Certification will be provided, which has got acceptance in 55+ Countries.
| Global Region | Location | Start Date | End Date | Action |
|---|---|---|---|---|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |