172 похожих чатов

23 ответов

20 просмотров

JSOOOOOOON

Абэ-но Сэймэй- Автор вопроса
Эрик
JSOOOOOOON

и че это был за крик души?

ридми выглядит устрашающе ) но любопытно

проблема таких орм в том, что имена полей задаются строками, нет compile-time проверки валидности запросов и рефакторинг становится мукой

так и вижу, написал случайно .between("crete_time", "2020-01-01 00:00:00", "2020-12-12 00:00:00") И ловлю люлей

Alexey Gerasimov
проблема таких орм в том, что имена полей задаются...

Если рассматривать sql запрос как отдельную сущность которую нам нужно проверять в отрыве от ее назначения. То да проблема есть. А если считать это просто команда к базе данных и ее проверка это выполнение этой команды против конкретной схемы базы данных и проверки результатов этой команды, то проблемы в общем то нет

Max Zhuravkov
Если рассматривать sql запрос как отдельную сущнос...

ну да, так и статическая типизация не нужна, ведь можно рассматривать код как просто набор команд для интерпретатора и его проверка это выполнение этого кода против конкретных входных данные и проверки результатов этого выполнения

Alexey Gerasimov
ну да, так и статическая типизация не нужна, ведь ...

Валидность команды sql может проверить только ваша бд или полный ее аналог

Max Zhuravkov
Валидность команды sql может проверить только ваша...

нет, валидность имен полей и типа получаемого значения я могу проверить и без базы, посмотрев на описание ее схемы

Alexey Gerasimov
ну да, так и статическая типизация не нужна, ведь ...

Но вообще по опыту работы с такой же штукой в Java главная ее проблема что для тривиальных запросов нужно слишком много церемоний - и настоящий orm от этого нас отгородит

Alexey Gerasimov
нет, валидность имен полей и типа получаемого знач...

Если они вам интересны то да, вам такая штука не подойдёт - обычно требуется чтобы данная команда с такой то схемой данных давала ожидаемый результат и все.

Max Zhuravkov
Но вообще по опыту работы с такой же штукой в Java...

возьмем сишарп: var items = db.Users .Where(x => x.CompanyName == "Microsoft") .Select(x => x.UserInfo) .ToArray() Вот трививальный запрос. Какие тут церемонии?

Max Zhuravkov
Но вообще по опыту работы с такой же штукой в Java...

что за церемонии? навешать атрибутов? или о чем речь?

Max Zhuravkov
Я про r B a t i s

а ну этот фреймворк это просто свой ДСЛ который дает 0 выразительности по сравнению с просто строковой константой с SQL внутри

Max Zhuravkov
Если они вам интересны то да, вам такая штука не п...

ну понятно что схема в коде может отличаться от схемы в бд, с этим никто не спорит, можно при старте приложухи проинспектировать схему в базе и проверить что в коде все нормально, запросы уже проверять не надо. Запросы меняются/добавляются чаще чем меняется схема, поэтому за ними хочется пристальнее следить и раньше обнаруживать ошибки

Max Zhuravkov
Перечислять все поля в sql запросах и тп

можно пример? вам все равно так или иначе придется перечислить поля в запросе, если только его не сгенерит орм из типа

Alexey Gerasimov
можно пример? вам все равно так или иначе придется...

Банальная вставка объекта с большим числом полей

Max Zhuravkov
Банальная вставка объекта с большим числом полей

в лучшем случе в SQL будет не лучше. В худшем - куда хуже. Но к чему вопрос-то?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
Карта сайта