
Kira
26.02.2018
21:29:40
А, явовский

Bogdan
26.02.2018
21:33:57

Victor
26.02.2018
21:35:07
ну можно наебаться
но зато удобно

Google

Victor
26.02.2018
21:35:20
хотяяя

Igor
26.02.2018
21:47:45
Ты же в курсе, что Option в котлин не нужен?


Руслан
26.02.2018
22:04:16
И снова время митапов!
Уже прошло несколько митапов из предыдущего списка, и от них остались видеозаписи:
PS JAVA MEETUP #9 Kotlin: практика разработки современного языка программирования https://www.youtube.com/watch?v=zARWLUdZWXs
Записей с Kotlin Meetup SPb еще нет, но должны скоро появиться тут: https://www.youtube.com/channel/UCSlqvh44HWn32t3C1XowgHQ/videos, подписывайтесь! и следите за чатом @kug_spb
Записи с BKUG про Ktor и Kotlin/Native: https://www.youtube.com/watch?v=bfEJZwSmy1g&list=PLoo7Ank5cc7ELZbJ3JNWtH6pfDCZHkwTv
Но на этом не все, в ближайшее время вас ждет новая порция Kotlin:
Киев, 2 марта: KyivKUG - Automation with Kotlin / Animation with Kotlin https://www.meetup.com/KyivKUG/events/248094816/
Москва, 15 марта: Kotlin Meetup в Leroy Merlin. https://twitter.com/JetBrainsRu/status/966281944068739072
Киев, 24 марта: Kotlin Night Kyiv https://www.meetup.com/KyivKUG/events/246800518/


Bogdan
26.02.2018
22:49:34
а в witer сразу нужный объект принимать не судьба?
все больше смахивает на костыли и палки

Boris
27.02.2018
03:20:22
кто-нибудь использовал groupingBy?

Евгений
27.02.2018
03:27:17
groupBy

Boris
27.02.2018
03:27:52

Евгений
27.02.2018
03:28:24
вот и я говорю, полный путь до метода надо указывать) а то не понятно об чем собссно вопрос
в расширениях для Collection нету groupingBy, вроде

Boris
27.02.2018
03:29:14
Я думаю тот кто использовал, тот знает полный путь ?

Google

Boris
27.02.2018
03:30:11
В 1.1 появился

Евгений
27.02.2018
03:30:15
и правда есть

Boris
27.02.2018
03:31:27

Victor
27.02.2018
05:03:47

Mikhail
27.02.2018
06:29:20
Если ты не используешь arrow и не имеешь HKT, то тебе нафиг это не надо

Victor
27.02.2018
06:31:22
как можно использовать arrow.core.Option и не использовать arrow?)

Mikhail
27.02.2018
06:32:55
Я не Ванга, импорты по скриншотам кода не подставляю, речь шла о джавовом Option
Разве нет?

Victor
27.02.2018
06:33:04
orElse != ?:
Option.fromNullable(daohui.getPayment()).
orElse(daohui2.getFuckingPayment())
.orElse(daohui3.createFuckingPayment())
.getOrElse(getFuckingPayment())
речь шла о arrow.core.Option
с которым можно вот такое
Option.applicative().tupled(Some(1), Some("Hello"), Some(20.0))
// Some(Tuple3(a=1, b=Hello, c=20.0))
и вот такое
Option.monad().binding {
val x = none<Int>().bind()
val y = Some(1 + x).bind()
val z = Some(1 + y).bind()
x + y + z
}
//None
я лох и нихера подобного не умею и не применяю в проде, конечно же, но меня так восторг их ридми, что я взял
Пока пригодилось только orElse, но тоже вкусная штука

Mikhail
27.02.2018
06:36:32
Я б не стал arrow только ради опшна тащить

Victor
27.02.2018
06:36:59
он оборачивает же опшном
Option+ Try
ну вот такие штуки можно
mayBeA flatMap { a ->
mayBeB flatMap { b ->
mayBeC map { c ->
doSmth(a, b, c)
}
}
}

Google

