@MagaVTanke

Зачем бэкенду уметь писать запросы к БД?

Основной инструмент любого бэкенд разработчика - это фреймворк(не считая языка программирования конечно), а в почти каждом из них есть функции, которые сами прописывают запрос к БД, я уже не помню, как они называются. Скажем, вместо прописывания запроса на выборку из всех записей по какому-то правилу, например в Джанго, можно просто прописать {название модели}.objects.filter(параметры). Так тут вырисовывается вопрос: зачем нужно прям принципиально уметь прописывать запросы к БД? Я может чего-то не понимаю?
  • Вопрос задан
  • 173 просмотра
Решения вопроса 2
DevMan
@DevMan
да, вы не понимаете.
шняга, которую вы не помните, называется ORM. и её действительно хватает для типовых задач.
проблемы возникают когда возможностей ORM не хватает. и/или нужно спроектировать БД с нуля и с хитрыми каскадами.

типичный пример: импорт данных, которые нужны исключительно для чтения.
да, можно для них намострячить несколько сотен моделей и загонять в них.
а можно просто загнать их в базу, обработать в сырую, и использовать только нужные данные. вот для этого и нужно уметь в запросы.
Ответ написан
@Vitsliputsli
Ни любой бэкенд разработчик использует фреймворки, если большая часть функционала фреймворка не нужна, а производительность очень важна, то стоит задуматься о применимости фреймворка. Конечно, тут можно использовать микрофреймворки, а не писать свой функционал, но это другой вопрос. Что касается ORM, то даже если вы ими пользуетесь, вы должны понимать как они работают, ну и разумеется понимать как работают СУБД. Для отдельного класса задач ORM может и хватать, но те же индексы, если даже ORM их создает, в принципе не могут быть всегда оптимальными, т.к. ORM не может угадать будущую селективность полей. Опять же миграции, не понимая как работает тот или иной запрос SQL DDL (да и DML тоже), вы легко положите СУБД. Если миграция выполняется несколько часов, а вы ее запустите на СУБД без снятия нагрузки - будет весело. А снимать нагрузку каждый раз - это дорогое удовольствие. И это только часть проблем, которые могут возникнуть, если не понимать как работают СУБД.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
sarapinit
@sarapinit
Точу водой камень
Чтобы не остаться в вечных джунах с узкой специализацией. Наступит момент когда автогенереный запрос будет работать медленно или он будет сжирать кучу памяти в нагруженном месте. Не звать же каждый раз старшего разработчика в такие моменты.
Ответ написан
Комментировать
@dooMoob
Ну удачи написать что-то сложнее {model}.objects.filter(параметры) без умения писать прямые sql запросы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы