TGViewer
Channel Public Channel
Deworker Pro

Deworker Pro

@deworkerpro

Subscribers
1.39K
Photos
5
Videos
0
Links
187

Showing posts older than #181 · Back to latest

Older Posts 20 shown
Post #180 5.42K
Однажды до большого стрима мы записали мегаэпизод про работу HTTP-сервера и заблуждения PHP-программистов. Пришло время сделать что-то эпичное снова.

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

Заодно отрефакторим полученный код, избавив его от нарушения инкапсуляции и от побочных эффектов записи результатов и прямого вывода на экран. Вынесем принтеры сводки и прогресса запуска и сделаем слабосвязанную архитектуру с использованием событий.
deworker.pro Как работает PHPUnit Разбираемся как внутри работают тестовые фреймворки на примере PHPUnit
Post #179 4.34K
Большое спасибо зрителям нашего эпичного стрима за отличную компанию! Мы с вами это сделали!

Для удобства просмотра и поиска к обеим частям стрима проставлены подробнейшие тайм-коды. Если вы ещё не всё посмотрели, то самое время начать.
deworker.pro Практики разделения на модули и микросервисы Практики разделения новых и существующих проектов на модули и микросервисы. Паттерны и антипаттерны дробления.
Post #177 4.73K
Спасибо зрителям за хорошую компанию! Мы разобрали принципы избавления от лишних связей и спрограммировали работу с очередями для общения модулей через события.

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

А пока для удобства просмотра к первой части добавлены тайм-коды.
deworker.pro Практики разделения на модули и микросервисы Практики разделения новых и существующих проектов на модули и микросервисы. Паттерны и антипаттерны дробления.
Post #176 4.41K
Deworker Pro Скоростной интернет проведён и успешно протестирован. Так что можем перепровести наш стрим. Сделаем это уже во вторник 19 сентября в 18:00 по московскому времени. Спасибо активным участникам, которые прислали дополнительные вопросы и свой код на разбор. Все…
Через полчаса начинаем!
Post #175 4.21K
Deworker Pro Из-за жутких проблем со связью решено провести скоростной интернет и провести эфир в другой день. Заодно подготовлю больше кода с примерами. И можете в комментарии под постом скидывать свои вопросы и примеры, на которые отвечу сразу или разберём на стриме.…
Скоростной интернет проведён и успешно протестирован. Так что можем перепровести наш стрим. Сделаем это уже во вторник 19 сентября в 18:00 по московскому времени.

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

До встречи с участниками на стриме!
deworker.pro Практики разделения на модули и микросервисы Практики разделения новых и существующих проектов на модули и микросервисы. Паттерны и антипаттерны дробления.
Post #174 3.63K
Из-за жутких проблем со связью решено провести скоростной интернет и провести эфир в другой день. Заодно подготовлю больше кода с примерами. И можете в комментарии под постом скидывать свои вопросы и примеры, на которые отвечу сразу или разберём на стриме.

О дате стрима сообщу здесь и рассылке.
deworker.pro Практики разделения на модули и микросервисы Практики разделения новых и существующих проектов на модули и микросервисы. Паттерны и антипаттерны дробления.
Post #173 3.04K
Deworker Pro На декабрьском стриме мы познакомились с идеями разделения кода на модули и микросервисы. Мы разобрали всё это на своём примере большого магазина, но от вас поступили предложения сделать это и на ваших примерах для ваших предметных областей. Также часто…
Сегодня вечером начинаем стрим.
Post #172 3.21K
Если до или после завтрашнего стрима появится желание вспомнить содержание прошлого стрима, то для удобства просмотра добавили тайм-коды:

https://deworker.pro/blog/stream-modules
deworker.pro Идеи разделения на модули и микросервисы Большой стрим про декомпозицию предметной области и идеи разделения кода на модули и микросервисы
Post #170 4.25K
На декабрьском стриме мы познакомились с идеями разделения кода на модули и микросервисы.

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

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

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

Это мы сделаем на новом большом практическом стриме. До встречи в эфире с участниками!
deworker.pro Практики разделения на модули и микросервисы Практики разделения новых и существующих проектов на модули и микросервисы. Паттерны и антипаттерны дробления.
Post #168 3.51K
Помимо отдельных вопросов сегодня добавлено много интересных вопросов с подробными ответами из комментариев:

https://deworker.pro/qna/comments
Post #167 4.05K
📌 Новые ответы на ваши вопросы

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

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

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

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

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

