
Организованное программирование· Folge 51
#51 ORM vs SQL — Дебаты: что побеждает в реальных проектах? Александр Вершилов
Montag, 30. Juni 2025 · 1 h 52
Kapitelklicken springt direkt hin
Shownotes
<p>В этом выпуске мы поговорили с Александром Вершиловым — разработчиком с 15-летним опытом и руководителем отдела разработки в Сириус.Курсах. Мы устроили дебаты про ORM. Обсудили чем ORM отличается от query-builder’а, разобрали типичные проблемы N+1 и ленивых связей, сравнили подходы Code-First и Data-First к миграциям, а также поделились приёмами, как обойтись без ORM и не потерять производительность.</p><p>Вы узнаете, когда строгая типизация (на примере Haskell) спасает проект, какие настройки ORM могут «положить» продакшен и какие практики позволяют держать базу под контролем. А так же решите для себя, брать ли ORM в следующий проект или сразу писать SQL.<br /></p>
<ul><li>() - Введение. Почему мы всё ещё спорим про ORM?
</li>
<li>() - Что такое ORM на пальцах — быстро, чётко, по делу
</li>
<li>() - PHP и ORM: от древности до Laravel
</li>
<li>() - ORM глазами хаскелиста — определение через опыт
</li>
<li>() - Как типизация усложняет или упрощает маппинг
</li>
<li>() - Связи решают всё: зачем они важны в любой базе
</li>
<li>() - Фильтрация и динамика: где builder выигрывает у SQL
</li>
<li>() - Тестируем SQL: что делать с ошибками на проде
</li>
<li>() - Почему auto-инструментация — это роскошь не для всех
</li>
<li>() - Query builder — обязательный минимум для любого проекта?
</li>
<li>() - Когда ORM спасает время (и нервы)
</li>
<li>() - Сериализация "на автомате" — магия или хорошая инженерия?
</li>
<li>() - Промышленный стандарт = спокойствие в команде
</li>
<li>() - Магия рефлексии: когда модель = пустой класс
</li>
<li>() - Код first: почему он иногда опаснее, чем кажется
</li>
<li>() - Zero downtime и миграции: возможно ли идеальное развертывание?
</li>
<li>() - Как PHP прошёл путь к миграциям: взгляд в прошлое
</li>
<li>() - Когда SQL тормозит: ищем виновника
</li>
<li>() - Запросы: главная претензия к ORM
</li>
<li>() - Как распознать N+1 запрос и не страдать
</li>
<li>() - Пример Elixir: ORM без боли и магии
</li>
<li>() - Где заканчивается SQL и начинается здравый смысл
</li>
<li>() - Как удалять данные и при этом не терять их
</li>
<li>() - ORM и бизнес-логика: когда класс — не просто класс
</li>
<li>() - Декларативность vs. контроль: можно ли совместить?
</li>
<li>() - Генерация объектов: действительно ли тормозит?
</li>
<li>() - Оптимистичная блокировка спасает не только от конфликтов
</li>
<li>() - Транзакции, блокировки и реалии продакшена
</li>
<li>() - Нерешаемая проблема мутабельности
</li>
<li>() - Когда "умная" ORM становится врагом архитектуры
</li>
<li>() - Заключение. Как жить с ORM и не страдать?</li>
</ul>
<strong>
<a href="boosty.to/mokevnin">★ Support this podcast ★</a>
</strong>