Спасибо за очень интересный и познавательный вебинар! Особенно запомнилась часть про аннотации - наконец-то я понял: что это и зачем это) Надеюсь увидеть аналогичный вебинар но уже по версии 8.1
что то нет вебинара на страице ...
Отлично! Просто замечательно!
Отлично! Рассказано доступно, понятным языком, хорошо подобраны примеры. Редкий случай когда сразу все понятно. Спасибо!
-= Без отзыва =-
Мякотка начинается где-то с 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 нельзя удалить или изменить запись лога, а нужно создать новую запись её отменяющую с указанием подробностей — компенсирующую транзакцию.
И тогда в логику функции оплаченного статуса добавляется проверка на отсутствие всевозможных компенсирующих транзакций, что в целом не так плохо.
А если архитектор этой системы решит сделать отдельные статусы для каждой ситуации компенсирующей транзакции, тогда в коде придётся проверять не только статус оплаты, но и всех возможных статусов её отмены.
А если захочется сделать выборку из БД объектов в определённом статусе? Придётся дублировать и поддерживать эту логику в БД.
И будет очень смешно, когда логика в БД по каким-то причинам станет расходиться с логикой в коде. А это рано или поздно начнёт случаться.
-= Без отзыва =-
-= Без отзыва =-
А, где видео???))))
-= Без отзыва =-
-= Без отзыва =-
-= Без отзыва =-
Курс очень понравился, грамотно построен, каждый урок длиться не более 1 - 1.5 часа, это помогает не перегружать мозг и уяснить основу, которая затем более детально прорабатывается в домашках. Преподавать строг, где то может жестко ответить, но Альберт знает свое дело! Относится к своей работе серьезно и хочет сделать из вас нормального программиста, этим пренебрегают большинство преподавателей, которые не особо заинтересованы в вашей грамотности. Главное дойти до конца как мужик невзирая на свое самолюбие и выполнить все домашки. Не бойтесь задавать вопросы в чате, будьте готовы к неприятным диалогам, вам не дадут ответ на блюдечке, Вас попытаются направить в нужное русло, но это Вас сделает человеком, который будет готов к будущим проблемам. Научитесь правильно задавать вопросы и искать на них ответы. Я очень доволен, что до конца прошел этот курс и собираюсь учиться у Альберта дальше!
Данный курс содержит в себе все необходимое для начала изучения SQL и теории баз данных.
Отдельную ценность представляет наличие огромного практического опыта у автора,
что в совокупности из сухого изложения теории превращается в набор бесценных советов
актуальных в современных реалиях.
-= Без отзыва =-
-= Без отзыва =-
Полезные материл по использованию Xdebug
-= Без отзыва =-
Если есть желание то все будет понятно.
Не первый раз на курсах, лучший преподаватель! Хорошая поддержка.
Немного задерживается проверка домашних заданий.
-= Без отзыва =-