@kotlin_lang

Страница 854 из 982
Mi
07.09.2018
06:43:02
jOOQ не смотрели? ИМХО, лучшее, что сейчас есть
Не думаю что обёртка над SQL может конкурировать с полноценным ORM

Alexey
07.09.2018
06:59:04
Лучше голого jdbc еще ничего не придумали ?

Mi
07.09.2018
06:59:23
?

Alexey
07.09.2018
07:00:54
Ну вот серьёзно, если нужно что то за приделами CRUD все либы просто посысывают

Google
Igor
07.09.2018
07:03:06
Ну вот серьёзно, если нужно что то за приделами CRUD все либы просто посысывают
Камон, jOOQ хранимки поддерживает, какой посасывает-то?

Alexey
07.09.2018
07:06:48
Камон, jOOQ хранимки поддерживает, какой посасывает-то?
И прямо в синтаксис любой базы может? Да и причём тут хранимки?

Igor
07.09.2018
07:11:17
Она ещё и платная.
Ващет есть бесплатная версия

Loljeene
07.09.2018
07:11:45
Ващет есть бесплатная версия
Для опенсорс СУБД. Ещё бы работать с такими

Igor
07.09.2018
07:11:48
Что кроме PostgreSQL вам нужно-то?)

Loljeene
07.09.2018
07:12:31
Что кроме PostgreSQL вам нужно-то?)
Что то кроме оракла и db2 используют?

Зеркалочка, чё уж

Паша
07.09.2018
07:33:52
Ну вот серьёзно, если нужно что то за приделами CRUD все либы просто посысывают
Ну если дб-специфик запросы прям нужны то всегда есть варианты

Alexey
07.09.2018
07:36:50
Google
Alexey
07.09.2018
07:38:25
Если бы в коклине была возможность делать кастомную строковую интерполяцию, то можно было бы написать удобный jdbc враппер

И писать что то в духе sql"select foo from bar where baz = $bazValue"

Alexander
07.09.2018
07:39:36
А зачем такая гадость? DSL же на порядок лучше и красивее.

Alexey
07.09.2018
07:39:56
sql - это уже итак dsl

это всё равно что придумывать какие кастомные dsl для html

Alexander
07.09.2018
07:40:17
Я имею в виду type safe dsl

Alexey
07.09.2018
07:40:44
кек, в каком месте там вообще typesafe?

Alexander
07.09.2018
07:40:59
Ага, учитывая что котлиновские кастомные dsl для html с блеском используются и пользуются большим спросом

Alexey
07.09.2018
07:41:27
Прям большим? Все фронты уже пишут на kotlin dsl?

Alexander
07.09.2018
07:41:47
Не все, но в кторе многие пишут

Если не нужна динамическая подстановка шаблонов, то он существенно удобнее чем шаблонизаторы вроде freemarker

Kirill
07.09.2018
07:43:47
кек, в каком месте там вообще typesafe?
Примерно в том же, где и в слике :peka:

Паша
07.09.2018
07:44:23
кек, в каком месте там вообще typesafe?
Ну камон! Ты пишешь колонки таблицы и получаешь сгенеренный класс модели. фигачишь запросы с его полями. Если поменял структуру таблицы, поменяется класс и компиляция упадет

Отличная фича как раз, которой нет в sql

Паша
07.09.2018
07:46:20
Причем здесь релиз? речь про написание кода

У тебя от одной таблицы зависит много приложений?))) у тебя уже проблемы...

Alexey
07.09.2018
07:47:48
У тебя от одной таблицы зависит много приложений?))) у тебя уже проблемы...
Эмммм, ну вот у меня есть куча приложений, которые только читают данные из таблицы, для них это просто источник данных

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

Google
Alexey
07.09.2018
07:51:05
Я вобщем не против использования всяких высокоуровневых штук для CRUD сервисов

Loljeene
07.09.2018
07:51:30
Банкиры приехали!
Ни разу не банкиры. Логистика

Alexey
07.09.2018
07:51:36
Но если нужно что то сложнее, то всё становится оч жёстко с ними

Ни разу не банкиры. Логистика
Все прост считают что только банки сидят на энтерпрайз монстрах

