A Developer’s Principle Design Series
The Modern Developer’s daily development practices include the Core and Code Principles of good Object Oriented Programming.
The Principle Design Series will concentrate on the
Seven Core design principles:
-
SRP – The Single Responsibility Principle
-
OCP – The Open / Closed Principle
-
LSP – The Liskov Substitution Principle
-
ISP – The Interface Segregation Principle
-
DIP – The Dependency Inversion Principle
-
DRY – The Don’t Repeat Yourself Principle
-
IOCP – The Inversion of Control Principles
Each of the Principle Design Series Posts
… Will Concentrate on One Principles
The post will cover the selected core principle in the following format:
-
A clear definition of the principle
-
The justification for the implementation of the principle
-
A real-world description of a violation
-
Key code smells that identify the violation
-
A violation code example
-
The code example that refactors the design principle violation
These concepts will be presented in the following Developer’s Principle Design Series posts:
-
The Single Responsibility Principle – Just because you can doesn’t mean you should
-
The Don’t Repeat Yourself Principle – Repetition is the root of all software evil
-
The Open / Closed Principle – Brain surgery is not required when putting on a hat
-
The Liskov Substitution Principle – If it looks like a Duck, quacks like a Duck, but needs batteries – You probably need a better abstraction
-
The Interface Segregation Principle – Tailor your Interfaces to the Client’s specific requirements
-
The Dependency Inversion Principle – Would you solder a lamp directly into the electrical wiring in a wall?
-
The Inversion of Control Principle – Manage all your toys in one place
The Modern Developer’s Wisdom Pearl # 107:
Technical Insanity
Applying the Same Failing Process Over and Over
… Expecting a Different Result
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
Latest posts by Brad Huett (see all)
- DevOps: A Bridge to Your DevOps Culture - March 25, 2016
- Embracing Test Driven Development (TDD) - March 25, 2016
- DevOps: Delivering Agile Projects - March 25, 2016