Агрегаты в Domain-Driven Design часто понимают неправильно. Разработчик видит таблицы orders, order_items, products, users, переносит эти связи в объектную модель один к одному и считает, что теперь у…
Backend
Китайцы сделали самую БЫСТРУЮ память в мире
В мире технологий хранения данных произошел настоящий прорыв: исследователи из Университета Фудань разработали самую быструю полупроводниковую память, получившую название PoX. Эта энергонезависимая флеш-память способна записывать данные со скоростью…
Прекратите использовать “extends” в PHP
Архитектура многих фреймворков зачастую требует расширения своих классов. Но сегодня речь только про чистый от фреймворков код, за который вы и/или ваша команда несет ответственность. В первую очередь…
Проектирование архитектуры микросервисов
При проектировании архитектуры микросервисов нам необходимо соблюдать определенный процесс. Мы не должны забывать, что проектирование архитектуры микросервисов должно быть методичным. Худшее, что может случиться при проектировании архитектуры микросервисов, – это…
RESTful Web Services: Предупреждение Race Conditions
Одна из основных предпосылок веб-служб RESTful заключается в том, что HTTP следует рассматривать как протокол приложения, а не только как транспортный протокол. Он включает в себя целый набор семантики,…
Что такое макросы Laravel и как расширить основные классы Laravel с их помощью?
Макросы Laravel – это отличный способ расширить основные macroable классы Laravel и добавить дополнительную функциональность, необходимую для вашего приложения. Проще говоря, макрос Laravel – это подход к добавлению…
Повторение операции с высокой вероятностью отказа в Laravel
Есть определенные операции, которые могут иметь высокую вероятность неудачи. Например, отправка запроса в сторонний API. Вы не уверены, будет ли это работать каждый раз безупречно, потому что это не в…
Регулирование вложенных запросов к роутам в Laravel
Для начала опишу задачу. У нас имеется какой-то глобальный для группы запросов роут и в нем указан посредник throttle. Затем мы пытаемся добавить еще один throttle на внутренний…
Советы по тестированию исключений PHP
Давайте посмотрим на такой совершенно простой пример, как этот: Начиная с PHPunit 9.0 и далее аннотация expectedException была признана устаревшей и удалена. Теперь мы можем сосредоточиться на существующих решениях….
Разбираемся в контейнере Laravel. Кирилл Несмеянов
Разберёмся в способе хранения данных, автовайринге без этих дурацких умных слов и русским языком. Научимся таргетировать инъекции и попробуем запилить пример реализации с использованием одних и тех же…