@kotlin_lang

Страница 653 из 982
Valentin
28.04.2018
13:37:59
реляционные БД, думаю, все блокирующие

Viach
28.04.2018
13:38:03
О_о ты что-то много накрутить хочешь за раз. @ManyToMany скорее про достаточно сложные реляционные отношения, уверен что в монге такое наварачивать стоит?

Ivan
28.04.2018
13:38:20
могу предпололжить, что для монги написан костыль, который уже и не костыль ибо работает нормльно

Google
Valentin
28.04.2018
13:39:23
Впринципе, в монго возможны связи. Если уже очень хочется реактивщины, то можно пожертвовать. Насколько это оправдано - вопрос

Ivan
28.04.2018
13:39:48
реляционные БД, думаю, все блокирующие
есть postgres-async пакет. Но он свеж и я боюсь его юзать, потому что и так ничего не понимаю

Valentin
28.04.2018
13:40:04
я бы тоже побоялся )

Ivan
28.04.2018
13:40:33
Впринципе, в монго возможны связи. Если уже очень хочется реактивщины, то можно пожертвовать. Насколько это оправдано - вопрос
Мне привычно отсюда зайти, потому что я с ангуляра и реактивщину уже и возненавидеть и полюбить успел)

Viach
28.04.2018
13:41:17
реляционные БД, думаю, все блокирующие
https://blogs.oracle.com/java/jdbc-next:-a-new-asynchronous-api-for-connecting-to-a-database

Valentin
28.04.2018
13:41:50
Oracle is proposing

=)

Viach
28.04.2018
13:42:01
но это скорее будущее, возможно не ближайшее

Valentin
28.04.2018
13:42:32
да и вообще, как может быть acid без блокировок

ин зе фёст плейс, как говорят на руси

….оу..оптимистик локинг же

но на уровне БД должна быть поддержка

Vladimir
28.04.2018
13:44:47
да и вообще, как может быть acid без блокировок
А при чём тут ACID и блокирующий код?

Google
Valentin
28.04.2018
13:45:20
при том что без блокирующего кода нельзя в acid …. (на самом деле можно, как я выше указал, например)

Vladimir
28.04.2018
13:46:00
Это не так

Ivan
28.04.2018
13:46:24
Крутой пропозал, верю что мир в котором блокировки и шардинг решены строго возможен)

Жабра
28.04.2018
13:46:26
JetBrains представила новую возможность языка программирования Kotlin — теперь код можно запускать и тестировать прямо внутри веб-страницы. Разработчики рекомендуют использовать технологию для создания обучающих курсов и примеров в блогах: https://tproger.ru/news/embedded-kotlin/

Valentin
28.04.2018
13:46:55
Это не так
не так, да. Но на уровне СУБД должна быть поддержка, одним драйвером не отделаешься, подозреваю

Viach
28.04.2018
13:47:41
скорее от драйвера там особо уже не зависит, зависит от самой реализации на уровне БД

Vladimir
28.04.2018
13:48:21
Проблема только в драйверах JDBC. Блокировать текущий поток, ожидая ответа от СУБД, нет никакой необходимости.

Valentin
28.04.2018
13:49:34
но БД должна уметь отдавать асинхронные ответы

наверное.

Vladimir
28.04.2018
13:51:02
Со стороны СУБД нет никаких синхронных/асинхронных ответов, она просто пишет данные в сокет. Как клиент будет работать с этими данными или ожидать их наличия - это его дело.

Valentin
28.04.2018
13:51:45
ожидать = блок

Viach
28.04.2018
13:53:11
ты ! вроде пропустил, так проще гораздо реализовать - ждешь и держишь поток

Vladimir
28.04.2018
13:53:25
ожидать = блок
Нет, в этом-то и дело Одно дело вызвать InputStream.read() и висеть, занимая поток, а другое - использовать асинхронный ввод-вывод

Valentin
28.04.2018
13:54:04
но с другого конца провода кто-то должен сказать “товарищ, для тебя готовы данные, забирай”

Ivan
28.04.2018
13:54:16
Да, это как нода в один поток фигачит, но всё работает на колбеках/промисах/стримах

Valentin
28.04.2018
13:55:38
хм…подозрительно реалистичный сценарий

Vladimir
28.04.2018
13:56:04
но с другого конца провода кто-то должен сказать “товарищ, для тебя готовы данные, забирай”
Кажется, вы не совсем понимаете, как работает сетевое взаимодействие между приложениями

Valentin
28.04.2018
13:57:54
прост забыл, что в 21 веке есть сокет нио

Google
Ivan
28.04.2018
13:58:20
А в котлине есть возможеность как в тайпскрипте - Partial<User> например?
Разрешите, апну вопрос. То есть у меня есть класс, где все поля обязательны. И я могу его обернуть и все поля становятся необязательными

Ivan
28.04.2018
14:09:44
Спасибо парни, буду ещё писать! Пока смотрю спринг по этой книжке, но парни с ютуба так колдуют - такие вещи делают за пол экрана кода - хочется тож так научится)

Лёша
28.04.2018
14:15:55
Тогда возможно подойдёт конструктор с дефолтными параметрами

picty
28.04.2018
14:31:28
e: [kapt] An exception occurred: java.lang.NoClassDefFoundError: org/jetbrains/kotlin/serialization/jvm/JvmProtoBufUtil [kapt] An exception occurred: java.lang.NoClassDefFoundError: org/jetbrains/kotlin/serialization/jvm/JvmProtoBufUtil at me.eugeniomarletti.kotlin.metadata.KotlinClassMetadata$data$2.invoke(KotlinMetadata.kt:51) at me.eugeniomarletti.kotlin.metadata.KotlinClassMetadata$data$2.invoke(KotlinMetadata.kt:50) at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131) at me.eugeniomarletti.kotlin.metadata.KotlinClassMetadata.getData(KotlinMetadata.kt) org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:kaptDevelopDebugKotlin'. __ ext.kotlin_version = '1.2.41' classpath 'com.android.tools.build:gradle:3.1.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" Что не так? с 1.2.31 - всё ок с 1.2.40 и 1.2.41 - ошибка при сборке на устройство. Кто сталкивался?

