Software Architecture: Meta and SOLID Principles in C#

Learn how to develop maintainable software systems applying Design Patterns based on Meta and SOLID Principles

3.90 (1272 reviews)
Udemy
platform
English
language
Software Engineering
category
instructor
Software Architecture: Meta and SOLID Principles in C#
8,570
students
5 hours
content
Jul 2020
last update
$79.99
regular price

What you will learn

Determine if a class has too many responsibilities

Apply SRP to make classes more granular

Determine the smell of duplication caused by OCP violation

Apply OCP to remove or prevent duplications

Make client's lives more enjoyable by applying ISP, making interfaces more granular

Determine LSP violations which break client's code

Apply LSP to come up with proper inheritance

Apply DIP to develop plugin architecture

Build your own simple IoC-Container

Build clean API in C#

I'm tired to list all the stuff you'll be able to do after this course )))

Why take this course?

SOLID is an acronym which stands for SRP, OCP, LSP, ISP and DIP. These five acronyms in their turn stand for:   

  • Single Responsibility Principle   

  • Open/Closed Principle   

  • Liskov Substitution Principle   

  • Interface Segregation Principle   

  • Dependency Inversion Principle

In this course, you’ll learn how to apply meta and SOLID principles so that your application will live a long healthy life. It means you are going to learn how to write code of the high quality: readable, understandable and reliable.   

Improve your knowledge in object-oriented programming   

  • Understand the meta principles on which all the other development principles are based   

  • Understand the symptoms of code defects   

  • Learn the foundations of SOLID principles

  • Learn how to detect the violations of SOLID principles and how to fix the problems

  • Learn how meta principles and SOLID principles are related to each other and how to find the balance between them   

Foundations of writing object-oriented code

Despite the fact that C# is a very rich on features language, it's very common to see poorly designed and implemented applications in a real world. Language by itself does not guarantee that the architecture of an application will be great. In order to design and build maintainable software, we need to understand the principles of software development. This video course is exactly about how to achieve clean and maintainable software.   

You probably have already heard the following well-known statement: most code sucks. Well, this course is all about how to produce code which doesn't suck.   

Owning skills of producing a well-designed and well-implemented types is the prerequisite for the other developers to treat you as a decent professional.   

Content and Overview   

This course is aimed at middle and senior developers. Solid experience in C# is required.   

There are plenty of code examples throughout this course so that you will learn both theoretical and practical material.   

Starting with SOLID principles we will go further to the meta-principles. Going through the SOLID principles, you’ll also learn about the related patterns. Then we will get to the problem of contradictions between different principles. You’ll learn about the relationships between SOLID principles and meta principles.   

In general, you’ll learn in this course:   

  • SRP   

  • OCP   

  • LSP   

  • ISP   

  • DIP   

These are the SOLID principles. You’ll learn the background problems that can be solved by particular principle, you’ll see the demonstrations in code, you’ll learn the related patterns to every principle.   

Learning DIP you’ll in addition learn what is Dependency Injection, Inversion of Control, IoC-Containers and what are the architectural implications of DI.   

Here are other topics you’ll learn in the course:   

  • DRY – don’t repeat yourself   

  • KISS – keep it simple stupid   

  • YAGNI – You Ain’t Gonna Need It   

  • SoC – separation of concerns   

  • CQS – command query separation   

  • Law of Demeter   

  • Principle of Least Astonishment   

  • Information Hiding and Encapsulation   

  • API Development Principles   

  • Contradiction between SOLID and YAGNI   

  • Contradiction between OCP and YAGNI   

  • What is Architecture and Design

Teaching Approach

No fluff, no ranting, no beating the air. I respect your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth.

Take this course, and you will be satisfied!

------------------------------------------------------------

Keywords related to the course:

  • Software Architecture

  • SOLID Principles Tutorial C#

  • SOLID Tutorial C#

  • Software Design

  • SOLID Principles

  • SRP, OCP, LSP, ISP, DIP

Screenshots

Software Architecture: Meta and SOLID Principles in C# - Screenshot_01Software Architecture: Meta and SOLID Principles in C# - Screenshot_02Software Architecture: Meta and SOLID Principles in C# - Screenshot_03Software Architecture: Meta and SOLID Principles in C# - Screenshot_04

Our review

🏆 **Course Overview:** The course has been rated at a global average of 3.90 by recent reviewers. The general consensus among the reviews is that the course provides valuable knowledge, particularly regarding SOLID principles and software design patterns. However, there are some recurring concerns regarding the practical application of the concepts taught and the delivery of the course content. **🌱 Pros of the Course:** - **Comprehensive Coverage:** The course offers a thorough introduction to the SOLID principles and other design patterns, which many reviewers found in-depth and well-explained. - **Quality Content:** The content is considered to be of high quality, with clear explanations that help in understanding complex concepts. - **Real-World Examples:** Many reviewers appreciated the real-world examples provided, as they make the learning experience more relatable and practical. - **Audio Quality:** The audio is generally clear and at a comfortable volume for most lectures. - **Pacing:** The course's pace and delivery style are well-received, with many finding it easy to follow along. - **Cultural Relevance:** Some reviewers highlighted the appreciation for subtleties in English within the context of the course, which aids in learning. - **Diverse Learning Styles:** The course is praised for catering to different learning styles by asking questions and encouraging active thinking. **🚫 Cons of the Course:** - **Practical Application Concerns:** Reviewers have indicated that there are too few practical exercises or real-life examples, which makes it difficult to apply the knowledge in a hands-on manner. - **Inconsistent Audio Quality:** A few lectures have poor audio quality, making them harder to understand. - **Subtitle Issues:** Some reviewers pointed out that subtitles can be messy and sometimes misleading. - **Complex Examples:** Certain complex examples are difficult to follow and would benefit from being broken down into smaller parts for better understanding. - **Code Example Clarity:** There is a need for more clarity in how code examples relate to the visual examples provided, as some reviewers reported confusion when different objects were used in the code versus what was shown visually. - **Content Organization:** Some find the course's organization of topics and the flow from one concept to another less than ideal. - **Documentation Quality:** There are requests for clearer documentation and better examples that could make the course more complete. **📚 Additional Feedback:** - **Prioritization of Topics:** Some reviewers suggest adding a section on design patterns before introducing the SOLID principles to provide a broader context. - **Technical Issues:** A few technical issues, such as volume fluctuations and poor video quality in some instances, have been reported and could be addressed for a smoother learning experience. **🔍 Course Structure and Delivery:** The course is structured to introduce foundational concepts before moving on to more complex topics, including the SOLID principles and various design patterns. The delivery is praised for its explicitness and the use of real-world examples. However, the inconsistency in audio quality across different lectures could be a point of improvement. **📢 Final Verdict:** Overall, the course is highly rated for its comprehensive content and excellent explanations but falls short in terms of practical application and a few technical aspects. It is recommended for individuals interested in software design and SOLID principles but would benefit from addressing the cons mentioned above to enhance the learning experience.

Charts

Price

Software Architecture: Meta and SOLID Principles in C# - Price chart

Rating

Software Architecture: Meta and SOLID Principles in C# - Ratings chart

Enrollment distribution

Software Architecture: Meta and SOLID Principles in C# - Distribution chart
1236992
udemy ID
5/31/2017
course created date
10/14/2019
course indexed date
Bot
course submited by