Программирование

В докладе о переписывании легаси рассказывал о постепенном обновлении и рефакторинге своего сайта. Теперь выкладываю доработанный исходный код всего PHP-проекта с полной автоматизацией разработки и деплоя и активным использованием Docker.

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

Спонтанно выступил с докладом и заодно технически организовал трансляцию третьего митапа сообщества BeerPHP SPb. Понял, что проведение трансляции тренирует стрессоустойчивость, так как почти всё, что могло пойти с техникой не так, пошло не так. Но получилось отлично.

В наших проектах мы активно используем контейнер внедрения зависимостей. При этом мы им часто пользуемся спонтанно, не особо объясняя принципы, которыми руководствуемся. Многие статьи часто только перечисляют способы внедрения, но не говорят об их плюсах и минусах. Поэтому в этом цикле статей мы сравним эти способы и выберем, какие удобнее использовать в разных ситуациях.

В серии скринкастов по разработке проекта на Slim и React мы полностью завершили реализацию аутентификации OAuth 2.0 на стороне бэкенда со многими нюансами, которые стоит учитывать. Получился интересный плейлист.

В нашей серии скринкастов мы ранее затронули практики непрерывной интеграции и доставки. И при рассмотрении этих CI/CD философий вместо классического подхода Feature Branches с созданием отдельных Git-веток для фич мы рассказали об альтернативном подходе Trank Based Development для скрытой разработки новой функциональности в основной Git-ветке. И в этом недавнем эпизоде мы применили это на практике.

Провели ленивый импровизированный стрим на общеполезные темы. Чем неудобен в разработке процедурный код и код без разделения. Какие сложности предметной области обнаруживаются при анализе бизнеса. Про сходства и различия фреймворков. Про использование интерфейсов и классов провайдеров для конфигурирования приложения и для организации гибкой модульности.

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

Пригласили выступить на митапе про фреймворки и инструменты PHP на тему выбора инструмента для разработки Enterprise-проектов. Доработал свой доклад о RAD и дополнил слайдами. Сравнил несколько подходов по степени осознанности программирования.

На дебютном январском BeerPHP SPB Meetup #1 выступил с рассказом о своём опыте избавления от легаси-кода и обновления фреймворка в проекте. Про эволюционное переписывание, внедрение автоматизации тестирования и деплоя. О том, что помогало обновлению и что мешало.