@kotlin_lang

Страница 287 из 982
Artem
19.08.2017
19:35:05
Случайно попадаются) И сам некоторое время в начале своего пути тоже по глупости делал такие вещи ужасные

Михаил
19.08.2017
19:35:24
А зачем огород? Ушёл в бэкграунд, всё сделал, вернул в UI.
ну для простых случаев да, но все же на рх можно довольно просто сложную логику с параллельными выполнениями писать

Quantum Harmonizer
19.08.2017
19:36:11
ну для простых случаев да, но все же на рх можно довольно просто сложную логику с параллельными выполнениями писать
К сожалению, в большинстве приложений логики сложнее, чем два-три раза сходить в интернет и вернуть результат, не найти.

Igor
19.08.2017
19:36:36
из него получается вишенка
Только сегодня закидали эту вишенку в чат ?

Google
Anton
19.08.2017
19:36:50
с O(n^3) ?

Igor
19.08.2017
19:37:07
Да. Вот так пишет 90% юзеров RX

Anton
19.08.2017
19:37:53
да никто так не пишет))

Михаил
19.08.2017
19:43:45
лучше скажите как с anko создать текст вью, но не атачить его к паренту?)

Quantum Harmonizer
19.08.2017
19:45:26
ну или TextView(context).apply { ... }

Rasul
20.08.2017
10:38:39
Добрый день. Есть ли у кого-н опыт разработки backend'а на kotlin? Если да, то какими средствами работы с БД вы пользуетесь?

Dzmitry
20.08.2017
10:39:16
Скандалы, интриги, расследования - Котлин не настолько популярен, что бы заводить для него подсветку синтаксиса на Stack Overflow https://meta.stackexchange.com/questions/299920/support-kotlin-in-code-highlighting/299925#299925

Rasul
20.08.2017
10:41:11
Если говорить о .net, то там есть очень удобный Entity Framework с его Code first и поддержкой миграций. Искал нечто похожее для java/kotlin. Нашел hibernate и ebean. Но что-то у них с миграциями как-то не все гладко

Google
Rasul
20.08.2017
17:24:53
а как вы относитесь к ebean?

Vik
20.08.2017
17:25:52
Ну те я не вижу ничего kontlin specific

а как вы относитесь к ebean?
Я его в дикой природе не видел

Походу что поддерживает jpa аннотации

Quantum Harmonizer
20.08.2017
17:31:01
Ну те я не вижу ничего kontlin specific
Вот Kotlin-Specific, но вроде им плотно никто не занимается. https://github.com/JetBrains/Exposed

Rasul
20.08.2017
17:32:02
да, интересный вариант

Vik
20.08.2017
17:33:01
Mybatis выглядит ок с котлином

https://github.com/tokuhirom/java-samples/blob/master/spring-boot-mybatis-kotlin/src/main/kotlin/com/example/dao/BlogDao.kt

Там у чувака дикая смесь джавы и котлина

И ломбок еще

Вот это будет получше

https://github.com/kazuki43zoo/qiita-materials/tree/master/mybatis-spring-boot/mybatis-kotlin-demo/src/main/kotlin/com/example

MainDRY
20.08.2017
17:56:05
Люди, какие есть варианты обратиться к главному классу? У меня просто чутка тупой вариант(

MainDRY
20.08.2017
18:03:24
Если есть метод какой то, который нужен обязательно в главном классе

И надо его вызвать из другого класса

Михаил
20.08.2017
18:04:00
Главный имеется ввиду родительский?

MainDRY
20.08.2017
18:04:09
Да

Михаил
20.08.2017
18:04:37
super.method() же)

Google
Руслан
20.08.2017
18:05:34
Hibernate, jpa, mybatis, там еще @HeapyHop Со товарищи каен пилят
каен гуд май фриенд, вери сун котлин интегрейшен пройвадинг май фриенд

Dibro
20.08.2017
18:05:36
super.method() же)
в котлине ещё и super<Foo>.bar() можно

Михаил
20.08.2017
18:06:15
Как расшифровывается?)

Dibro
20.08.2017
18:08:25
Это как?
там что то с множественным наследованием и интерфейсами

Это как?
я сам не использовал особо, так что не помню

Михаил
20.08.2017
18:19:10
Действительно, можно выбирать между вызовом имплементации из интерфейса и из родительского класса. Редкий кейс конечн)

Михаил
20.08.2017
18:30:24
Действительно, можно выбирать между вызовом имплементации из интерфейса и из родительского класса. Редкий кейс конечн)
ну если дефолтные методы в интерфейсе есть, то не редкий (для java 8 вполне стандартный)

Михаил
20.08.2017
18:57:14
ну если дефолтные методы в интерфейсе есть, то не редкий (для java 8 вполне стандартный)
Часто используешь интерфейсы с дефолтными имплементациями?))

Михаил
20.08.2017
18:58:59
Часто используешь интерфейсы с дефолтными имплементациями?))
я под java 8 еще не прогал (только под андроид пока), так что прелесть дефолтных методов ощутить еще не успел (да и вообще как-то заюзать их где-либо не хотелось пока)

