О сложном просто или программирование на .NET
В этом видео про: calabonga, программирование, обучение, tutorial, SOLID, ООП, OOP, объектно-ориентирование программирование, патерны, design patterns, Single, Responsability, Open Close, Liskov Substitution, Interface Segregation Principle, Dependecny Injection

В этом видео про: calabonga, программирование, обучение, tutorial, SOLID, ООП, OOP, объектно-ориентирование программирование, патерны, design patterns, Single, Responsability, Open Close, Liskov Substitution, Interface Segregation Principle, Dependecny Injection
Как-то не получилось у меня с первого раза найти информацию о том, как же надо применять SOLID на практике. Вот и решил самостоятельно написать статью, но...

Как часто вам необходимо знать, какие действия были произведены с определенной сущностью? Например, в какой момент поменялось значение какого-либо свойства?

Прежде чем начать реализовывать бизнес-логику какого-либо приложения, сайта, программы, обычно приходится проделать очень много рутиной работы. А при использовании "правильного" подхода программирования, это рутина многократно увеличивается. В этой статье повествуется о том, как можно сократить количество рутины.
Построение сложных и не очень сложных систем задача не тривиальная. Причем сложность разработки увеличивается прямо пропорционально числу разработчиков, которые в ней участвуют. При таких условиях разработки, принято придерживаться предопределённых правил, шаблонов и договоренностей, не говоря уже о паттернах проектирования, общеизвестных методологий по разработки ПО и, вообще, принципах ООП.

Очень часто в своей работе мне приходилось использовать перечисления (Enum) в качестве информации о состоянии объекта. И всё бы вроде как хорошо, но есть некоторое неудобство, при таком подходе логика по проверке состояния (validation) объекта при смене статуса "размазывалась" по всей системе. И часто получалось, что отследить все правила перехода от одного состояния к другому практически непосильная задача, особенно если проект разрабатывает группа программистов.

Никому никогда не говорил и не буду говорить, что программировать легко, потому что это неправда. Программировать совсем не просто!
Допустим, что вы потратили не один месяц на написание своей программы: поиск идеи, изучение рынка, поиск конкурентов, программирование, отладка, тестирование, публикация и, возможно, еще какие-нибудь дополнительные телодвижения. В общем, вы проделали не малый путь, но смею вас заверить, что это даже не половина пути к финансовому успеху программного продукта. Это всего лишь начало большого приключения под названием "Монетизация кода".
Особых споров по этому поводу нет, но дабы расставить все точки на "Ё" поговорим на эту тему.