Solid Architecture: S.O.L.I.D Principles
Domain Driven Design (DDD) and Service Oriented Architecture (SOA) can basically be defined as aggregate functions of principles, patterns, and most importantly Object-oriented concepts. In order to build a highly scalable and reliable architecture, it is very important for us to follow these important design patterns, and when they are coupled with a set of good principles, results in a great software. One such set of rules that should not be overlooked are S.O.L.I.D principles, first coined by Robert C. Martin.
| Single Responsibility Principle (SRP) | A class should have only one reason to change. |
| Open/Closed Principle (OCP) | Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification |
| Liskov Substitution Principle (LSP) | Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T. |
| Interface Segregation Principle (ISP) | The dependency of one class to another one should depend on the smallest possible interface. |
| Dependency Inversion Principle (DIP) | Depend upon abstractions (interfaces), not upon concrete classes. |
There are plenty of resources available on the Internet on these principles. So far, I really liked Steven Bohlen’s video presentations on dimecasts.net.
Also, I recommend the following books to get a good picture on building overall good software.
|


