Вебинар «PHP-8: что нового и пора ли переходить?» :


Спасибо за очень интересный и познавательный вебинар! Особенно запомнилась часть про аннотации - наконец-то я понял: что это и зачем это) Надеюсь увидеть аналогичный вебинар но уже по версии 8.1


Вебинар «Виды тестирования ПО» :


что то нет вебинара на страице ...


Вебинар «PHP-8: что нового и пора ли переходить?» :


Отлично! Просто замечательно!


Вебинар «PHP Parallel - новое расширение для многопоточности в PHP» :


Отлично! Рассказано доступно, понятным языком, хорошо подобраны примеры. Редкий случай когда сразу все понятно. Спасибо!



Вебинар «Архитектурные вечера: поговорим о бизнес-процессах» :


Мякотка начинается где-то с 13:00. В целом вполне комфортно смотреть на 1.25 скорости.
Было бы очень удобно если бы к видео шли таймкоды с кратким содержанием ролика.


В целом меня вполне устраивает Symfony Workflow Component. Сейчас он стал очень навороченным.
Для более сложных Workflow отлично подходит упомянутый в видео BPMN, например Camunda. Для банков это вообще must have и best practice.


Метод докладчика похож на изобретение связки Command + Command Bus + Symfony Workflow Component + немного Event Sourcing без снапшотов, но с тотальным игнорированием принципов SOLID.

Очень странно, что автор говорит о статусах доставки и оплаты в контексте одного бизнес объекта, хотя по хорошему это отдельные иерархии объектов со своим набором статусов.
Наверное в этом и главная проблема — попытка засунуть статусы одних объектов в систему статусов других.
В рамках бизнеса доставку и оплату могут осуществлять вообще разные подразделения и обрабатывать свои действия в разных информационных системах.

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


Стоит держать в голове, что бизнес процессы — не константы. Так же и статусы — не константа.

Сегодня статус расчитывается одним способом, завтра — другим, а для определённого типа клиентов — третим.
Очень быстро функции рассчёта статусов разрастутся до неприличной стожности. А также статусы могут как появляться, так и удаляться.

А самое смешное, что правила могут поменяться насколько, что могут появляться сущнсти с кривыми статусами.
Например, часть заказа была обработана по старым правилам рассчёта статусов, а вторая половина заказа — по новым.
Тут конечно на помощь приходит BPMN с его версионированием Workwlow, чтобы каждый объект обрабатывался в рамках одной версии бизнес-процесов.
Но если версионирования не было, то могут появиться доставленные, но не оплаченные закрытые заказы и прочие аномалии, например, оплаченный, но не созданный заказ.

А ведь ещё не стоит забывать про «компенсирующие транзакции», отменяющие ранее зафиксированные действия.
Например, платёжка сказала что счёт оплачен, а через день выясняется что в палётжке был глюк и оплаты на самом деле не было или клиент платёж отозвал.
По принципам Event Sourcing нельзя удалить или изменить запись лога, а нужно создать новую запись её отменяющую с указанием подробностей — компенсирующую транзакцию.
И тогда в логику функции оплаченного статуса добавляется проверка на отсутствие всевозможных компенсирующих транзакций, что в целом не так плохо.
А если архитектор этой системы решит сделать отдельные статусы для каждой ситуации компенсирующей транзакции, тогда в коде придётся проверять не только статус оплаты, но и всех возможных статусов её отмены.

А если захочется сделать выборку из БД объектов в определённом статусе? Придётся дублировать и поддерживать эту логику в БД.
И будет очень смешно, когда логика в БД по каким-то причинам станет расходиться с логикой в коде. А это рано или поздно начнёт случаться.








Курс «PHP-1: Введение в профессию» :


Курс очень понравился, грамотно построен, каждый урок длиться не более 1 - 1.5 часа, это помогает не перегружать мозг и уяснить основу, которая затем более детально прорабатывается в домашках. Преподавать строг, где то может жестко ответить, но Альберт знает свое дело! Относится к своей работе серьезно и хочет сделать из вас нормального программиста, этим пренебрегают большинство преподавателей, которые не особо заинтересованы в вашей грамотности. Главное дойти до конца как мужик невзирая на свое самолюбие и выполнить все домашки. Не бойтесь задавать вопросы в чате, будьте готовы к неприятным диалогам, вам не дадут ответ на блюдечке, Вас попытаются направить в нужное русло, но это Вас сделает человеком, который будет готов к будущим проблемам. Научитесь правильно задавать вопросы и искать на них ответы. Я очень доволен, что до конца прошел этот курс и собираюсь учиться у Альберта дальше!


Курс «DBA: Введение в профессию» :


Данный курс содержит в себе все необходимое для начала изучения SQL и теории баз данных.
Отдельную ценность представляет наличие огромного практического опыта у автора,
что в совокупности из сухого изложения теории превращается в набор бесценных советов
актуальных в современных реалиях.




Вебинар «XDebug - как начать пользоваться отладкой в PHP?» :


Полезные материл по использованию Xdebug