Size: a a a

Node.js — русскоговорящее сообщество

2020 January 13

Ð

Ð in Node.js — русскоговорящее сообщество
Artem Zuev
самое смешное было видеть, как с помощью ORM быстро и круто делали выборки, которые под капотом превращались в десятки запросов... а если сделать на SQL - то все можно было получить в один =)))
это чаще всего и является причиной скльных затычек в обход орм
источник

W

Wacker in Node.js — русскоговорящее сообщество
Anatoly Ukropov
С выборкой вроде проблем нет, хотя особо сложные по тз делать не приходилось. А вот механизма массовой записи у них нет. Сейчас это делается так. Берётся строка, делается select по всей таблице, если PK уже там есть делается update, если нет то делается insert, затем берётся след строка и так по кругу. Соответственно из за этого селекта постоянного запись идёт оооочень долго.
спасибо! Буду знать!
источник

Ð

Ð in Node.js — русскоговорящее сообщество
никаких причин использовать орм, кроме отсутствия знания скл, я не вижу. Лишний гемор себе и команде обеспечен, описание объектов на каждый чих требует трудозатрат не меньше чем написание запросов.
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Ð
все зависит от работы, тут совет дать сложно, потому что у каждого архитектора свои тараканы в голове и работать надо с ними
а мне казалось, что задача архитектора построить приложение так, чтобы бизнес логика ничего не знала про DAL слой, и могла работать как с ОРМ так и с чистыми SQL запросами, не замечая между ними разницы
источник

AK

Alex Konstantinov in Node.js — русскоговорящее сообщество
Ð
и в итоге у тебя получается в проекте и то и другое, и для поддержки надо знать и тонкости скл, и тонкости орм
Не вижу в этом ничего плохого, я не хочу писать однотипные запросы, или код для генерации однотипных запросов  select * from table where id = :id; Или Insert into table values. Выкидывать ОРМ только из-за того, что мне потребовались сложные запросы, которые мжоно написать под задачу - не очень рационально. То есть вы предлагаете из-за появления сложных запросов избавиться от ОРМ, когда он вполне решает большинство проблем, но иногда не заходит? Или вы предлагаете избавляться от чистых запросов, в угода более "красивому" коду, даже если запрос выполняется минуты вместо секунды? Я не вижу проблемы разбираться в любой ОРМ, зная тонкостей SQL, вот только зная тонкости только одной ОРМ, работа с БД так и останется неоптимальной в руках разработчика.
источник

E

Envy in Node.js — русскоговорящее сообщество
Ð
все зависит от работы, тут совет дать сложно, потому что у каждого архитектора свои тараканы в голове и работать надо с ними
Так или иначе, я рад, что в голове начала вырисовываться картина дальнейших действий и приоритет изучения технологий под конкретные задачи
источник

SM

Sheldhur Mornor in Node.js — русскоговорящее сообщество
нет смысла юзать орм в языке без строгой типизации, если не хочется писать запросы ручками то есть квери билдеры
источник

Ð

Ð in Node.js — русскоговорящее сообщество
Alex Konstantinov
Не вижу в этом ничего плохого, я не хочу писать однотипные запросы, или код для генерации однотипных запросов  select * from table where id = :id; Или Insert into table values. Выкидывать ОРМ только из-за того, что мне потребовались сложные запросы, которые мжоно написать под задачу - не очень рационально. То есть вы предлагаете из-за появления сложных запросов избавиться от ОРМ, когда он вполне решает большинство проблем, но иногда не заходит? Или вы предлагаете избавляться от чистых запросов, в угода более "красивому" коду, даже если запрос выполняется минуты вместо секунды? Я не вижу проблемы разбираться в любой ОРМ, зная тонкостей SQL, вот только зная тонкости только одной ОРМ, работа с БД так и останется неоптимальной в руках разработчика.
а однотипные классы ты писать, значит, хочешь
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Ð
никаких причин использовать орм, кроме отсутствия знания скл, я не вижу. Лишний гемор себе и команде обеспечен, описание объектов на каждый чих требует трудозатрат не меньше чем написание запросов.
ОРМ дает огромный плюс в том плане, что понижает требования к знаниям исполнителя(не нужно знать сиквел) и защищает от типичных уязвимостей вроде SQL-инъекций
источник

Ð

Ð in Node.js — русскоговорящее сообщество
Sheldhur Mornor
нет смысла юзать орм в языке без строгой типизации, если не хочется писать запросы ручками то есть квери билдеры
квери билдеры это еще одно зло, чуть меньшее чем орм, но тоже приводящее к тем же последствиям, что надо знать два языка - и скл и язык запросов этого билдера
источник

Ð

Ð in Node.js — русскоговорящее сообщество
Kirill Lesohorskyi
ОРМ дает огромный плюс в том плане, что понижает требования к знаниям исполнителя(не нужно знать сиквел) и защищает от типичных уязвимостей вроде SQL-инъекций
это старое заблуждение, достаточно использовать скл либу с биндингом и никаких иньекций не будет. одно простое правило - никаких вставок данных в строки, нигде
источник

Ð

Ð in Node.js — русскоговорящее сообщество
это заблуждение еще тянется со времен когда в пхп использовали либу mysqli
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Ð
это старое заблуждение, достаточно использовать скл либу с биндингом и никаких иньекций не будет. одно простое правило - никаких вставок данных в строки, нигде
А кто будет следить за выполнением этого правила, если команда не очень понимает это? Это можно контролить только через код ревью
источник

SM

Sheldhur Mornor in Node.js — русскоговорящее сообщество
линтер?
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Ð
это заблуждение еще тянется со времен когда в пхп использовали либу mysqli
так там же есть prepared statements вроде
источник

Ð

Ð in Node.js — русскоговорящее сообщество
Kirill Lesohorskyi
А кто будет следить за выполнением этого правила, если команда не очень понимает это? Это можно контролить только через код ревью
это понять не так сложно, а если в команде совсем идиоты - может ну ее такую команду?
источник

Ð

Ð in Node.js — русскоговорящее сообщество
Kirill Lesohorskyi
так там же есть prepared statements вроде
уже есть везде, раньше с этим было туго
источник

KL

Kirill Lesohorskyi in Node.js — русскоговорящее сообщество
Sheldhur Mornor
линтер?
не думаю, что для линтера существуют такие правила
источник

SM

Sheldhur Mornor in Node.js — русскоговорящее сообщество
сделай
источник

Ð

Ð in Node.js — русскоговорящее сообщество
я не представляю современные проекты без prepared ststements
источник