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

В этом выпуске мы поговорили с Александром Вершиловым — разработчиком с 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 и не страдать?
Information
- Show
- FrequencyEvery two months
- Published30 June 2025 at 12:00 UTC
- Length1h 52m
- Episode51
- RatingClean