Я люблю SOLID... Вроде понимаю, как и зачем его использовать. Но вот на досуге решал задачку и сам для себя отмечал принципы, которыми я реально пользуюсь при разработке/проектировании.
Получился такой перечень:
-Высокий уровень абстракции решения задачи понятный даже не программисту (вербозность)
-Тестируемость
-Расширяемость через создание новых файлов (что-то типа OCP)
-Локализация изменений (каждой причине для изменения свой файл) (что-то типа SRP)
SOLID на третьем месте... И до выполнения первых двух принципов к нему не стоит обращаться.
https://github.com/justerest/coffee-machine