Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2018 December 30

W

White In Black in NodeUA - JavaScript and Node.js in Ukraine
David
Не проще использовать orm а там где узкое место написать кверю руками?
Так вроде  и делается всегда)
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
Да но выше было радикальное утверждение что орм годиться только для прототипирования на коленке и не стоит его использовать
источник

W

White In Black in NodeUA - JavaScript and Node.js in Ukraine
Ну у каждого свой опыт использования видимо
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
Так этот опыт мне и интересен
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
Но к сожалению ни аргументов ни примеров нет
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Дальше рассуждать могут только те, кто смотрел в логи sql-запросов после своей ORM
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
То есть создаём 100500 квери объектов в ручную или есть другие альтернативы?
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Дальше рассуждать могут только те, кто смотрел в логи sql-запросов после своей ORM
Смотрел SQLAlchemy в моём случае 95% запросов оптимальны оставшиеся 5% пишем руками
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
Да генерит часто избыточные запросы но не настолько что бы это сказывалось на производительности
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
СУБД позволяет  опускать очевидные парамтеры, а ORM их не опускает. Поэтому эта избыточность тоже довольно условна
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
если просиходит косяк со сгенерированым SQL, то или стоит изучить ORM, или если это кривая реалзиация (ну не все идеально), но можно всегда написать квери обьект. Но в большинстве случаев генерируемый код нормальный. Это экономит кучу времени
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
И все же какие альтернативные практики?
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
ORM это техника/подход конкретные  реализации active record, ROM
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Я не против генераторов, которые предоставляют альтернативный синтаксис для sql. Я против того, чтоб в коде создавались классы, соответствующие сущностям субд и при запросах они инстанциировались, а sql генерировался через эти классы, против того, чтоб при изменении бд нужно было перегенерировать эти классы и прочего неуместного ооп
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
То есть вы имеете ввиду работу с  результатом запроса как с структурой данных, типа map или struct?
источник

D

David in NodeUA - JavaScript and Node.js in Ukraine
в цепочке RAW SQL -> Запрос -> результат запроса я имею ввиду
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Ну нет смысла перекладывать в экземпляры класса, да и класс не нужен
источник
2019 January 02

SV

Sergey Vats in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Ну нет смысла перекладывать в экземпляры класса, да и класс не нужен
ты против ооп в целом или АНТИORM подход относится только при взаимодействии с реляционными бд?
источник

OG

Oleg Gorelkin in NodeUA - JavaScript and Node.js in Ukraine
Andrew Ostrovskii
И вот тут начинаеться боль, когда господа фигарят инлайны SQL вместо взаимодействия через сущности / queryBuilder -ы
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Sergey Vats
ты против ооп в целом или АНТИORM подход относится только при взаимодействии с реляционными бд?
Есть задачи, в которых ООП очень эффективно, например: UI, обертки вокруг абстракций операционной системы, такие, как сокеты, файловые потоки, таймеры и т.д, драйвера для БД и других внешних сервисов, как почтовые системы, смс шлюзы, шины событий, API внешних систем, особенно с установлением соединения и с состоянием, это очень хорошо ложится на ООП. Но вот для чего его плохо применять: вычисления, растровый рендеринг, обработка сигналов, различные алгоритмические задачи (подавляющее большинство, но не все) и ООП категорически не подходит для информационного моделирования предметной области. Для этого лучше всего использовать анемичные структуры данных (не содержащие поведения), а вся бизнес-логика должна быть вынесена в отдельный слой API. В ОРМ же 70% действий - это перекладывание из одних структур в другие.
источник