Clean Architecture

Clean Architecture is a software design philosophy that aims to create systems that are:

Key Concepts:

Dependency Rule:

SOLID Principles

SOLID is an acronym for five design principles intended to make software designs more understandable, flexible, and maintainable.

  1. Single Responsibility Principle (SRP):
  2. Open/Closed Principle (OCP):
  3. Liskov Substitution Principle (LSP):
  4. Interface Segregation Principle (ISP):
  5. Dependency Inversion Principle (DIP):

Test-Driven Development (TDD)

Test-Driven Development (TDD) is a software development approach where tests are written before the code that makes the tests pass.

Process:

  1. Red: Write a test for a new function or improvement. Initially, the test will fail since the function doesn’t exist yet.