Victor
27.02.2018
06:40:28
конечно можно спокойно обойтись без Option
можно и без котлина обойтись и на жабе писать

Mikhail
27.02.2018
06:41:32

Victor
27.02.2018
06:42:33
let2-9?
а
ну вариант, да
ну вообщем конечно по-правильному надо прикидывать, тащить arrow-kt и есть ли с него реальная польза.
Ну либо, если прод, иметь стандарт какой-то, юзать опшн или нет

Alexey
27.02.2018
07:45:43

Victor
27.02.2018
07:45:58
скоро, скоро :)
просто котлин впрод проще протащить, да и чо там говорить, скалу я абсолютно не знаю

Artur
27.02.2018
07:47:58

Alexey
27.02.2018
07:48:44
что по твоему должен делать get by lazy?

Igor
27.02.2018
07:49:41

Victor
27.02.2018
07:49:56
опять же, смотря когда
где-то лишний, где-то не лишний

Artur
27.02.2018
07:50:09

Victor
27.02.2018
07:50:36
или ты хочешь сказать, что ничего из arrow.core.Option не может быть полезным впринципе?

Igor
27.02.2018
07:52:09
Как и весь arrow.
Это бессмысленный порт котов на язык, который не проектировался для этого (они бы еще на java портану)

Alexey
27.02.2018
07:52:48
https://kotlinlang.org/docs/reference/delegated-properties.html#lazy

Google

Victor
27.02.2018
07:53:33
конечно можно обмазываться try-catch'ами

whalemare
27.02.2018
07:53:50

Victor
27.02.2018
07:54:19
http://arrow-kt.io/docs/datatypes/try/

Alexey
27.02.2018
07:54:25
а там композиции и вот это всё

whalemare
27.02.2018
07:54:42
понятно, спасибо
ща как rxjava будет, кучу операторов учить и что-там когда должно вызываться, вместо старого доброго и прямого try-catch

Admin
ERROR: S client not available

Victor
27.02.2018
07:55:35
есть еще всякие монады и прочее, но, во-первых, я понимаю это очень поверхностно, поэтому за это не буду говорить
во-вторых, в arrow это ужасно документировано (почти никак)
ну не учи..)

Alexey
27.02.2018
07:56:22

Artur
27.02.2018
07:56:28

Alexey
27.02.2018
07:56:47
Для val его и так нельзя же

whalemare
27.02.2018
07:56:48

Artur
27.02.2018
07:57:05

whalemare
27.02.2018
07:57:26
у делегата.

Alexey
27.02.2018
07:57:36
дичь какая то получается, зачем это делать на гетерах/сетерах

Google

whalemare
27.02.2018
07:57:39
если свой напишешь с set, то будет тебе лези для вара)

Artur
27.02.2018
07:58:32
да, похоже, что ditch
Всю эту ditch можно безболезненно разрулить через
field
и можно обойтись без Lazy и setter остается.

Alexey
27.02.2018
08:09:13
oh boy

Igor
27.02.2018
08:09:14

Victor
27.02.2018
08:09:48
ну пока в прод нормальну идут Try и Option'ы
особенно вкусно try с флетмапами всякими

Artur
27.02.2018
08:10:06
oh boy
То ли еще будет)
Давно на котлине кодишь?

Victor
27.02.2018
08:10:08
когда работаешь с чтением/записью итд

Alexey
27.02.2018
08:10:53

Igor
27.02.2018
08:15:13

Victor
27.02.2018
08:15:46
там он не асинхронный
дао все возвращают try
и например у тебя сервис транзакционный

Igor
27.02.2018
08:16:53
Те ты вообще не пишешь асинхронный код?

Victor
27.02.2018
08:17:21
ну в том проекте, что на котлине, пока не писал
но использование arrow в проекте разве запрещает писать асинхронный код? =) К чему вопрос?)

Alexey
27.02.2018
08:18:03
асинхронный код в котлине пока годен только в отрыве от БД

Igor
27.02.2018
08:21:02

Евгений
27.02.2018
08:21:02
я бы сказал, в отрыве от любого IO