Size: a a a

Programming Offtop

2020 March 19

AW

Alex Wells in Programming Offtop
Vladimir Petrakovich
Можно же то же самое сделать не через жопу, и вообще, какого хуя люди пытаются абстрагироваться от того, что общение с БД в терминах SQL происходит
потому что с обьектами удобно работать
источник

VP

Vladimir Petrakovich in Programming Offtop
К счастью, я это только в докладах видел
источник

AM

Andrew Mikhaylov in Programming Offtop
Vladimir Petrakovich
Майбатис не видел, но хибер == жпа
"жпа"
Заорал
Весело там у вас на беке
источник

AW

Alex Wells in Programming Offtop
о чудо, у них есть методы и пропсы
источник

AW

Alex Wells in Programming Offtop
и они типизированны
источник

IK

Igor Komarov in Programming Offtop
Unat
Скажем так, на большой проект с 2+ людьми я-бы притащил. В небольшой - ну нахер.
Если немного поколдовать над ним – разработку ускоряет заметно, даже на небольших проектах. При этом проблем особых нет
источник

U

Unat in Programming Offtop
Andrew Mikhaylov
Ну если ок жить с риском схватить на ровном месте инъекцию -- ок :)
Я хз где там риск, я-же не предлагаю собирать через "SELECT * FROM table WHERE id=$id"
источник

VP

Vladimir Petrakovich in Programming Offtop
Andrew Mikhaylov
"жпа"
Заорал
Весело там у вас на беке
Как технологию назовёшь...
источник

AW

Alex Wells in Programming Offtop
а еще они, в идеале, не привязаны к базе ВООБЩЕ
источник

VP

Vladimir Petrakovich in Programming Offtop
Unat
Я хз где там риск, я-же не предлагаю собирать через "SELECT * FROM table WHERE id=$id"
А как?
источник

AM

Andrew Mikhaylov in Programming Offtop
Unat
Я хз где там риск, я-же не предлагаю собирать через "SELECT * FROM table WHERE id=$id"
Тривиальные вещи, конечно, закроются плейсхолдерами, а более сложные?
источник

U

Unat in Programming Offtop
... where id=%1 и пусть абстракция для общения с базой экранирует.
источник

VP

Vladimir Petrakovich in Programming Offtop
Unat
... where id=%1 и пусть абстракция для общения с базой экранирует.
А %1 - это что? Как реальное значение передавать будешь?
источник

AK

Anton Korotkikh in Programming Offtop
Alex Wells
а еще они, в идеале, не привязаны к базе ВООБЩЕ
это работает только для очень ограниченной функциональности и базовых типов. в реале практически не работает
источник

AW

Alex Wells in Programming Offtop
Anton Korotkikh
это работает только для очень ограниченной функциональности и базовых типов. в реале практически не работает
почему не работает?
источник

U

Unat in Programming Offtop
Vladimir Petrakovich
А %1 - это что? Как реальное значение передавать будешь?
Писал по памяти с питонячего бэка, работает через connection.fetch(sql, arg1, arg2, arg3...)
источник

VP

Vladimir Petrakovich in Programming Offtop
Unat
Писал по памяти с питонячего бэка, работает через connection.fetch(sql, arg1, arg2, arg3...)
Допустим. Но ведь куски запроса у нас добавляются в рантайме (20 фильтров), аргументы тоже руками собирать?
источник

U

Unat in Programming Offtop
selectProductSt :: Statement ProductId ProductEntity
selectProductSt = Statement sql (encoder :: E.Params String) decoder True
 where
   sql = "select id, name, price, created_at from products where id = $1"
   encoder = E.param (E.nonNullable stringEncoder)
   decoder = D.singleRow productEntityDecoder

Вот хаскелёвый с hasql
источник

AK

Anton Korotkikh in Programming Offtop
Alex Wells
почему не работает?
по факту, и из-за слишком большой разницы в устройстве бд. ну, например, многие тырпрайзы хотят пересесть с ораклины на постгрю... и хрен ты просто так пересядещь. по фичам пропасть - разные релязации jsonb, у кого-то есть blob у кого-то clob и xmltype из него. у кого-то в запросах вообще может быть xquery. у кого-то есть типы данных с массивами у кого-то не очень, кто-то могёт во встроенные key-value внутри записей (hstore в пг например), кто-то нет.

по факту, на большом или долгоигращим проекте, который начинает пользовать фишки бд, миграция становится невозможной даже в узком и популярном наборе бд, не то что подмена хранилища на уровне абстракции: постгря, оракл, мс, мускул... не говоря уже о каких-то менее поплуярных вещах типа дб2
источник

U

Unat in Programming Offtop
Vladimir Petrakovich
Допустим. Но ведь куски запроса у нас добавляются в рантайме (20 фильтров), аргументы тоже руками собирать?
Я собирал. Правда, у меня там нигде 20+ аргументов не было.
источник