Паша
07.09.2018
07:59:19
Все прост считают что только банки сидят на энтерпрайз монстрах
Ну как правило в честных айти-организациях проще найти спецов по постгресу и заплатить им чем платить ораклу

Alexey
07.09.2018
08:04:59
Ну как правило в честных айти-организациях проще найти спецов по постгресу и заплатить им чем платить ораклу
Вы же ведь понимаете что не все компании заказывают разработки с нуля? Например всякие gis, нефтянки, проектные институты, есть готовые решения, которые покупаются потому что надо здесь и сейчас, а не через 2 года разработки. И эти коробки как раз спокойно могут работать поверх oracle и db2 А потом уже появляются хотелки поверх того, что уже есть и вокруг этой базы пишутся новые приложения

Aleksandr
07.09.2018
08:44:25
+1 любой софт есть решение задач бизнеса; критерий его качества и ценности только факт решения поставленных задач

Quantum Harmonizer
07.09.2018
08:46:36
но наверное больше для джавы, чем для котлина
для груви и кложуры, я бы сказал)

Паша
07.09.2018
08:49:39
Вы же ведь понимаете что не все компании заказывают разработки с нуля? Например всякие gis, нефтянки, проектные институты, есть готовые решения, которые покупаются потому что надо здесь и сейчас, а не через 2 года разработки. И эти коробки как раз спокойно могут работать поверх oracle и db2 А потом уже появляются хотелки поверх того, что уже есть и вокруг этой базы пишутся новые приложения
разумеется, я поэтому и написал про более айти-организации — как правило там больше вкладываются во внутренние, скажем так, ресурсы и делают такие миграции, если нужно. Я попрошу не забыть, что возможна и миграция с оракла на постгрес (и есть не один пример такой), которая реально оправданна с точки зрения бизнеса итд. Так что мир не стоит на месте ) Если кому-то хватает денег на оракл итд, то это прекрасно, но на мой взгляд идёт шифт с "толстая БД для всего" на "средняя БД для ОЛТП" + "хадуп/любая другая БД для ОЛАП" + "другие БД для специфичных задач", на базе опенсорса

Bogdan
07.09.2018
09:12:17
https://tproger.ru/news/kotlin-native-v09-release

Nanodesu
07.09.2018
11:12:13
Всем привет. По TornadoFx может кто подсказать? Почему при использовании setOnScroll на ScrollPane евент листенер срабатывает только когда скроллбар упирается в верхнюю или нижнюю границу? Пример кода: https://pastebin.com/H6zMiApk

Nanodesu
07.09.2018
11:14:09
Изначальная проблема в том, чтобы просто увеличить скорость прокрутки при помощи колеса

Alexander
07.09.2018
11:14:22
Это по-моему не к торнаде, а к JavaFx

Прокрутка там по-моему просто каким-то из пропертей регулируется

Точняк, это родной метод JavaFX: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/input/ScrollEvent.html

https://stackoverflow.com/questions/32739269/how-do-i-change-the-amount-by-which-scrollpane-scrolls

Nanodesu
07.09.2018
11:21:51
Ага! Если навесить листенер не на сам ScrollPane, а на его содержимое (VBox в моём случае), то всё работает как надо. Непонятно только почему таки если навешивать на сам ScrollPane - поведение такое странное

Alexander
07.09.2018
11:24:18
А это надо почитать документацию. Я подозреваю, что если навесить на саму панель, он срабатывает только когда прокручиватсья начинает сама панель, то есть когда внутренняя крутилка в край упирается

Nanodesu
07.09.2018
11:25:09
Аа, это на тот случай если у нас одна панель находится внутри другой? Звучит разумно

Google
Alexander
07.09.2018
11:25:46
В JavaFx такие штуки не всегда очевидны. Правда они нигде не очевидны.

Nick Senchurin
07.09.2018
11:28:57
подскажите, как вызывать екстеншн для коллекции orEmpty из джавы?

метод лежит в ArraysKt , но в джаве не автокомплитит

Alexander
07.09.2018
11:30:06
Из джавы <имя метода>(<ресивер>)

как обычный статический метод

Nick Senchurin
07.09.2018
11:30:38
да, это понятно, а какой класс именно этот метод вызывает?

лист?

Alexander
07.09.2018
11:30:41
Если экстеншн с параметрами, то ресивер - первым

