Зачем нужен подход Event Storming ?

Одним из самых важных и сложных моментов, предшествующим разработке архитектуры приложения, это сбор требований и моделирование бизнес-процессов.

Не важно, внтутренний или внешний заказчик, не важно будет in-house или outsource разработка, вначале требуется понять ЧТО требуется сделать, КАКИЕ объекты будут в будущей системе и КАКИЕ сценарии должны происходить. И  если ваше будущее приложение немного сложнее, чем красная кнопка с функционалом оставить отзыв, то в сложном бизнес-процессе будет присутствовать большое количесство объектов и вариантов сценариев с ними.

Но зачастую такие знания о процессах, которые должны происходить в системе при различных условиях, о возможных состояниях объектов в системе и условиях переходов из одного состояния в другое, не описаны в едином источнике знаний. Знания и понимание как должно быть могут немного содержаться в устаревшей документации, разумеется у product manager, project manager, у программистов и у многих других сотрудников компании, в том числе у собственника бизнеса. 

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

В текущей цифровой экономике становится все более важным, даже не кто первый сделал MVP, а у какой компании наименьший срок time-to-market нового функционала в приложении, поэтому сбор требования и единое понимание бизнес-процессов, для реализации в приложениях — это максимально важный этап планирования, которым нельзя принебрегать. 

И для такого моделирования уже существуют способы разной степени сложности и затратности по времени, но на их фоне очень выгодно выделяется подход Event Storming, введеный итальянским программистом Альберто Брандолини, успешно используемый им в контексте DDD.

Подробнее

Индексы в базах данных

Индексы позволяют повысить производительность базы данных. 

Индекс — специальная структура данных, которая связана с таблицей и создается на основе данных, содержащихся в ней. Основная цель создания индексов — повышение производительности функционирования базы данных.

 

Подробнее

Немного о бандлах в Symfony.

В версиях Symfony до 4.0 было рекомендовано организовать собственный код приложения через использование бандлов. Это больше не рекомендуется, и бандлы следует использовать только для совместного использования кода и функций между несколькими приложениями.

Бандлы похожи на плагины в другом программном обеспечении, но даже лучше. Основные функции фреймворка Symfony реализованы с помощью бандлов (FrameworkBundle, SecurityBundle, DebugBundle и т. Д.). Они также используются для добавления новых функций в ваше приложение через сторонние бандлы.

 

Подробнее

Как установить NPM и NODE.JS в Ubuntu.

Работаете с современными фронтенд-фреймворками, например Vue.js?  Тогда Вам потребуется установить в операционной системе Ubuntu Node.js и NPM и сделать это возможно менее чем за 2 минуты! 

Пример установки, показанный ниже, производился на операционной системе Ubuntu 20.04. Подробнее

Как в Symfony откатить последнюю Doctrine миграцию ?

Фреймоворк Symfony предоставляет самый удобный вариант работы с БД через ORM Doctrine. Это утверждение может показаться спорным для многих, но если за вашими плечами опыта есть опыт с Active Record в Yii2 или Laravel, то многое для Вас будет непривычным, но равнодушными вы не останетесь точно. 

Здесь многое удобно. Например для отражения изменений вашей сущности на БД, Вам достаточно одной консольной команды. 

Подробнее

Установка docker-compose в терминале Linux.

Все современные проекты содержат более одного docker образа, а значит для удобного управления и работы, требуется гибко-управлять докер контейнерами с помощью docker-compose. И для установки в Linux (например в Ubuntu 20.04) потребуется в консоле выполнить несколько команд:

Подробнее