Size: a a a

Kotlin Community

2019 December 06

AT

Alexey Tkachenko in Kotlin Community
Vladimir Petrakovich
И они типа не превращаются в нечитаемое месиво, когда становятся хоть немного сложными?
ну вот да, как-то не превращаются
источник

EK

Eugeny Karpov in Kotlin Community
А чем не понравилось?
источник

AT

Alexey Tkachenko in Kotlin Community
Eugeny Karpov
От жука с тайп сейфти в пользу строк? Ну, такое
Ну, согласен, такое, конечно. Но мне оказалось важнее повысить читабельность кода
источник

VP

Vladimir Petrakovich in Kotlin Community
Даже если забыть про типобезопасность, жук позволяет удобно собирать запросы из кусочков. Со строками обычно получается не очень.
источник

AT

Alexey Tkachenko in Kotlin Community
ну вот мне не подошло
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexey Tkachenko
Ну, согласен, такое, конечно. Но мне оказалось важнее повысить читабельность кода
А у вас запросы по структуре фиксированные или в зависимости от входных параметров могут накидываться уловия, сортировки и прочее?
источник

QH

Quantum Harmonizer in Kotlin Community
Alexey Tkachenko
Как только запросы становятся чуть сложнее примитивных, код становится абсолютно нечитаемым. А уж если вам надо не просто написать  очень сложный запрос, а ещё и сгенерировать его — пиши пропало, никто потом не разберётся
Ох. А можно пример?
источник

AT

Alexey Tkachenko in Kotlin Community
Andrew Mikhaylov
А что можно использовать для работы с чистым JDBC, кроме чистого JDBC? Вроде остальное противоречит идее чистоты.
Например, что-то такое https://github.com/vsch/kotlin-jdbc
источник

AM

Andrew Mikhaylov in Kotlin Community
Понял, принял.
источник

EK

Eugeny Karpov in Kotlin Community
Alexey Tkachenko
Как только запросы становятся чуть сложнее примитивных, код становится абсолютно нечитаемым. А уж если вам надо не просто написать  очень сложный запрос, а ещё и сгенерировать его — пиши пропало, никто потом не разберётся
Работал в сбере, квери были сложные и здоровенные. Читались отлично, разве что для копипасты запроса в sql developer надо включать логирование
источник

EK

Eugeny Karpov in Kotlin Community
И главное это дба нравилось, что они могут прочитать запрос на ревью
источник

QH

Quantum Harmonizer in Kotlin Community
Кстати, отличный плюс голого SQL — возможность скопировать его куда-нибудь
источник

AT

Alexey Tkachenko in Kotlin Community
Vladimir Petrakovich
А у вас запросы по структуре фиксированные или в зависимости от входных параметров могут накидываться уловия, сортировки и прочее?
в зависимости от параметров накидываются, да
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexey Tkachenko
в зависимости от параметров накидываются, да
Тогда я точно не представляю, как вы живёте со строками, и при этом стало лучше
источник

AT

Alexey Tkachenko in Kotlin Community
ну чорт его знает, может, нам стало и хуже, но нам пока нравится
источник

AT

Alexey Tkachenko in Kotlin Community
Ещё один плюс plain SQL перед всеми Jooq, ORM и прочими обёртками: можно придумать любой запрос и просто написать его в коде и выполнить. И не думать, как же его превратить во что-то, что обёртка умеет понимать и как правильно получить результат
источник

AT

Alexey Tkachenko in Kotlin Community
потому что на то, чтобы утоптать в Jooq сложный запрос с рекурсивными CTE, с вызовами функций и хранимок, с непростыми типами вроде массивов и геокоординат, может уйти полдня запросто
источник

AT

Alexey Tkachenko in Kotlin Community
а уж про всякие хибернейты я и не говорю
источник

VP

Vladimir Petrakovich in Kotlin Community
Ну всякие хибернейты точно не для этого)
А с рекурсивными CTE и особыми типами я не работал, возможно, там действительно не всё так просто.
источник

M

Marat.k in Kotlin Community
Alexey Tkachenko
А что можете посоветовать для работы с читым JDBC? Есть годные библиотечки или всё руками?
А jooq не рекомендую, пробовал в нескольких проектах, потом отказался
Всё руками сейчас у нас и по сравнению с чистой Java, код выглядит просто конфеткой 😃
источник