SOLID Design in C++
Course Objectives
This “skills-centric” course is about 50% hands-on lab and 50% lecture, designed to train attendees in advanced development skills, coupling the most current, effective techniques with the soundest industry practices. Students will leave this course armed with the required skills to improve their C++ applications using sound coding techniques and best practices.
Using C++ to demonstrate with extensive hands-on labs, this course teaches:
- Design Goals - What are we trying to accomplish?
- Design Smells - How to identify and objectively articulate bad design choices.
- Test Driven Development and minimalistic design and implementation - Avoid overdesign and facilitate design changes.
- Process - What are the best ways to proceed with software development and measure progress.
- Single Responsibility Principle - Only one reason to change
- Open/Close Principle - Open for business, closed for modification
- Liskov's Substitution Principle - a subtype can do more and require less
- Interface Segregation Principle - interfaces are for clients
- Dependency Inversion Principle - don't call us, we'll call you!
Course Prerequisites
This is an intermediate level C++ development course for experienced C++ programmers.
Our Skills Academy Developer Tracks include a wide variety of follow-on courses and learning paths for leveraging C++ for next-level development, testing, security and more. Please see our C++ Developer Training Suite & Learning Paths list of courses, or inquire for recommendations based on your specific role and goals.
Course Agenda
Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most.
Introduction
- Design
- Design Goals
- Process - Good, Bad, Ugly
- Design Smells
- Minimalistic Design and Test Driven Development
- The Company Class
- The Employee Class
Let's Get S.O.L.I.D.
- Single Responsibility Principle
- SRP Lab
- Open/Close Principle
- OCP Lab
- OCP Lab - Refactoring Employee
- OCP - Refactoring Company
- Liskov's Substitution Principle
- LSP Lab
- Interface Segregation Principle
- Interface Segregation Lab
- Dependency Inversion Principle
- DIP Lab
Sorry! It looks like we haven’t updated our dates for the class you selected yet. There’s a quick way to find out. Contact us at 502.265.3057 or email info@training4it.com
Request a Date