ее тащить в прод или использовать старый добрый slonik?
юзал, но это долбанная магия, из-за шаблонной строки там существенные архитектурные недостатки гибкости, и проблемы с типами, особенно когда дело касается хранимок, поэтому никаких просагеров и слоников, только pg.
слоник вроде pg под капотом использует, не?
Основная проблема в использовании шаблонных строк. Это может подойти только для очень простых круд-микросервисов, а в сложном бэке это ад. В том числе, если он был простым, а стал сложным. Я как раз переписывал на пг такой бэк, потому что это превращалось в мучение. Это совершенно бессмысленный "сахар", гораздо лучше обычные классические параметризованные запросы и управляемые подготовленные стейтменты. Убеждать не буду, хотите пройтись по граблям самостоятельно, и понять мою боль, я не против )
В том то и цель, чтобы смотреть в будущее. Но можете пример привести, где шаблонные строки не дали вам то, что дали классические параметризированные запросы? Надо глянуть, может в слонике для простых запросов можно использовать шаблонные строки, для сложных напрямую к pg параметризованные. Может это облегчило бы вам боль?)
проблемы начинаются когда надо начинать строить запросы динамически или условно, или когда надо передавать параметры с типами сложнее чем числа и строки, или когда запрос сложный и он просто не может определить типы, а когда надо еще и передавать эти параметры в хранимую функцию, да еще и например массивом, просагер удивляет кривотой решений и необходимостью копаться в его устройстве и особенностях передачи типов в протоколе постгреса. Попробуйте экспериментально потестить это. В его родной методичке такого не пишут. Если конечно за последние полтора года его не переписали и не встроили нормальную работу с функциями, парсерами и сериалайзерами типов и прочими болячками.
Обновление гита было полгода назад глобальное, остальные по мелочи дней 10-20 назад. Мельком исходники глянул, понравилось. Но тайные грабли всегда есть, поэтому решил спросить. А что по слонику? Он тоже не позволил сложные решения реализовать? И еще, у вас может есть гит, где вы сложные решения реализовывали? Я бы с удовольствием глянул:)
нет, я не опенсорсник. Пробуйте, если есть время. Лишний опыт не повредит.
Да вот пока нет времени, а проект уже в работе… вот думал что-то выбрать что-бы код попроще выглядел
У нас typescript
Ну так можно самому типы вешать на возвращаемые поля. И это не сильно затратно по времени.
Зачем? Когда можно гененировать их из бд. У тебя не будет никогда инконсистентности данных, гарантируется single point of truth
Нет, там нет никакого оверхеда. Один из наших разработчиков контрибьютил эту штуку. Плюс она у нас в проде используется. Pgtyped ничего кроме генерации типов для typescript не делает
🤔, ладно, потестим... штука интересная. Спасибо
а сам запрос выглядит вот так Удобно что нет мешанины из $1, $2, $3, $5, $6 в запросе. И query variables также типизируются.
ага, интересно, ща изучим. Спасибо :)
о, да! тут оверхед почти минимальный (0.1-0.8мс)... вот это интересно... не очень привычно с .sql файлами, но интересно... благодарю :)
Обсуждают сегодня