Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ORM vs plain SQL, why not both?

ORM vs plain SQL, why not both?

Юрий Благовещенский (Домклик, Python Developer) @ MoscowPython Meetup 74

"Буду рассказывать о ложной дихотомии ORM и запросов в голом SQL. Расскажу, как Django с одной стороны и aiohttp+asyncpg с другой позволяли нам катиться как угорелые".

Слайды: http://www.moscowpython.ru/meetup/74/orm-vs-sql/

Moscow Python Meetup
PRO

June 25, 2020
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. ORM vs plain SQL Why not both?

  2. None
  3. Реляционные базы данных

  4. None
  5. Object-Relational Mapping

  6. Проблемы • Неявный менеджмент состояния

  7. Проблемы • Неявный менеджмент состояния • Не масштабируется под более

    сложные требования
  8. Проблемы • Неявный менеджмент состояния • Не масштабируется под более

    сложные требования • N + 1
  9. Положение дел в индустрии

  10. Принцип Разделяй и властвуй единой ответственности Роли: •API •Admin interface

    •Event handlers
  11. None
  12. Предметная область

  13. verbose_name

  14. db_table

  15. Dict considered harmful

  16. Работа с данными • namedtuple

  17. Работа с данными • Namedtuple • Dataclass

  18. Работа с данными • Namedtuple • Dataclass • Pydantic

  19. Работа с данными • Namedtuple • Dataclass • Pydantic •

    FastAPI
  20. Миграции

  21. Используйте ORM • Библиотека уже наступила на все грабли

  22. Используйте ORM • Библиотека уже наступила на все грабли •

    Заставляет принимать важные решения
  23. Рекап рецептов • Описывайте предметную область upfront • db_table •

    Избегайте наследования в коде
  24. None
  25. Обо мне • Юрий Благовещенский IRL • @strmwalker on Twitter

    • @strmwalker on Telegram