> For the complete documentation index, see [llms.txt](https://hanfak.gitbook.io/workspace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanfak.gitbook.io/workspace/general-paradigms/principles/solid.md).

# SOLID

## SOLID

* set of principles to help manage complexity, improve maintainability and avoid big balls of mud
* <https://completedeveloperpodcast.com/episode-142/>
* <http://blog.cleancoder.com/uncle-bob/2020/10/18/Solid-Relevance.html>

How to organise your classes

* <https://blogs.msdn.microsoft.com/cdndevs/2009/07/15/the-solid-principles-explained-with-motivational-posters/>
* <https://www.yegor256.com/2014/11/20/seven-virtues-of-good-object.html>

## Anti or Issues

* Came from the ideas in the book: The Design of the UNIX Operating System (Bach)
  * it was discussing SOLID at a functional level - not at a system or as OOP calls it "Class Level"
* Applying these principles, can lead to more comlex code and more code to maintain
  * There is a trade off, and the need to find out when to apply these principles to get their benefits needs to be known before blindly following them.
  * This leads to overengineering, which is a big problem not only in terms of the code produced but the time spent on something that has no use instead of extra features
* These are principles, and they are not well formed, thus there are different opinions to what they mean and how they are implemented
  * These are seen as hard rules and should be followed, but instead they should be patterns and used depending on circumstances
* <https://www.yegor256.com/2017/03/28/solid.html>
* <https://www.tonymarston.net/php-mysql/not-so-solid-oo-principles.html>
* <https://towardsdatascience.com/why-solid-principles-are-not-a-solid-solution-for-software-design-fa71b6017ed6>
* <https://dannorth.net/2021/03/16/cupid-the-back-story/>
* <https://youtu.be/tMW08JkFrBA> Kevlin Henney - The SOLID Design Principles Deconstructed
* <https://jeremydmiller.com/2022/08/10/putting-solid-into-perspective/>

### Alternatives

* <https://www.slideshare.net/Kevlin/introducing-the-fluid-principles>
  * <https://www.youtube.com/watch?v=tMW08JkFrBA>