Переходите по ссылкам и присоединяйтесь к диалогу в комментариях.
Post #166 2.7K
От примера с грузоперевозками переходим к реальному моделированию. Запускаем сессию Event Storming и сегодня строим большую картину этапа Big Picture. Прорабатываем создание и уточнение лота, автоматическую и ручную модерации лота для запуска торгов.
deworker.pro Big Picture: Общая картина и события Первый этап Event Storming. Анализ доменной модели и первоначальное определение потоков доменных событий.
Post #165 3.57K
Наша сессия Event Storming для аукциона будет эпичной. Уже записываем группу скринкастов по этапу Big Picture. Полностью проработаем управление лотами, торги, оплаты и все этапы сделки. А пока догоняйте нас в этой серии, если ещё не всё посмотрели.
Post #164 4.23K
Deworker Pro Начинаем моделирование предметной области проекта аукциона. Сегодня рассмотрим домен и поддомены для нашего бизнеса с точки зрения DDD. Перейдём на Event Driven архитектуру для проведения сложных бизнес-процессов в системе слабосвязанных модулей. Поговорим…
Большой эпизод про DDD и Event Driven архитектуру для построения слабосвязанных систем открыт для общего доступа.

Приятного просмотра всем, кто его ещё не видел или хочет пересмотреть всё заново!
deworker.pro DDD и Event Driven архитектура Моделирование предметной области бизнеса в DDD. Домены и поддомены. Event Driven архитектура слабосвязанных модулей. Практика Event Storming для построения цепочек команд и событий.
Post #163 4.05K
С прошлого эпизода про Event Driven у нас остался удобный черновик программной системы.

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

Потом упростить моделирование большого проекта разделением на удобные этапы на примере службы перевозки грузов.
deworker.pro Элементы и этапы Event Storming Диаграмма Event Storming и её элементы. Разделение на этапы для работы над сложными проектами. Пример моделирования службы доставки грузов.
Post #162 4.34K
Разработка разработкой, но помимо неё приходят интересные новшества. Теперь устанавливать и работать с Docker Compose стало проще. В связи с этим сегодня переведём на новый Compose V2 наш проект вручную и наши Jenkins и Registry серверы автоматизированно через Ansible.
deworker.pro Docker Compose V2 Перевод проектов на плагин Docker Compose V2. Установка на Jenkins-сервер с помощью Ansible.
Post #160 4.49K
Новые зрители (и те, кто повторно пересматривал прошлые эпизоды) сталкивались с трудностью, что код из репозитория аукциона не запускался на предыдущих коммитах из-за несовместимости со свежими Composer или Xdebug.

Сейчас это исправлено. Репозитоий перепроверен и во всех ключевых коммитах в Dockerfile вписаны совместимые версии. Теперь проект успешно запускается командой make init из любого предыдущего коммита.

Если вы раньше клонировали к себе репозиторий, то склонируйте его снова или загрузите новую историю через git fetch.
Post #159 3.44K
Помимо комментариев на сайте много обсуждений проходит в разных чатах. Но полезные ответы в них безнадёжно теряются.

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

Сегодня опубликованы первые 7 вопросов и ответов.

Приятного чтения!

https://deworker.pro/qna/questions
Post #158 4K
Начинаем моделирование предметной области проекта аукциона.

Сегодня рассмотрим домен и поддомены для нашего бизнеса с точки зрения DDD. Перейдём на Event Driven архитектуру для проведения сложных бизнес-процессов в системе слабосвязанных модулей.

Поговорим про сложности моделирования и познакомимся с практикой Event Storming для построения цепочек команд и событий.
deworker.pro DDD и Event Driven архитектура Моделирование предметной области бизнеса в DDD. Домены и поддомены. Event Driven архитектура слабосвязанных модулей. Практика Event Storming для построения цепочек команд и событий.
Post #156 4.02K
После перехода на PSR-7 мы уже понимаем, как делать переносимыми функции, которые работают с переданным им Request-ом. Но пока не знаем, что делать с функциями, которые у себя создают Response.

Поэтому помимо других инверсий сегодня рассмотрим инверсию контроля за созданием зависимостей. Это нам позволит отвязаться от конкретных классов и понять причины появления PSR-17.

Помимо этого рассмотрим заблуждение многих PHP-програмистов при написании анонимных функций. Почему класс для них назван Closure и являются ли все анонимные функции замыканиями.
deworker.pro Фабрики запросов и ответов PSR-17 Решение проблемы зависимости от создания объектов из конкретных классов. Инверсия создания зависимых объектов и переход на PSR-17
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →