Схема агрегата Order в DDD с границами консистентности, Aggregate Root, объектами OrderItem, OrderStatus и Money, связанными с Customer и Product по ID.

Агрегаты в Domain-Driven Design часто понимают неправильно. Разработчик видит таблицы orders, order_items, products, users, переносит эти связи в объектную модель один к одному и считает, что теперь у…

В мире технологий хранения данных произошел настоящий прорыв: исследователи из Университета Фудань разработали самую быструю полупроводниковую память, получившую название PoX. Эта энергонезависимая флеш-память способна записывать данные со скоростью…

Архитектура многих фреймворков зачастую требует расширения своих классов. Но сегодня речь только про чистый от фреймворков код, за который вы и/или ваша команда несет ответственность. В первую очередь…

При проектировании архитектуры микросервисов нам необходимо соблюдать определенный процесс. Мы не должны забывать, что проектирование архитектуры микросервисов должно быть методичным. Худшее, что может случиться при проектировании архитектуры микросервисов, – это…

Макросы Laravel – это отличный способ расширить основные macroable классы Laravel и добавить дополнительную функциональность, необходимую для вашего приложения. Проще говоря, макрос Laravel – это подход к добавлению…

Есть определенные операции, которые могут иметь высокую вероятность неудачи. Например, отправка запроса в сторонний API. Вы не уверены, будет ли это работать каждый раз безупречно, потому что это не в…

Давайте посмотрим на такой совершенно простой пример, как этот: Начиная с PHPunit 9.0 и далее аннотация expectedException была признана устаревшей и удалена. Теперь мы можем сосредоточиться на существующих решениях….

Разберёмся в способе хранения данных, автовайринге без этих дурацких умных слов и русским языком. Научимся таргетировать инъекции и попробуем запилить пример реализации с использованием одних и тех же…