Скучали?
А у меня снова Предметно-ориентированное проектирование - в этот раз на примере жирафов, утконосов и legacy-кода рыб.
А также через всю статью проносится очень важная мысль, которую многие, кто начинает знакомиться с DDD, почему-то упускают: DDD не про архитектуру, использование паттернов и наличие чистого кода. DDD про общение между людьми с обеих сторон бизнес-процесса - проектных менеджеров и разработчиков, про то, что не должно быть стены непонимания между этими группами. А чистый код и качественная архитектура - это следствие правильно выстроенного языка, при помощи которого происходит взаимодействие и описание бизнес-процессов.
Продолжаем тему Предметно-ориентированного программирования.
За последние пару недель я отсмотрел штук 5 докладов по теме и могу сказать что доклад Андрея Моисеева наилучшим образом посвящает вас в тонкости темы. Начиная от проектирования ПО, нарастания сложности и перехода в состояние, когда все написано, но ничего не работает - докладчик переносит вас в мир проектирования ПО на основе выделенных контекстов, слоев взаимодействия и гексагональной архитектуры, не забывая в конце упомянуть и про то, какие ошибки чаще всего совершаются при попытке проектирования, в том числе и по DDD.
Если в своём проекте вы следуете PSR-11, используя контейнеры для зависимостей, то наверняка сталкиваетесь с проблемой автокомплита кода в вашей IDE. PHP, к великому сожалению, не поддерживает generic’и и нельзя указать какой тип будет у возвращаемого значения.
Обычно это решается при помощи дополнительного phpdoc’а для переменной. PHPStorm позволяет настроить файл с meta-данными для проекта.
Читать статью
Решил начать развиваться в области предметно-ориентированного проектирования.
И вот неплохое видео для разгона по теме. Докладчик по ходу раскрывает суть слоев приложения, разделение ответственностей, а также проводит небольшой рефакторинг, вынося логику из контроллера по слоям.
Смотреть видео
Очень интересная статья для тим-лидов и руководителей компаний.
Все мы были джунами, но почему-то некоторые, став старше в профессиональном плане, забывают о том, с чего начинали. И это относится не только к IT, но и к любой работе.
Читать статью
Меня попросили оценить время на доработку функционала в довольно старом проекте
Полдня я изучал код и выдал срок в 2,5 недели
Я просчитал кучу вариантов, переход на новые версии фреймворка, даже рассмотрел вариант полностью переписать приложение
Одна девушка из нашей команды просто поправила пару строк в CSS, и все заработало!
Суровый web-энтерпрайз. Данная история заставляет задуматься о том, что вместо того чтобы с головой кидаться в просчет вариантов сложных решений - убедись, а все ли простые варианты ты рассмотрел. Возможно, что “Истина где-то рядом” и “Ларчик просто открывается”.
Читать статью
Библиотека для склонения названий городов, русских ФИО и даже определения пола по ФИО.
GitHub репозиторий
В дополнение к Одиночке.
Интересная статья от разработчика на Laravel про то, что возможно Локатор Сервисов является анти-паттерном.
Читать статью
Делал доклад по введению в разработку через тестирование для коллег. Решил что возможно данный доклад будет полезен кому-либо ещё, потому выкладываю его здесь.
Читать статью
Помимо Live Templates в PhpStorm есть Postfix Templates. Если кто-то также как и я про это не знал - рекомендую ознакомиться со статьёй.
Читать статью
Прочел Кента Бека - “Экстремальное программирование: разработка через тестирование”. Прочел довольно-таки быстро: за неделю.
Это шедевр!
Серьёзно: если вы никогда не писали тестов - книга заставит вас чувствовать себя крайне неудобно, потому что после прочтения вы уже не будете представлять свой цикл разработки без тестирования.
Если же вы писали тесты постфактум - книга научит вас делать это до, чтобы писать тестируемый код, который потом можно рефакторить без пригорания в пятой точке и с почти нулевым уровнем стресса.
Пошаговый доклад по внедрению зависимостей на примере фреймворка Yii2.
Автор начинает с сильно связанных компонентов, создающих друг друга внутри собственных методов и постепенно приходит к имплементации Dependency Injection в одном из популярнейших фреймворков для создания WEB-приложений, не забыв конечно же упомянуть такую важную вещь как Dependency Injection Container.
Смотреть видео