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

Михаил
19.08.2017
19:35:24

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. Но что-то у них с миграциями как-то не все гладко

Quantum Harmonizer
20.08.2017
10:49:50

Vik
20.08.2017
17:23:34
Java же
Hibernate, jpa, mybatis, там еще @HeapyHop Со товарищи каен пилят

Google

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

Vik
20.08.2017
17:25:52
Ну те я не вижу ничего kontlin specific
Походу что поддерживает jpa аннотации

Quantum Harmonizer
20.08.2017
17:31:01

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
Люди, какие есть варианты обратиться к главному классу? У меня просто чутка тупой вариант(

Михаил
20.08.2017
18:02:47

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

Dibro
20.08.2017
18:05:36

Михаил
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

Михаил
20.08.2017
18:57:14

Михаил
20.08.2017
18:58:59
если бы дефолтные методы были бы редким случаем, их бы вряд ли добавляли на уровне языка

Igor
20.08.2017
18:59:42

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

Андрей
20.08.2017
19:17:44

Михаил
20.08.2017
19:19:29

Михаил
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

Igor
21.08.2017
10:16:56

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]

Quantum Harmonizer
21.08.2017
10:31:13
Как в котлине список разбить sublist'ы поменьше?
Грубо говоря, нужно [1,2,3,4,5] разбить на [1,2],[3,4],[5]
Это, кажется, в 1.2 появится.

Boris
21.08.2017
12:02:32

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
усё понял, спс

Boris
21.08.2017
12:09:12

Sergey
21.08.2017
12:09:43

Artur
21.08.2017
12:10:03
спасибо, вопрос закрыт)

Dmitry
21.08.2017
12:10:49

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

Igor
21.08.2017
12:33:19

Boris
21.08.2017
12:34:00
да конечно можно, но уже микрооптимизации
я же так, не для стандартной библиотеки реализацию писал, а просто идею как просто это реализовать

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

Artur
21.08.2017
12:40:05

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?)

Boris
21.08.2017
13:17:17

Artur
21.08.2017
13:17:57
да
Stream'ы Жавовые показали на пориции в 100 - 54с, дальше измерять не стал.
А старый добрый for показал 9секунд на 100

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