если бы дефолтные методы были бы редким случаем, их бы вряд ли добавляли на уровне языка

Михаил
20.08.2017
19:00:37
А в котлин? (Имхо спорная фича)
мне не очень понравился оверхед в байт-коде, который дает их реализация в котлине, так что пока воздержусь от их использования (а вообще, пока, на двух проектах на котлине, не было кейса их заюзать)

Андрей
20.08.2017
19:17:44
если бы дефолтные методы были бы редким случаем, их бы вряд ли добавляли на уровне языка
На уровне языка в джаве они добавлены не потому, что это так хорошо. Просто нужен был способ в старые интерфейсы добавить новые методы, при этом не нарушив обратной совместимости.

Михаил
20.08.2017
19:22:32
А там как генерится. Статика или какой то делегат?
сейчас точно не помню и могу ошибаться, но там что-то было касательно доп класса и статик метода

Igor
20.08.2017
19:24:06
А там как генерится. Статика или какой то делегат?
https://youtu.be/yYG12qaxWO4?t=19m7s Особенно интересно https://youtu.be/yYG12qaxWO4?t=20m50s - те зачем эту фичу добавил вообще не понятно. Возможно хотели закостылить для старой Java, а на новой делать по правильному, но что-то не срослось у них и с Java8.

Михаил
21.08.2017
04:28:33
у когонибудь есть пример работы котлина и powermock?

Boris
21.08.2017
05:16:41
Методы с реализацией в интерфейсах это реально удобно и красиво. Иногда их можно заменить на экстеншн методы, но это только если ты уверен, что ты не будешь их переопределять

DarkMentat
21.08.2017
10:08:43
вот я их тоже юзаю, получается что-то похожее на трейты.

Google
DarkMentat
21.08.2017
10:19:09
А какие кейсы?
Типа есть интерсейсы типа CanOpenDialog или CanShowMessage. И те активити, которые должны уметь это делать наследуют этот "трейт"

или фрагменты

Artur
21.08.2017
10:30:37
Как в котлине список разбить sublist'ы поменьше? Грубо говоря, нужно [1,2,3,4,5] разбить на [1,2],[3,4],[5]

Artur
21.08.2017
12:03:40
простой partition

Объем данных большой и для оптимизации его нужно обработать частями, разбив основной список на более мелкие

Sergey
21.08.2017
12:08:39
в 1.2 будет window функция

Artur
21.08.2017
12:08:58
усё понял, спс

Sergey
21.08.2017
12:09:43
Объем данных большой и для оптимизации его нужно обработать частями, разбив основной список на более мелкие
fun <T> List<T>.balancedChunks(max: Int): List<List<T>> { val chunkSize = Math.ceil(size / Math.ceil(size / max.toDouble())).toInt() return (0 until size step chunkSize).map { subList(it, minOf(it + chunkSize, size)) } }

Artur
21.08.2017
12:10:03
listOf(1, 2, 3).partition { it == 2 }
оверхед в моем случае

спасибо, вопрос закрыт)

Dmitry
21.08.2017
12:10:49
listOf(1, 2, 3).partition { it == 2 }
тут всего 2 списка будет же, автору нужно коллекцию подсписков по размеру

Artur
21.08.2017
12:11:20
У Rx есть вполне подходящий buffer Для этих целей)

через него сделаю

Boris
21.08.2017
12:29:50
fun main(args: Array<String>) { val result = sequenceOf(1, 2, 3, 4, 5, 6, 7).splitBy(2).toList() println(result) } fun <T> Sequence<T>.splitBy(size: Int): Sequence<List<T>> { val iterator = iterator() return generateSequence { iterator.take(size) } } fun <T> Iterator<T>.take(size: Int): List<T>? { var count = 0 val result = ArrayList<T>() while (count < size && hasNext()) { result.add(next()) count++ } return if(result.isNotEmpty()) result else null }такая вот получилась фигня

даже ленивая

Google
Boris
21.08.2017
12:34:00
да конечно можно, но уже микрооптимизации

я же так, не для стандартной библиотеки реализацию писал, а просто идею как просто это реализовать

Sergey
21.08.2017
12:37:04
а вообще да, можно взять просто код из стандартной либы

Igor
21.08.2017
12:40:47
Кстати, есть еще java.util.SubList<T> - можно попробовать его еще заюать для splitBy (если кому заняться нечем)

Artur
21.08.2017
12:52:52
Итого: 11000 элементов С помощью Rx и оператор Buffer 100 - 18c 500 - 14c 1000 - 14c С помощью Kotlin и приведенный splitBy метод 100 - 47с 500 - 17с 1000 - 16с

Слева размер порции, справа затраченное время в секундах на обработку всех элементов.

Igor
21.08.2017
12:54:22
shipilev.jpeg ? (или это JMH?)

Artur
21.08.2017
13:17:57
да

Stream'ы Жавовые показали на пориции в 100 - 54с, дальше измерять не стал.

А старый добрый for показал 9секунд на 100

Boris
21.08.2017
13:19:26
Так что если поедешь свой кейз, можно оптимизировать

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