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

При записи обновлённой серии скринкастов по устройству HTTP-фреймворка помимо обсуждения компонентности и написания кода выпустили крайне полезный мегаскринкаст про разные варианты работы HTTP-сервера с PHP: от взаимодействия серверов Apache или Nginx по CGI-протоколам до написания сервера на PHP. Если у вас скоро собеседование, то это будет особенно актуально.

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

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

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

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

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

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

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

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

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