Deworker Pro
1.41K subscribers
5 photos
187 links
Download Telegram
Разработка разработкой, но помимо неё приходят интересные новшества. Теперь устанавливать и работать с Docker Compose стало проще. В связи с этим сегодня переведём на новый Compose V2 наш проект вручную и наши Jenkins и Registry серверы автоматизированно через Ansible.
С прошлого эпизода про Event Driven у нас остался удобный черновик программной системы.

Пора по нему построить настоящую диаграмму со всеми элементами Event Storming и узнать про трудности, которые в этом процессе возникают.

Потом упростить моделирование большого проекта разделением на удобные этапы на примере службы перевозки грузов.
Наша сессия Event Storming для аукциона будет эпичной. Уже записываем группу скринкастов по этапу Big Picture. Полностью проработаем управление лотами, торги, оплаты и все этапы сделки. А пока догоняйте нас в этой серии, если ещё не всё посмотрели.
От примера с грузоперевозками переходим к реальному моделированию. Запускаем сессию Event Storming и сегодня строим большую картину этапа Big Picture. Прорабатываем создание и уточнение лота, автоматическую и ручную модерации лота для запуска торгов.
📌 Новые ответы на ваши вопросы

Наш раздел пополнился четырьмя вопросами ⬇️

Как перейти на Symfony и разделить проект?
У меня есть проект, который по факту несколько веб сайтов: бекенд, фронтенд и API на разных доменах. Через API происходят все запросы, начиная от логина, заканчивая выборкой статей и товаров. Сейчас это всё на Zend монолите с ужасным кодом. Решил перейти на Symfony. Но теперь вопрос: как эти три сервиса разнести?

Выбор PHP фреймворка
Хочу узнать ваше субъективное мнение по поводу выбора PHP фреймворка как основного для разработки сайтов. Нужно начинать пользоваться фреймворком, но пока стою перед выбором из Laravel, Symfony и Yii. В будущем возможно придется поработать на каждом, но начать хочу с того, какой содержит в себе лучшие практики проектирования.

Как парсить большие XLS-документы?
Что лучше использовать для парсинга больших XLS документов, где внутри для каждой строки нужно делать много проверок в соответствующих полях, формировать массив и записывать в базу. И в последующих импортах нужно будет и редактировать те что уже записаны и вносить изменения. Это очень трудоемкая операция. Работаю на PHP использую PHPOffice. Может стоит написать самому или использовать какой то NodeJS.

Где брать компоненты для микрофреймворков
Микрофреймворки предоставляют минимальный набор компонентов, но где брать остальное: например, валидацию форм, работу с сессиями, Redis и т.п.? Есть ли некий список общепризнанных, актуальных и поддерживаемых компонентов "де-факто", и если да, можно ли его где-то найти?

Переходите по ссылкам и присоединяйтесь к диалогу в комментариях.
Помимо отдельных вопросов сегодня добавлено много интересных вопросов с подробными ответами из комментариев:

https://deworker.pro/qna/comments
На декабрьском стриме мы познакомились с идеями разделения кода на модули и микросервисы.

Мы разобрали всё это на своём примере большого магазина, но от вас поступили предложения сделать это и на ваших примерах для ваших предметных областей.

Также часто спрашивают о том, как раздробить на модули или микросервисы не новый, а уже имеющийся монолитный проект.

Пришла пора ответить на эти вопросы и рассмотреть паттерны и антипаттерны разделения кода на других примерах. И показать практики по разделению уже существующих проектов.

Это мы сделаем на новом большом практическом стриме. До встречи в эфире с участниками!
Если до или после завтрашнего стрима появится желание вспомнить содержание прошлого стрима, то для удобства просмотра добавили тайм-коды:

https://deworker.pro/blog/stream-modules
Из-за жутких проблем со связью решено провести скоростной интернет и провести эфир в другой день. Заодно подготовлю больше кода с примерами. И можете в комментарии под постом скидывать свои вопросы и примеры, на которые отвечу сразу или разберём на стриме.

О дате стрима сообщу здесь и рассылке.
Deworker Pro
Из-за жутких проблем со связью решено провести скоростной интернет и провести эфир в другой день. Заодно подготовлю больше кода с примерами. И можете в комментарии под постом скидывать свои вопросы и примеры, на которые отвечу сразу или разберём на стриме.…
Скоростной интернет проведён и успешно протестирован. Так что можем перепровести наш стрим. Сделаем это уже во вторник 19 сентября в 18:00 по московскому времени.

Спасибо активным участникам, которые прислали дополнительные вопросы и свой код на разбор. Все примеры добавлены в программу. И больше проработан код по работе с очередями в RabbitMQ c реализацией паттерна Outbox.

До встречи с участниками на стриме!
Спасибо зрителям за хорошую компанию! Мы разобрали принципы избавления от лишних связей и спрограммировали работу с очередями для общения модулей через события.

Теперь пришла пора рассмотреть другие практические примеры и ваши вопросы. Для этого завтра 26 сентября в 18:00 по московскому времени проведём вторую часть стрима.

А пока для удобства просмотра к первой части добавлены тайм-коды.
Большое спасибо зрителям нашего эпичного стрима за отличную компанию! Мы с вами это сделали!

Для удобства просмотра и поиска к обеим частям стрима проставлены подробнейшие тайм-коды. Если вы ещё не всё посмотрели, то самое время начать.
Однажды до большого стрима мы записали мегаэпизод про работу HTTP-сервера и заблуждения PHP-программистов. Пришло время сделать что-то эпичное снова.

В этот раз записали большой мегаскринкаст про устройство тестовых фреймворков. Там мы напишем с нуля свой тестовый фреймворк по примеру PHPUnit. В нём как в оригинале сделаем автосканирование тестовых файлов, тестирование ожидаемых исключений и написание параметризованных тестов с провайдерами данных через PHP-атрибут DataProvider.

Заодно отрефакторим полученный код, избавив его от нарушения инкапсуляции и от побочных эффектов записи результатов и прямого вывода на экран. Вынесем принтеры сводки и прогресса запуска и сделаем слабосвязанную архитектуру с использованием событий.
Продолжаем моделирование предметной области аукциона через практику Event Storming. Сегодня завершим этап Big Picture для понимания общей картины бизнеса. В эпизоде проанализируем процесс проведения торгов, пополнение баланса, резервирование оплаты и все этапы сделки.
На прошлом стриме мы с вами разобрались с разделением кода на модули и микросервисы. Продолжаем стримы на полезные смежные темы.

В этот раз поговорим про оптимизацию запуска и работы PHP-приложений. От простого включения OpCache, кеширования конфигурации и ленивой инициализации сервисов до Preload с JIT и RoadRunner, асинхронности, использования Fiber-ов и других нюансов в разных фреймворках. Приходите на стрим, чтобы провести вечер с пользой!

Реклама ООО «Деворкер» ИНН 7840083887
В кабинете на сайте появилась возможность сменить Email профиля.

Если хотите перейти с неудобной для себя почты на более удобную, то теперь это можно сделать, подтвердив новый адрес.
Deworker Pro
На прошлом стриме мы с вами разобрались с разделением кода на модули и микросервисы. Продолжаем стримы на полезные смежные темы. В этот раз поговорим про оптимизацию запуска и работы PHP-приложений. От простого включения OpCache, кеширования конфигурации…
К записи первой части стрима для удобства просмотра добавили тайм-коды. И скоро проведём вторую часть, где рассмотрим использование файберов и написание проектов на асинхронных фреймворках. Тайм-кодами и датами дополнили пост на сайте. Если ещё не посмотрели первую часть, то лучше это сделать до начала второй.