Companies Home Search Profile

Master SOLID Principles For Software Design & Architecture

Focused View

Kris Code

2:41:37

20 View
  • 1. Introduction.mp4
    02:58
  • 2. Why you should learn the SOLID principles.mp4
    04:52
  • 1. Introduction to the Single Responsibility Principle.mp4
    01:28
  • 2. Defining software entities and code modules.mp4
    03:15
  • 3. What counts as a responsibility.mp4
    04:00
  • 4. Goals of the Single Responsibility Principle and why it matters.mp4
    05:22
  • 5. Single Responsibility Principle Quiz #1.html
  • 6.1 Course GitHub repository.html
  • 6. Coding exercise. Identifying responsibilities in the code example.mp4
    07:03
  • 7.1 Course GitHub repository.html
  • 7. Coding exercise. Fixing the code to follow the Single Responsibility Principle.mp4
    17:15
  • 8.1 Course GitHub repository.html
  • 8. When and how can we violate the Single Responsibility Principle.mp4
    04:51
  • 9. How the scale of our code affects the Single Responsibility Principle.mp4
    03:18
  • 10. Single Responsibility Principle Quiz #2.html
  • 1. Introduction to the Open-Closed Principle.mp4
    01:43
  • 2. Two approaches to the Open-Closed Principle.mp4
    03:14
  • 3. What the Open-Closed Principle is NOT about.mp4
    01:25
  • 4. Dependency Injection.mp4
    01:46
  • 5. Open-Closed Principle Quiz #1.html
  • 6.1 Course GitHub repository.html
  • 6. Coding exercise. Identifying things in code that cannot be extended.mp4
    04:43
  • 7.1 Course GitHub repository.html
  • 7. Coding exercise. Fixing the code to be extendable.mp4
    14:40
  • 8.1 Course GitHub repository.html
  • 8. What to do if dependency injection is not available. Declarative programming.mp4
    12:01
  • 9. Open-Closed Principle Quiz #2.html
  • 1. Introduction to the Liskov Substitution Principle.mp4
    01:07
  • 2. What the Liskov Substitution Principle applies to.mp4
    02:34
  • 3. Program behavior and what it means to not alter it.mp4
    01:43
  • 4. Liskov Substitution Principle Quiz #1.html
  • 5.1 Course GitHub repository.html
  • 5. Code examples.mp4
    02:40
  • 6. When and how can we violate the Liskov Substitution Principle.mp4
    03:38
  • 7. How the Liskov Substitution Principle relates to abstractions.mp4
    02:16
  • 8. Liskov Substitution Principle Quiz #2.html
  • 1. Introduction to the Interface Segregation Principle.mp4
    01:10
  • 2. Coupling. What it means to depend on code.mp4
    03:55
  • 3. What is a public interface.mp4
    01:33
  • 4. Comparing Single Responsibility and Interface Segregation Principles.mp4
    05:14
  • 5. Interface Segregation Principle Quiz #1.html
  • 6.1 Course GitHub repository.html
  • 6. Code example.mp4
    04:32
  • 7. Why the Interface Segregation Principle is important.mp4
    02:46
  • 8. Interface Segregation Principle Quiz #2.html
  • 1. Introduction to the Dependency Inversion Principle.mp4
    01:02
  • 2. What the Dependency Inversion Principle is about.mp4
    03:40
  • 3. What dependency inversion means.mp4
    07:04
  • 4. Dependency Inversion Principle Quiz #1.html
  • 5.1 Course GitHub repository.html
  • 5. Coding exercise. Identifying dependencies in the code example.mp4
    02:51
  • 6.1 Course GitHub repository.html
  • 6. Coding exercise. Rewriting the code to follow the Dependency Inversion Principle.mp4
    06:26
  • 7. Is it possible to make all of our code modules independent.mp4
    01:36
  • 8. What modules are best to depend on.mp4
    00:56
  • 9. Dangers of over-applying the Dependency Inversion Principle.mp4
    01:49
  • 10. How the scale of our code affects the Dependency Inversion Principle.mp4
    02:09
  • 11. Dependency Inversion Principle Quiz #2.html
  • 1. Final lecture.mp4
    07:02
  • Description


    Guide to mastering SOLID principles for software design & architecture to write maintainable, scalable, and robust code

    What You'll Learn?


    • You'll learn why, when, and how you should apply the SOLID principles to write higher quality code
    • In addition to knowing when to apply the SOLID principles, you'll also learn when and how to violate them, so you could create better overall code design
    • Understand the basic foundation of software architecture
    • Write better code without having to memorize design patterns
    • Learn how to identify poorly written code and robust quality code
    • Learn core ideas that describe code quality, like coupling and cohesion
    • Take your code quality to the next level and become a better software engineer
    • Learn why the SOLID principles matter and how to apply them to real-world problems

    Who is this for?


  • People who care about the quality of their code and want to improve it
  • Everyone who wants to start learning about software architecture
  • Beginners who want to take their skills to the next level, but don't know where to start
  • More experienced developers who want to strengthen their abilities
  • What You Need to Know?


  • Basics of object-oriented programming, knowing what classes, inheritance, and interfaces are
  • More details


    Description

    In this course you will learn why SOLID principles are important and how to apply them to write maintainable, scalable, and robust code.

    SOLID is an acronym for 5 software design principles that were refined over a long period of time by multiple software engineers to address the core recurring problems in software development.

    Take your code quality to the next level

    Code quality is important to have, and improving code quality is something that all software engineers should strive for. Luckily, writing quality code is a learnable skill, but it's sometimes hard to know where to start or what to learn next.

    Do you know any programming language, but don't know what to do next? Maybe you are more experienced and are looking to add more to your arsenal or refresh your knowledge? If so, then learning the SOLID principles is a very good next step for you.

    It doesn't matter if you're a beginner or have a background in software, the SOLID principles will make you a better software developer and will make you stand out from the crowd.

    Build a SOLID foundation for software design and architecture

    The goal of this course is to help you understand the core ideas behind software design and architecture that are used by experienced software engineers and architects. All without requiring you to memorize a bunch of object-oriented programming (OOP) design patterns.

    Patterns only help you in specific situations, but when you encounter a new situation, memorized patterns cannot help you if you don't understand how they work. That's why in this course we'll be focusing on ideas behind the principles, what and why they are trying to achieve, and, most importantly, how they are trying to achieve it.

    After taking this course you'll level up your programming skills and will be able to deal with code design problems that are new to you.

    Acquire long-lasting skills

    In this course I'll present you code examples in Java programming language. However, my goal is not to teach you Java or any other technology, my goal is to teach you the thought process behind writing better code and applying the SOLID principles.

    At the end of this course you'll have skills that won't go out of fashion with the next popular technology change. SOLID principles have passed the test of time and are here to stay.

    Course overview

    Together, in this course we will explore real-world problems that software developers run into on a daily basis instead of studying textbook examples that barely represent reality.

    You'll find a mix of relevant theory, practical coding exercises that will be done on-screen, and quizzes for you to take on your own. The quizzes are designed to convey the most important things, and you'll even be able to use them as a cheat sheet later.

    On top of all this, the course has as little technical jargon as possible and I try to explain things in everyday language.

    The course is divided into 5 sections, one for each of the principles:


    • Single Responsibility Principle

    • Open-Closed Principle

    • Liskov Substitution Principle

    • Interface Segregation Principle

    • Dependency Inversion Principle


    In each section we cover the required theory, and after that you are presented with a quiz that helps you better remember the theory before proceeding to a practical code example. After practical code examples we have a few more lectures to fill in any remaining gaps or explore things by looking at the bigger picture, we also explore when it would make sense to intentionally go against the SOLID principles for a better overall code design. The last part of each section is another quiz to further solidify your newly acquired knowledge.

    By the end of this course you will be able to identify common problems in code, and you'll know how to correct them.

    So, with all being said, if you're looking to improve your skills and write better code, look no further, because this course is for you.

    Who this course is for:

    • People who care about the quality of their code and want to improve it
    • Everyone who wants to start learning about software architecture
    • Beginners who want to take their skills to the next level, but don't know where to start
    • More experienced developers who want to strengthen their abilities

    User Reviews
    Rating
    0
    0
    0
    0
    0
    average 0
    Total votes0
    Focused display
    I'm a professional software engineer and I like to focus on creating code that's easy to work with. I strongly believe that writing code doesn't have to be difficult, or mysterious, or messy as some people make it out to be, so I aim to teach people how to use tools and apply best practices to make software development easier.Since I started programming in my early teenage years I've worked on mobile and desktop apps, games, web applications, and had a chance to explore various software engineering practices, and my goal is to share it all with you.To me, the beauty lies in code that is explicit, and where appropriate pieces are in their own logical units, which are connected in ways that don't make them too dependent on each other, like a lego set where pieces are connected, but you can swap them out at any moment.The goal of my courses is to help you with things that are relevant in the real world.
    Students take courses primarily to improve job-related skills.Some courses generate credit toward technical certification. Udemy has made a special effort to attract corporate trainers seeking to create coursework for employees of their company.
    • language english
    • Training sessions 39
    • duration 2:41:37
    • Release Date 2023/12/28

    Courses related to Design Pattern

    Courses related to SOLID Principles