What is SOLID principal? [ AF - Week 01 - Y3S1 ]

 Hello Everyone ๐Ÿ˜€!


S.O.L.I.D. Principals

SOLID is about five important design patterns which are important for Object Oriented Programming.These principles were introduced by Robert C. Martin, in his 2000 publication paper Design Principles and Design Patterns.
These principles are make software designs more understandable, easier to maintain, easier to extend , reusable, scalable, easy testable code-base and easier to collaborate.
Single responsibility
This principle states that every module,function,API or class should have responsibility over a single part of the functionally provided by the software.This principle refers to the quote " Do one thing and do it well ".In another words "A class should have on and only one reason to change meaning that a class should have only one job."

Open-close 
In open-close principal states that software entities (i.e:classes,modules,functions)should be open for extensions, but closed for modifications.
 
Liskov substitution
In Liskov substitution principle states that if 'a' is a subtype of 'A', then  objects of type 'a' may be replaced with objects of type 'A'. More generally it states that object in a particular program should be replaced with instances of their subtypes without alternating the correctness of that program.
 
Interface segregation
In Interface segregation principle states that no client should be forced to depend on methods it does not use.In another words do not add additional functionality to an existing interface by adding new methods.Instead create a newest interface & let a particular class implement multiple interface if needed.
 
 
Dependency inversion
Dependency inversion principle is a way to decouple software modules.This principle states that,High level modules should not depend on low level modules.Both should depend on abstractions and Abstraction should not depend on details.Details should not depend on abstractions.

 
 
Apart from these principles, few methods on how to approach a solution for a real business problem as well as how to make best practices while coding for a specific task.(Unit testing, maintaining code quality, version controlling, continuous integrity etc. )
 I understood that I have to do some self study about javascript, Angular, React.js, Node.js, MongoDb and Docker as well.So I started it from javascript.
 
 

 

Thank you for visiting my blog !


Comments