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

Last updated