DTO (Data Transfer Object) ► Шаблон проектирования Урок №21

DTO (Data Transfer Object) - Объект передачи данных DTO - это объект который переносит данные между системами (веб-сервисы, подсистемы или процессы одного приложения) Оглавление: 00:00 Начало 01:07 Определение, история возникновения шаблона 05:55 Варианты реализации DTO в PHP 18:05 Варианты использования DTO (Laravel или любой другой фреймворк) 23:25 Изменения в Apiato (Porto) - исчезло использование DTO 30:08 Притянули Роберта Мартина 32:21 Про критику DTO Шаблон проектирования DTO изначально был придуман для решения проблемы передачи данных между системами (веб-сервисами). Первичная цель DTO заключалась в передаче данных при дорогостоящих удаленных вызовах. Вместо нескольких вызовов и передачи нескольких объектов делается один вызов и передается один собирательный объект. Так же решаются проблемы: Ошибки при сериализации передаваемых объектов Сложная многоуровневая структура объектов Ненужные (излишние) для передачи данные Объект DTO не должен содержать никакого поведения (никакой бизнес-логики), кроме хранения, извлечения, сериализации и десериализации собственных данных. Злоупотребления использования DTO: Избыточность. Есть объект бизнес-логики (BLO), и есть DTO его представляющий. Может получиться так что единственным отличием между ними будет только то, что объект DTO не содержит поведения. Это приводит и к усложнение архитектуры приложения и к дополнительным затратам на написание кода. Использование DTO внутри одного слоя (не для передачи между системами, а внутри системы) Использование одного DTO как свойства другого DTO (усложнение понимания структуры) Использование одного огромного DTO для передачи в представление Использование DTO для методов с большим количеством параметров Злоупотребления использования DTO: Избыточность. Есть объект бизнес-логики (BLO), и есть DTO его представляющий. Может получиться так что единственным отличием между ними будет только то, что объект DTO не содержит поведения. Это приводит и к усложнение архитектуры приложения и к дополнительным затратам на написание кода. Использование DTO внутри одного слоя (не для передачи между системами, а внутри системы) Использование одного DTO как свойства другого DTO (усложнение понимания структуры) Использование одного огромного DTO для передачи в представление Использование DTO для методов с большим количеством параметров Литература:





#laravel #dto #шаблоны_проектирования #design_patterns * ★ Автор: Дмитрий Афанасьев. ★ Канал:
* ► Выразить благодарность, поддержать донатом развитие канала. ★

* ► Еще интересные курсы: ★ Видеокурс по Laravel:
★ Видеокурс по Git:
★ Объяснение SOLID:
★ Шаблоны проектирования:
★ Структурные шаблоны проектирования:
★★★ Все курсы →

Смотрите также