Admin
ERROR: S client not available

Alexander
07.09.2018
11:31:03
Не знаю, контрол клик в идее или посмотреть в документацию

Nick Senchurin
07.09.2018
11:32:19
ну да, меня перекидывает в ArraysKt, но в джаве этого метода нет

ладно, гуглы в помощь, чето такая примитивная штука , а я на ней застропорился )

Alexander
07.09.2018
11:33:17
Так может котлиновский стдлиб не подключен?

Nick Senchurin
07.09.2018
11:34:34
import kotlin.collections.ArraysKt;

вроде есть

Alexander
07.09.2018
11:35:52
Так он реифицированный: https://github.com/JetBrains/kotlin/blob/44ecfb2fb8630560aac78422e9f053c1cdfbc158/libraries/stdlib/jvm/src/kotlin/collections/ArraysJVM.kt#L18

Из джавы он вообще работать не будет

у принсипе

для инлайнов байткод на лету генерится

Nick Senchurin
07.09.2018
11:36:47
аа, вот в чем дело

Google
Nick Senchurin
07.09.2018
11:36:59
ну до таких тонкостей еще не дорос, спасибо, почитаю на досуге

Alexander
07.09.2018
11:37:42
Просто если он инлайн, то он генерится компиллятором в том месте, где вызван. В библиотеке его просто нет

Alexey
07.09.2018
11:37:53
для инлайнов байткод на лету генерится
А разве такой же метод не остаётся в рантайме? Я вроде смотрел как то байткод и он там был

Alexander
07.09.2018
11:38:52
В рантайме он есть, если он где-то котлиной вызван. Но для Джавы -то он его сгенерировать не может, он же тип не знает. А джавовый компилятор ничего не знает про инлайны

dimiii
07.09.2018
11:45:58
А почему в Котлине дженерики не овеществленны тотально и по дефолту? В том числе и для конструкторов.

Alexander
07.09.2018
11:46:46
But how?

Хотя что называть дженериками?

Так-то они есть и для конструкторов

Вы про реификацию?

dimiii
07.09.2018
11:49:03
But how?
Не знаю, но вчерашняя беседа про Hibernate напомнила мне про автора Ceylon полез посмотреть как там у них дела теперь (уныло) и среди фич увидел подобное

Alexander
07.09.2018
11:49:18
А что именно?

dimiii
07.09.2018
11:49:25
А что именно?
https://ceylon-lang.org/blog/2013/02/21/reification-finally/

Alexander
07.09.2018
11:49:26
реификация для классов?

Об этом говорили на форуме. Может быть сделают. Но вообще, сейчас никто не мешает сделать инлайн метод, который будет маскироваться под конструктор (начинаться с большой буквы). Мне кажется, что это лучше

dimiii
07.09.2018
11:52:35
Об этом говорили на форуме. Может быть сделают. Но вообще, сейчас никто не мешает сделать инлайн метод, который будет маскироваться под конструктор (начинаться с большой буквы). Мне кажется, что это лучше
Вопрос дисциплины, как по мне, лучше все-таки без полумер и контролировать компилятором. Может авторы посмотрят на Dart2 и проведут работу над ошибками в отношении конструкторов.

Alexander
07.09.2018
11:53:30
Я не уверен, что это такая уж ошибка. Если инлайнится только конструктор - это одно, а если весь класс - это совсем другое.

dimiii
07.09.2018
11:57:02
Я не уверен, что это такая уж ошибка. Если инлайнится только конструктор - это одно, а если весь класс - это совсем другое.
Да это я уже докучи про конструкторы вспомнил. К тому же, в Dart это действительно качественно сделано (named constructors, factory constructors и прочие удобства)

Alexander
07.09.2018
11:58:49
Я не пробовал в Dart, но у дарта нет груза совместимости с джавой. Я вообще сторонник минимизации языковых фич в пользу универсализации существующих. В котлине за счет связки конструктор + factory method в компаньене можно сделать практически что угодно.

Quantum Harmonizer
07.09.2018
13:42:22
Есть ли библиотека для описания структур, типа как сделано с таблицами тут? https://github.com/andrewoma/kwery/tree/master/mapper#mapping-the-structure

Интересует простое, гибкое и универсальное. Ну, как всегда)

Страница 854 из 982