Принципы проектирования классов SOLID в PHP
В данном видеокурсе мы познакомимся с принципами проектирования приложений SOLID.
Проектирования - это отдельная и серьезная тема.
Для того чтобы хорошо спроектировать приложение необходимя знания ООП, шаблонов проектирования и качественный опыт разработки.
Но если вы освоите и будете предерживаться всего лишь этих пяти принципов, вы уже выйдете на более качественный уровень разработки приложений.
Соблюдение SOLID принципов позволяет строить архитектуру приложения которое со временем будет проще и дешевле поддерживать и развивать.
Написанный код гораздо проще использовать повторно.
Случается так что задача какого-либо веб-сервиса изначально достаточно простая и бывает так что времени на реализацию мало. Разработчик может не задумываться над тем что сервис может расти, развиваться и обрастать функционалом. Разработчик может не задумываться что может понадобиться перенос сервиса на новый фреймворк. Разработчику может быть вообще безразлично - дали ТЗ - выполнил - работает - заказчик доволен - деньги получены.
Проблемы начинаются когда требуется добавляеть новый функционал, менять старый.
Как пример -
Все знакомы с шаблоном проектирования MVC, но мало кто им пользуется правильно. В зависимости от опыта разработчика, разработчик либо делает "толстые контроллеры" помещая бизнес логику в него, либо делает "толстые модели", помещая бизнес логику в модели. Бывает что и в представления помещают разного рода вычисления. То есть как бы и разграничения есть - тут работа с базой, здесь формирование html кода страницы и контроллер как-бы все это собирает во едино...
Но когда дело доходит до дорабатывания функционала - открываешь контроллер - а там длинное полотно кода, куча разной логики в одном экшене и не понятно что и зачем делается. Приходится длительное время разбираться и заниматься рефакторингом.
В таких приложениях логика не централизована, а размазана по разным файлам.
Если есть классы то зачастую это GOD-classes - многофункциональные монстры.
Если вы думаете что данный подход удел новичков, джуниоров, то спешу вас огорчить!
Подобное можно встретить и в open-sources проектах достаточно популярных скриптов, и в коммерческих скриптах, которые, казалось бы, пишут совсем не глупые люди.
Признаться я и сам умею очень качественно говнокодить, по этому не буду приводить названия проектов популярных скриптов где код написан абы-как ни имен разработчиков, чей код мне приходилось дорабатывать или поддерживать.
Если вы хотите писать качественнй код который в последствии легко будет сопровождать и дорабатывать, то SOLID - это тот необходимый минимум который надо не просто знать, а набить руку и уметь мыслить этими принципами.