Объекты и структуры данных (DTO, Active Records, закон Деметры) - По книге Р. Мартина "Чистый код"
Не всё, что называется классом, описывает объекты. Очень часто класс содержит описание структур данных, которые предполагают простую процедурную обработку, а не полноценное объектно-ориентированное программирование. Ни один из этих двух подходов - ООП или процедурное программирование - не идеален. Как правильное использование структур данных и объектов позволяет соблюдать SOLID-принципы? Что описывает закон Деметры? Что такое DTO (Data Transfer Object) и чем Active Records от DTO отличаются? Обо всём этом поговорим в ролике, посвящённом 6-ой главе книги Роберта Мартина "Чистый код". Как всегда - с примерами на PHP, с пояснениями о Laravel, Eloquent ORM и так далее. Содержание ролика "Объекты и структуры данных (DTO, Active Records, закон Деметры) - По книге Р. Мартина "Чистый код"": 00:00 Начинаем обсуждение чистоты кода с точки зрения его поддерживаемости. Сегодня делаем упор на принцип открытости к расширению из набора SOLID. 01:40 В чём отличие объектов от структур данных? 03:20 Примеры структур данных "геометрические фигуры" и их процедурная обработка классом Geometry. 07:20 Расширяемость поведения при работе со структурами данных. 10:25 Проблема добавления новых типов данных ("геометрических фигур") при таком подходе. 11:45 Превращаем структуры данных в объекты, обладающие собственным поведением. Получаем обратное состояние: легко наращивать количество фигур, сложно расширять их поведение. 14:35 Таким образом, оба подхода (объектно-ориентированный и процедурный, со структурами данных) - не идеальны. 15:28 Сокрытие внутренней структуры класса от внешних клиентов. 17:45 Закон Деметры: снижение связности объектов в системе. 24:15 Практические выводы из различия между объектами и структурами данных. 25:10 Что такое DTO (Data Transfer Object)? Библиотеки data-transfer-object и laravel-data от Spatie. 28:40 Почему наши фреймворки устроены именно таким образом? 30:37 Active Records как особый вид DTO (Data Transfer Object). 32:00 Заключение. Получать анонсы новых видео можно на нашем телеграм-канале "Глазами фрилансера": https://t.me/freelancer_eyes #ГлазамиФрилансера #ЧистыйКод #PHP

Есть ли массивы в PHP?

Андрей Беляев — DTO: живи быстро, гори ярко

Чистый код? Без комментариев! На основе книги Роберта Мартина - #ГлазамиФрилансера

#Backend, Вагиф Абилов, F# как лекарство от наболевшего — исповедь ветерана ООП

Designing a Commenting Service | Self System Design | IT

Александр Бармин — SOLIDный чистый код на простых примерах

Laravel-data от Spatie: просто и со вкусом! Описание библиотеки.

PHP metrics. Инструмент оценки сложности и maintainability кода. Часть 1 | Глазами фрилансера

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

Чистый код. №1: Зачем мыть трубочиста? Правильные имена переменных. На основе книги Роберта Мартина

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker

Кто такие devOps, что такое Docker на самом деле, Kubernetes - это сложно

Как бы я сейчас изучал 1С. Не повторяй мои ошибки!

Clean Code. No. 2: Cleaning Functions. Theory and Practice. Based on the book by Robert Martin

OOP with Simple Examples. Object-Oriented Programming

Генераторы (generators) в PHP | Глазами фрилансера

Принципы SOLID. На доступном языке. SOLID В PHP и Laravel

Что такое ООП? Самое простое объяснение в интернете

Михаил Крутихин, Андрей Колесников, Кирилл Рогов | Обзор от BILD

