SOLID

SOLID Code with Emergent Design - The Final Chapter

SOLID Code with Emergent Design – The Final Chapter

This wraps up the series of posts on SOLID Code with Emergent Design. Dependency Inversion Principle “Separate interfaces so callers are only dependent on what they actually use” The SOLID principles really boil down to managing your dependencies between classes. And, by “manage”, we really mean “get rid of those suckers.” Removing dependencies (aka, de-coupling) […]

SOLID Code with Emergent Design - The Other ISP

SOLID Code with Emergent Design – The Other ISP

This is the 5th post on SOLID Code with Emergent Design. Interface Segregation Principle “Separate interfaces so callers are only dependent on what they actually use” Or, more simply… Avoid “fat” interfaces This principle is about breaking down our interfaces to be highly cohesive. You might have a server that provides methods to a number […]

SOLID Code with Emergent Design - The L

SOLID Code with Emergent Design – The L

This is the 4th post on SOLID Code with Emergent Design. Liskov Substitution Principle "Derived classes must be usable through the base class interface without the need for the user to know the difference" This principle is about following good techniques for inheritance. It says code that uses the base class should not need to […]

SOLID Code with Emergent Design - O, I get it

SOLID Code with Emergent Design – O, I get it

This is the 3rd post on SOLID Code with Emergent Design. Open/Closed Principle "Modules should be open for extension, but closed for modification" The idea here is that adding new features should always be able to be handled by simply adding new code. It should never require modifying existing code. The benefit is that if […]

SOLID Code with Emergent Design - Gimme an S

SOLID Code with Emergent Design – Gimme an S

See Part 1 of this series on how the SOLID principles can help us follow emergent design without the Big Up Front Design and without the code rot. Single Responsibility Principle "A class should have one, and only one, reason to change" In software, we tend to enjoy grouping things together, but really what we […]

SOLID Code with Emergent Design - Part 1

SOLID Code with Emergent Design – Part 1

Emergent design can quickly degrade into un-maintainable hack & slash yuckness without a set of guiding principles to keep you in check. Fortunately, Robert Martin’s SOLID Principles are just what the doctor ordered for saving your app from an early demise. By making sure your code continues to conform to these principles with each new […]