πŸ“–
System Design
  • Home
  • Learn System Design Daily
  • System Design Steps
  • List of design questions:
  • My System Design Interview Checklist
  • CheatSheet
  • Programming Language Jargons
  • Scaleable Design
  • Agile Scrum
  • Uber
  • Gmail System Design
  • Distributed Rate Limiting
  • Audio Search Engine
  • Code Style and Review
  • Calling App Design
  • Low Level Design: Payment Tracking App
  • Machine Coding :Cache
  • Interview Advice
  • URL Shortner
  • Unique ID in Distributed Systems
  • Load Balancing Algorithm
  • API Architecture
  • Desgin Practise for Rest API
  • Performance Practise for API
  • API Gateway
  • API Security Hacks
  • Distributed Design Patterns
  • Fault Tolerance in Distributed Systems
  • Microservice Communication Design Patterns
  • Zipping /Compression
  • Database
  • Mongo DB
  • SQL
  • PostgreSQL
  • Database Designs
    • Designing a location based database
  • Building Database
  • Design Patterns
    • Microservice Architecture 10 Design Patterns
    • Interaction Patterns
  • Locale.ai
  • Version Control
  • Caches / Caching
  • High Level Design
  • Low Level Design
  • Containers, Docker
  • Docker
  • Linux Directories
  • Design Pattern for Software Architect
  • S.O.L.I.D Principles
  • Monitoring and Telemetry for Production System
  • C4 model
  • LRU Cache
  • VSCode
  • Chatbot Architecture
  • Streaming API Repsonse
  • Latency in System Design
  • Cloud
    • Azure
    • AWS
  • Builds
    • Jenkins
Powered by GitBook
On this page

Was this helpful?

S.O.L.I.D Principles

PreviousDesign Pattern for Software ArchitectNextMonitoring and Telemetry for Production System

Last updated 3 years ago

Was this helpful?

Violating DRY in code ??

S.O.L.I.D is an acronym for the first five object-oriented design(OOD) principles .These principles, when combined together, make it easy for a programmer to develop software that are easy to maintain and extend. They also make it easy for developers to avoid code smells, easily refactor code, and are also a part of the agile or adaptive software development.

  1. SRP The Single Responsibility Principle: β€” a class should have one, and only one, reason to change, meaning that a class should have only one job.

  2. OCP The Open Closed Principle: β€” you should be able to extend a class’s behavior, without modifying it.

  3. LSP The Liskov Substitution Principle: β€” If any module is using a Base class then the reference to that Base class can be replaced with a Derived class without affecting the functionality of the module.

  4. ISP The Interface Segregation Principle: β€” make fine grained interfaces that are client specific.

  5. DIP The Dependency Inversion Principle β€” depend on abstractions not on concrete implementations.

Video Playlist :

Reference :

  • Github repo

  • Each Branch of the repository is a Implementation

https://youtube.com/playlist?list=PL9sRG84iY01HXb8BiMghlGG0VH_tENssx
https://github.com/wtvamp/ThemeParkSOLIDApp