Podcasts · Организованное программирование

#51 ORM vs SQL — Дебаты: что побеждает в реальных проектах? Александр Вершилов

· 1 h 52 min · Episode 51

Episode #51 ORM vs SQL — Дебаты: что побеждает в реальных проектах? Александр Вершилов

0:00 1:51:30

В этом выпуске мы поговорили с Александром Вершиловым — разработчиком с 15-летним опытом и руководителем отдела разработки в Сириус.Курсах. Мы устроили дебаты про ORM. Обсудили чем ORM отличается от query-builder’а, разобрали типичные проблемы N+1 и ленивых связей, сравнили подходы Code-First и Data-First к миграциям, а также поделились приёмами, как обойтись без ORM и не потерять производительность.

Вы узнаете, когда строгая типизация (на примере Haskell) спасает проект, какие настройки ORM могут «положить» продакшен и какие практики позволяют держать базу под контролем. А так же решите для себя, брать ли ORM в следующий проект или сразу писать SQL.

• (00:00) - Введение. Почему мы всё ещё спорим про ORM? • (02:18) - Что такое ORM на пальцах — быстро, чётко, по делу • (04:32) - PHP и ORM: от древности до Laravel • (07:01) - ORM глазами хаскелиста — определение через опыт • (08:51) - Как типизация усложняет или упрощает маппинг • (10:35) - Связи решают всё: зачем они важны в любой базе • (13:45) - Фильтрация и динамика: где builder выигрывает у SQL • (17:51) - Тестируем SQL: что делать с ошибками на проде • (22:30) - Почему auto-инструментация — это роскошь не для всех • (25:43) - Query builder — обязательный минимум для любого проекта? • (29:23) - Когда ORM спасает время (и нервы) • (34:08) - Сериализация "на автомате" — магия или хорошая инженерия? • (36:51) - Промышленный стандарт = спокойствие в команде • (39:39) - Магия рефлексии: когда модель = пустой класс • (41:31) - Код first: почему он иногда опаснее, чем кажется • (43:36) - Zero downtime и миграции: возможно ли идеальное развертывание? • (49:36) - Как PHP прошёл путь к миграциям: взгляд в прошлое • (54:08) - Когда SQL тормозит: ищем виновника • (57:45) - Запросы: главная претензия к ORM • (01:05:03) - Как распознать N+1 запрос и не страдать • (01:08:13) - Пример Elixir: ORM без боли и магии • (01:12:44) - Где заканчивается SQL и начинается здравый смысл • (01:19:14) - Как удалять данные и при этом не терять их • (01:22:25) - ORM и бизнес-логика: когда класс — не просто класс • (01:28:50) - Декларативность vs. контроль: можно ли совместить? • (01:32:26) - Генерация объектов: действительно ли тормозит? • (01:36:22) - Оптимистичная блокировка спасает не только от конфликтов • (01:41:14) - Транзакции, блокировки и реалии продакшена • (01:44:58) - Нерешаемая проблема мутабельности • (01:48:27) - Когда "умная" ORM становится врагом архитектуры • (01:51:01) - Заключение. Как жить с ORM и не страдать?

★ Support this podcast ★

The episode on the publisher’s site (opens in a new tab)

Shows are listed from Apple Podcasts' charts and directory, and Podcast Index where it is used. Every show and episode belongs to its publisher and plays from the publisher's own feed; this site hosts none of them. Explicit shows are for adult profiles only, and children’s profiles hear only children’s shows. More about this list.