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

Привет народ. Кто-то юзал библиотеку postgres.js (https://github.com/porsager/postgres) ? Стоит ли

ее тащить в прод или использовать старый добрый slonik?

17 ответов

12 просмотров

юзал, но это долбанная магия, из-за шаблонной строки там существенные архитектурные недостатки гибкости, и проблемы с типами, особенно когда дело касается хранимок, поэтому никаких просагеров и слоников, только pg.

Danila- Автор вопроса
D
юзал, но это долбанная магия, из-за шаблонной стро...

слоник вроде pg под капотом использует, не?

Danila
слоник вроде pg под капотом использует, не?

Основная проблема в использовании шаблонных строк. Это может подойти только для очень простых круд-микросервисов, а в сложном бэке это ад. В том числе, если он был простым, а стал сложным. Я как раз переписывал на пг такой бэк, потому что это превращалось в мучение. Это совершенно бессмысленный "сахар", гораздо лучше обычные классические параметризованные запросы и управляемые подготовленные стейтменты. Убеждать не буду, хотите пройтись по граблям самостоятельно, и понять мою боль, я не против )

Danila- Автор вопроса
D
Основная проблема в использовании шаблонных строк....

В том то и цель, чтобы смотреть в будущее. Но можете пример привести, где шаблонные строки не дали вам то, что дали классические параметризированные запросы? Надо глянуть, может в слонике для простых запросов можно использовать шаблонные строки, для сложных напрямую к pg параметризованные. Может это облегчило бы вам боль?)

Danila
В том то и цель, чтобы смотреть в будущее. Но може...

проблемы начинаются когда надо начинать строить запросы динамически или условно, или когда надо передавать параметры с типами сложнее чем числа и строки, или когда запрос сложный и он просто не может определить типы, а когда надо еще и передавать эти параметры в хранимую функцию, да еще и например массивом, просагер удивляет кривотой решений и необходимостью копаться в его устройстве и особенностях передачи типов в протоколе постгреса. Попробуйте экспериментально потестить это. В его родной методичке такого не пишут. Если конечно за последние полтора года его не переписали и не встроили нормальную работу с функциями, парсерами и сериалайзерами типов и прочими болячками.

Danila- Автор вопроса
D
проблемы начинаются когда надо начинать строить за...

Обновление гита было полгода назад глобальное, остальные по мелочи дней 10-20 назад. Мельком исходники глянул, понравилось. Но тайные грабли всегда есть, поэтому решил спросить. А что по слонику? Он тоже не позволил сложные решения реализовать? И еще, у вас может есть гит, где вы сложные решения реализовывали? Я бы с удовольствием глянул:)

Danila
Обновление гита было полгода назад глобальное, ост...

нет, я не опенсорсник. Пробуйте, если есть время. Лишний опыт не повредит.

Danila- Автор вопроса
D
нет, я не опенсорсник. Пробуйте, если есть время. ...

Да вот пока нет времени, а проект уже в работе… вот думал что-то выбрать что-бы код попроще выглядел

У нас typescript

Danila- Автор вопроса
Max Makarov
У нас typescript

Ну так можно самому типы вешать на возвращаемые поля. И это не сильно затратно по времени.

Danila
Ну так можно самому типы вешать на возвращаемые по...

Зачем? Когда можно гененировать их из бд. У тебя не будет никогда инконсистентности данных, гарантируется single point of truth

Нет, там нет никакого оверхеда. Один из наших разработчиков контрибьютил эту штуку. Плюс она у нас в проде используется. Pgtyped ничего кроме генерации типов для typescript не делает

Danila- Автор вопроса
Max Makarov
Нет, там нет никакого оверхеда. Один из наших разр...

🤔, ладно, потестим... штука интересная. Спасибо

Там два варианта использования. Рекомендую использовать .sql файлы и импортировать запросы вот так:

а сам запрос выглядит вот так Удобно что нет мешанины из $1, $2, $3, $5, $6 в запросе. И query variables также типизируются.

Danila- Автор вопроса
Danila- Автор вопроса
Max Makarov
screenshot Там два варианта использования. Рекомендую использ...

о, да! тут оверхед почти минимальный (0.1-0.8мс)... вот это интересно... не очень привычно с .sql файлами, но интересно... благодарю :)

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

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

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
что за асемблер кста?
Shvabrikk Nya
19
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
This automated cryptocurrency trading system uses intelligent algorithms to buy low and sell high on leading crypto exchanges. Many users have already enjoyed significant prof...
Endu Wako
1
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Карта сайта