Здесь пишут, что в 1.4.0 пофиксили: https://github.com/Takhion/kotlin-metadata/issues/8 но что-то в 1.2.41 - этого не видно...

Sasha
28.04.2018
15:03:43
версию Рума откатил на какую?
С бетки на стабильную.

picty
28.04.2018
15:06:27
С бетки на стабильную.
если я не ошибаюсь - Room вроде есть только alpha & beta. разве нет?

Sasha
28.04.2018
15:07:47
если я не ошибаюсь - Room вроде есть только alpha & beta. разве нет?
Стабильная уже давно есть, 1.0.0 и бетка 1.1.0

picty
28.04.2018
15:11:28
Стабильная уже давно есть, 1.0.0 и бетка 1.1.0
спасибо, не знал, всё на бетках сидел) - помогло! а где можно смотреть релизную версию(текущую)?

Ivan
28.04.2018
16:05:24
Всем привет еще раз! Вопрос по реактору из спринга



Смотрите, вот это работает. Раз в 5 секунд шлётся ивент. Можно ли сделать так, чтобы collectionChanged был бы не событием раз в 5 секунд, а чтоб при изменении коллекции событие уходило?

Чтоб как Publish Subject из rxJava

Google
Ivan
28.04.2018
16:12:57
Нашёл вот такой ответ https://github.com/reactor/reactor-core/issues/79 и ничего не понял. До этого использовал тока rxjs и использовал спокойно как eventBus const eventBus = new Subject(); eventBus.subscribe(() => console.log('Событие произошло')) window.addEventListener('onResize', () => eventBus.next()) Что-то типо того можно? Или плохо так?

You
28.04.2018
17:34:19
у меня есть функция fun <T> getPref(key: String, context: Context): T можно ли(и если можно, то как) сделать что-то типа when(T) { is String -> {} is Int -> {} } ?

Quantum Harmonizer
28.04.2018
17:35:21
но вообще, ситуация странная, я б рефакторил

You
28.04.2018
17:35:50
спасибо, погуглю такое

Admin
ERROR: S client not available

You
28.04.2018
17:36:08
но вообще, ситуация странная, я б рефакторил
это сходу придумано, конечно можно лучше

Quantum Harmonizer
28.04.2018
17:37:07
ну как бы тайпкастинг/тайпчекинг в целом ататат

Лёша
28.04.2018
17:39:54
Для работы с shared preferences (если они имеются в виду) есть отличная либа Kotpref

You
28.04.2018
17:40:46
а как лучше сделать? я просто юзаю hawk и одновременно с ним экран с префами, и получается 2 хранилища. Я для удобства в PrefUtil добавил такой метод для получения префа любого типа

inline fun <reified T: Any> getPref(key: String, context: Context): Any { return when(T::class.java) { String::class.java -> getStringPreference(key, context) Int::class.java -> getIntPreference(key, context) else -> { "todo"} } }

как-то так

Quantum Harmonizer
28.04.2018
17:42:32
Я таки Kotpref брал

You
28.04.2018
17:42:34
если вы ели, то извините

Quantum Harmonizer
28.04.2018
17:42:48
?

You
28.04.2018
17:43:05
?
не самое приятное зрелище я скинул)

Quantum Harmonizer
28.04.2018
17:43:42
не ок, можно же любой класс передать, выстрелит

Artem
28.04.2018
17:54:54
Я таки Kotpref брал
А я вот делегаты юзаю...

Quantum Harmonizer
28.04.2018
17:55:12
А я вот делегаты юзаю...
Kotpref на них и сделан

Google
Artem
28.04.2018
17:57:43
А зачем либа, если там не так и сложно написать самому

Bogdan
28.04.2018
17:59:06
А зачем либа, если там не так и сложно написать самому
ну наверное что бы каждый раз не писать

Artem
28.04.2018
17:59:47
ну наверное что бы каждый раз не писать
Один раз написал себе и осталось. Не, ну каждому своё конечно

Albert
28.04.2018
18:00:22
Потенциальная

Bogdan
28.04.2018
18:02:39
и почему бы с ней не поделится

Igor
28.04.2018
18:03:09
А я вот делегаты юзаю...
А зачем это все?.. Оно же в итоге мутабельное, без "транзакционной семантики", да ещё в рантайме может упасть, если типы не сойдутся.

Quantum Harmonizer
28.04.2018
18:03:11
Artem
28.04.2018
18:04:05
Потому что масса нюансов же.
Например? То, что она коммьюнити проверенная уже?

Quantum Harmonizer
28.04.2018
18:06:35
Например? То, что она коммьюнити проверенная уже?
Транзакции (не коммитить по одному полю). Работа с стринг-сетами.

Есть ещё binaryPrefs — огонь в том, что они реализуют интерфейс SharedPreferences. И там тоже куча нюансов (хотя это, конечно, целиком свой формат.)

Mikhail
28.04.2018
18:21:45
Если написал хорошо, то это уже либа)
Вот большинство "либ" для котлина (на андроид) по ощущениям выглядят как микронабор полезняшек

Тимур
28.04.2018
18:55:13
а где можно почитать/посмотреть про модель памяти в kotlin native? гугл что-то упорно выдает ссылки годичной давности, где написано "мы пока еще сами не знаем, как оно будет"

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