In today's lesson, we're gonna discuss the SOLID principles in detail, where each letter refers to one good practice in software development. Our explanations will contain brilliant illustrations from Deric Bailey (CC-SA 3.0 license) and, of course, practical examples. This article is more advanced and assumes the knowledge of at least Basic Good Practices for Software Design. In addition to SOLID, there's also a series of bad practices that we should avoid, STUPID. You can find the link to it at the end of the article.
SOLID, an acronym, sums up the most important best practices. If you follow them, your applications will have a potential of the quality software. Derick Bailey created a perfect series of illustrations for the SOLID practices to help you remember them. We'll explain the principles in detail, let's say what the acronym means first:
- Single Responsibility Principle
- Open/closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
Image: Mark Nijhof, Twitter
"Software development is not a Jenga game." If you don't know Jenga, it's a game about building a tower of blocks as high as possible until it falls down. Software development mustn't be only about functionality, but also about maintaining the architecture, the support system, preventing the application from falling apart.
SOLID - Single responsibility principle
Image: Derick Bailey, CC-SA 3.0
...End of the preview...
You've come here and that's great! We believe that the first lessons showed you something new and useful
Do you want to continue the course? Go to the premium section.
- Unlimited and permanent access to individual lessons.
- High quality IT knowledge.
- Skills to help you get your dream and well-paid job.
Requested article covers this content:
Practical examples on the SOLID best practices, the SRP, Open/closed, Liskov substitution, Interface segregation and Dependency Inversion principles.
You gain points by supporting our network. This is done by sending a helpful amount of money to support the site, or by creating content for the network.