Understanding SOLID: Learn SOLID Design for C# Course
What you'll learn
- SOLID Design Principles
- How to recognize and correct design smells
- How to use design patterns to address common design issues
- Minimalistic design and implementation in line with Agile and Extreme Programming
- How to design great software
Requirements
- Experience coding in C#
- Experience with object-oriented design
Description
This course dives into the aspects of software engineering that produce both great and failed software. We start off by looking at our goals for design, the common smells, process and the SOLID principles. This course reinforces best practices using the experiences of the course author and instructor, Chuck McCullough. As a practicing software engineer for over 30 years and having completed dozens of projects, he has the insights to cut through the theoretical and jump right to the important stuff!
Why choose this course? Microsoft uses Chuck's courses to train their developers internally. Chuck's courses have been delivered to thousands of developers in-person, online and via Udemy, including major corporations, government agencies and military around the world.
There is no silver bullet or magic formula for great design. Design is part art and part science and many design concepts are difficult to explain and grasp. This course focuses on the issues of design in as simple and concise way possible. Chuck also communicates that it is not necessary to implement all SOLID principles to have a great design. In fact, many designs are overly complicated because the designers were unbending in SOLID principles - this is one of the many design smells that Chuck addresses in the course.
Using C# to demonstrate with lots of 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!
This course is full of examples and hands-on opportunity along with 24/7 access to help and immediate feedback on labs.
Who this course is for:
- Developers responsible for software design
- C# Developers wanting to understand how to best develop applications
Instructor
Chuck is a professional software developer with over 30 years of experience. He began his career developing C applications for a large client in the financial industry.
In 1989, Chuck joined IBM developing and testing APIs for a large project. Most of this work was in C++.
In 1992, Chuck started McCullough & Associates, a professional services and training organization. Since then, M&A has provided development and training services to companies, governments, and universities around the world.
As a software architect, Chuck is proficient in Java, C#, C++ and many other languages and platforms. He is a strong practitioner of best practices, such as test-driven, iterative, pattern rich object-oriented application development.
Chuck has trained thousands of developers all over the world.