What are CORE Principles?
The CORE Principles Define Thought Concepts
… That Creates Designs That are Scalable and Extensible
The “Core Thought Principles” shapes
the solution design “Paradigm of Thought”
S.O.L.I.D Design Principles created by Robert Martin were presented in the early 2000’s and later organized into the acronym S.O.L.I.D. by Michael Feathers create the base for the CORE Principles.
The S.O.L.I.D. Design Principles along with the DRY Principle represent the most important development thought principles.
The Seven CORE Principles:
Single Responsibility Principle (SLP) – A software entity should have one and only one reason to change.
Open / Closed Principle (OCP) – A software entity should be open for extension but closed for modification.
Liskov Substitution Principle (LSP) – Methods that use References to base classes must be able to use objects of derived classes without knowing it.
Interface Segregation Principle (ISP) – Clients of Interfaces should not be forced to Implement Interface Contracts they do not require.
Dependency Inversion Principle (DIP) – Higher Level Modules should Not Depend on Lower Level Modules. Lower Level Modules should depend on Higher Level Module Abstractions. Both should depend on Abstraction details.
Don’t Repeat Yourself Principle (DRY) – Every piece of Code must have a Single, Unambiguous, representation within a Software Entity.
Inversion of Control Principle (IOCP) – Dependency Instantiations Should be Managed at the Assembly Level using an Object Factory Container
The following two tabs change content below.
I am a Principal Architect at Liquid Hub in the Philadelphia area specializing in Agile Practices as a Certified Scrum Master (CSM). I use Test Driven Development (TDD) and Acceptance Test Driven Development (ATDD) with Behavior Driven Development (BDD) as my bridge to Agile User Stories Acceptance Criteria in a Domain Driven Design (DDD) implementing true RESTful services