Интерфейс командной строки

Операционная среда или окружение environment — интерфейс, предоставляемый пользователю или программе операционной системой. В частности, пользовательский интерфейс является частью операционной среды. Командная строка command line — принцип организации пользовательского интерфейса на основе ввода текстовых команд с клавиатуры и текстового вывода результатов на экран. Интерфейс на основе командной строки — command line interface, CLI.   Оболочка командной строки или […]

Doctrine 2 для Symfony 3.3.6: Создание сущности, ассоциации и рекурсивные связи

Создание сущности Буду все консольные команды писать в манере, как если Composer не установлен в системе. Установим для начала Symfony: # Не забудьте на этом этапе указать верные пароль и логин для базы данных. php composer.phar create-project symfony/framework-standard-edition ./gentlemans_set «v3.3.6» # Переходим в папку проекта после установки cd gentlemans_set/ # […]

Битовые операции в PHP на примерах

 Обратил внимание, что несмотря на то, что коды ошибок в PHP специально заточены под битовые операции, тем не менее, что в примерах статьи, что в комментариях, для проверки кодов ошибок используются обычные операторы сравнения. Например, встречались такие варианты: if ($error[‘type’] == E_ERROR || $error[‘type’] == E_PARSE || $error[‘type’] == E_COMPILE_ERROR){…} […]

Инкремент в PHP

Возьмите переменную и увеличьте её на 1. Звучит просто, верно? Ну… С точки зрения PHP-разработчика, наверное, да. Но так ли это на самом деле? Здесь могут возникнуть некоторые трудности. Существует несколько способов инкрементировать значения, они могут выглядеть равноценными, но под капотом PHP работают по-разному, что может привести к, так сказать, […]

Установка и управление supervisor на сервере Ubuntu и Debian

В среде многих выделенных серверов часто встречается ряд программ, которые должны работать постоянно, будь то небольшие сценарии оболочки, приложения Node.js, некоторые объемные пакеты. Конечно, для каждой из этих программ можно написать init-скрипт, но такой подход  требует больших затрат времени и ресурсов и не всегда понятен новичкам.

Fuck Up story

Моя жизнь была посвящена ИТ-сфере. Я был инженером, создававшим интересные продукты для больших промышленных компаний. Моей географией была вся Россия, я вживую видел цеха КАМАЗа, ВАЗа и других автогигантов. Но всему в нашей судьбе настаёт предел, и я выгорел. О причинах расскажу как-нибудь в другой раз. Главное, что я, опытный […]

Symfony и Command Bus

Уже больше года использую паттерн Command Bus в своих Symfony-проектах и наконец решил поделиться опытом. В концев концов обидно, что в Laravel это есть «из коробки», а в Symfony, из которого Laravel во многом вырос — нет, хотя самому понятию Command/Query Separation уже не менее 10 лет. И если с буквой «Q» из аббревиатуры […]

Как мы попробовали DDD, CQRS и Event Sourcing и какие выводы сделали

Вот уже около трех лет я использую в работе принципы Spec By Example, Domain Driven Design и CQRS. За это время накопился опыт практического применения этих практик на платформе .NET. В статье я хочу поделиться нашим опытом и выводами, которые могут быть полезными командам, желающим использовать эти подходы в разработке.

CQRS. Факты и заблуждения

CQRS — это стиль архитектуры, в котором операции чтения отделены от операций записи. Подход сформулировал Грег Янг на основе принципа CQS, предложенного Бертраном Мейером. Чаще всего (но не всегда) CQRS реализуется в ограниченных контекстах (bounded context) приложений, проектируемых на основе DDD. Одна из естественных причин развития CQRS — не симметричное распределение нагрузки […]

Типы CQRS

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