Test Driven SOLID Principles

Understand the SOLID principles and how they can help you build better software.

Learn how to apply each of the SOLID principles in a practical way.

Learn how to write tests that validate the behaviour of your code.

Gain practical experience applying SOLID principles and TDD to a sample application.

Learn best practices for designing and building software that is easy to maintain and extend.

Requirements

  • Basic understanding of object-oriented programming principles.
  • Familiarity with any OOPS programming language such as Java or C#
  • Access to any development environment such as Visual Studio or IntelliJ IDEA.
  • Willingness to learn and practice SOLID principles and TDD techniques through hands-on exercises and real-world examples.

Description

In this course, you will learn how to build robust and maintainable software by applying SOLID principles in a test-driven way. SOLID principles are a set of guidelines for designing object-oriented software that is easy to maintain and extend over time. By combining SOLID principles with test-driven development (TDD), you can create code that is not only correct but also flexible and easy to change.

The course will begin with an introduction to the SOLID principles and how they can help you build better software. You will learn about each of the SOLID principles – Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle – and how they relate to each other.

With a solid understanding of both SOLID principles and using TDD, you will start building a sample application using Java and the JUnit testing framework. You will begin by writing tests that describe the behavior of the application, and then fix the test & implement the requirements by applying SOLID principles one by one.

Throughout the course, you will learn how to apply SOLID principles in a practical way, using real-world examples and exercises. By the end of the course, you will have a deep understanding of SOLID principles and familiarity with TDD, and the skills to build robust and maintainable software using these techniques.

Who this course is for:

  • Software developers who want to improve their understanding of SOLID principles and how to apply them in a test-driven way
  • Developers who want to write better code that is easier to maintain and extend over time
  • Technical leads who want to set coding standards and best practices for their team
  • Students and recent graduates who want to learn SOLID principles and TDD as part of their software development education
  • Anybody who wants to learn how to write better software that is more reliable, maintainable, and extensible.

Course content

6 sections • 20 lectures • 1h 29m total lengthExpand all sections

Introduction & Initial Code Setup5 lectures • 14min

  • SOLID Principles Intro01:05
  • Banking App – Deposit Money03:59
  • Banking App – Withdraw Money03:15
  • Banking App – Loan Interest02:46
  • Banking App – Send OTP03:16

Single Responsibility Principle (SRP)3 lectures • 10min

  • SRP Intro03:06
  • Fixing tests & implementing requirement using SRP Part 104:12
  • Fixing tests & implementing requirement using SRP Part 203:10

Open & Close Principle (OCP)3 lectures • 11min

  • OCP Intro02:40
  • Fixing tests & implementing requirement using OCP Part 103:47
  • Fixing tests & implementing requirement using OCP Part 204:33

Liskov Substitution Principle (LSP)3 lectures • 14min

  • LSP Intro04:33
  • Fixing tests & implementing requirement using LSP Part 104:18
  • Fixing tests & implementing requirement using LSP Part 204:47

Interface Segregation Principle (ISP)3 lectures • 24min

  • ISP Intro02:23
  • Fixing tests & implementing requirement using ISP Part 111:19
  • Fixing tests & implementing requirement using ISP Part 210:14

Dependency Inversion Principle (DI)3 lectures • 16min

  • DI Intro03:30
  • Fixing tests & implementing requirement using DI Part 105:47
  • Fixing tests & implementing requirement using DI Part 206:34

Leave a Reply

Your email address will not be published. Required fields are marked *