@kotlin_lang

Страница 865 из 982
Иван
13.09.2018
14:53:16
Если там цепочка преобразований?

Alexander
13.09.2018
14:53:50
А зачем let?

Иван
13.09.2018
14:54:24
SomeData .let { someData -> mapA(x) } .let { a -> mapB(a) } .let { b -> mapC(b) } .let { c -> mapD(c) } .let { d -> mapE(d) } .let { e -> mapF(e) }

Alexander
13.09.2018
14:56:19
В таком случае не должен выкидывать ворнинг

Google
Alexander
13.09.2018
14:56:41
Выкидывает обычно если используется поле

Alexey
13.09.2018
14:57:10
ключи мапы должны быть value типами, лучше всего строками
Топовый совет ? Вообще требование только одно - неизменяемость данных в ключе

Иван
13.09.2018
14:57:47
Выкидывает обычно если используется поле
Ну ладно, раскусил: SomeData .let { someData -> mapA(x, globalData.xxx) } .let { a -> mapB(a, globalData.yyy) } .let { b -> mapC(b, globalData.zzz) }

Boris
13.09.2018
15:02:21
использование грейдлового котлиндсл была бы на порядок проще если бы не груви-наследие — это господа пздц, так просто нельзя писать код, который будут использовать другие люди — раз уж на себя всё равно

Mikhail
13.09.2018
15:03:22
это бага, ты же его даже не как ресивер используешь

Alexander
13.09.2018
15:03:49
Градл - первопроходец. Их исходня ошибка была - писать потрох на груви. Если бы сразу груви был только в качестве обертки, а не внутри - было бы лучше

Boris
13.09.2018
15:13:57
да не, проблема не в потрохах как раз, внутри у них всё норм, а вот плагины писать на груви вот это как раз ключевая ошибка

причем их-то плагины написаны не на груви как раз а на джаве, зато почти все сторонние на груви и вот тут-то и начинается ппц

Google
Alexander
13.09.2018
15:15:46
Груви - хорошая вещь, но на самом деле ловушка в смысле масштабной разработки. У него есть совместимость с Java, но на самом деле только в одну сторону. Я сам на этом один раз здорово нарвался, когда написал большой кусок кода на Groovy.

да не, проблема не в потрохах как раз, внутри у них всё норм, а вот плагины писать на груви вот это как раз ключевая ошибка
Буквально на днях на это нарвался. Надо было использовать ssh. Пришлось писать груви модуль и подключать его в котлин билде

В принципе, это не проблема

Boris
13.09.2018
15:32:08
да тут дело-то не в совместимости, а том, что считается, что на груви можно написать кусок говна, главное, чтобы работало. И очень многие плагины так и написаны и использованием груви говно-магии — минимум типизации, минимум понимания происходящего даже имея исходники

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

как будто плагин для сборки это такая вещь, которую никак кроме как копипастой из доки законфигурить нельзя — на груви так и выходит, потому что никто (похоже даже автор) не знает реального api

Alexander
13.09.2018
15:35:53
А как питоноидам хорошо... Но вообще, у меня есть опыт на груви, кложуры довольно неудобно писать, все эти rehidrate сильно мутят воду. Без аннотаций разобраться, кто является делегатом вообще невозможно.

Andrey
13.09.2018
15:36:15
очень принципиально знать java если хочу писать на kotlin ?

Alexander
13.09.2018
15:36:31
Я до котлины думал, что это плата за удобство, но после того, как это удобно на котлине удивляюсь, почему раньше не додумались до этого

Boris
13.09.2018
15:37:14
груви по сути уже мертвый язык, сейчас нет ниодной причины его использовать, кроме привычки разве что

Alexander
13.09.2018
15:37:53
Есть. Для скриптов и парсинга конфигурационных файлов он все ще значительно удобвнее котлины

Bogdan
13.09.2018
15:38:05
очень принципиально знать java если хочу писать на kotlin ?
дока с примерами джава & котлин, а так не нужен, хотя некоторые "особенности" пришли из жабы

Celt
13.09.2018
15:38:10
Или того, что ты работаешь на IBM, которые очень любит этот язык.

Alexander
13.09.2018
15:38:28
Аналагоа GroovyShell пока нет, котлиновский скриптинг очень нестабильный, а компилятор тяжелый как слон

Еще пробел вместо скобок - это кошмар для программы, но очень удобно для всяких шелл-штук

Boris
13.09.2018
15:39:20
Есть. Для скриптов и парсинга конфигурационных файлов он все ще значительно удобвнее котлины
для скриптов — да, местами, из за того, что котлиновский скриптинг в зачаточном состоянии, для парсинга конфигурации? это вообще что?

Alexander
13.09.2018
15:39:41
Надо считать дсл из файла в рантайме

Alexander
13.09.2018
15:41:01
РЕПЛ опять же, на котлине с типами можно задолбаться, на груви все гораздо компактнее выглядит, так что я не стал бы его списывать, но надо его использовать именно как скриптовую нашлепку

Google
Boris
13.09.2018
15:41:09
Надо считать дсл из файла в рантайме
это как раз не большая проблема

Alexander
13.09.2018
15:41:56
Тащить с собой 20 м котлиноского компилятора и недокументированный движок или JSR223?

Boris
13.09.2018
15:42:18
т.е. это сложнее, чем в груви, да, потому что у котлина нету динамического класслоадера и нужно использовать скриптинг-енжин, но в целом не очень-то сложно

Тащить с собой 20 м котлиноского компилятора и недокументированный движок или JSR223?
ну, сейчас у тебя есть выбор: или удобство написания или размер рантайма

хотя соглашусь, компилятор мог бы быть и потоньше

ну и идее сейчас нельзя сказать, какой контекст у скрипта.. что тоже конечно затрудняет тулинг на котлине

Alexander
13.09.2018
15:45:17
ну, сейчас у тебя есть выбор: или удобство написания или размер рантайма
Ну, если ничего не писать собственно на груви, а ограничиться только тонкой оберткой...

Boris
13.09.2018
15:46:23
просто разница между ямлом и груви на мой взгляд не значительная, если иде тебе ничего один хрен не подсказывает

Alexander
13.09.2018
15:49:20
Разница огромная. Особенно если я хочу туда цикл вставить

Boris
13.09.2018
15:50:27
Да, цикл и условия туда не пихнешь

Но если мне нужна сложная кастомизация я все равно котлин попробую прикрутить

Nurzhan
13.09.2018
15:53:10
люди помагите

Boris
13.09.2018
15:53:23
Но нужно признать, что поддержка таких кастомизаций со стороны иде очень ограниченная

Nurzhan
13.09.2018
15:53:33
как сделать чтобы при листани таба сохранялись значение textview

знает кто?

Alexander
13.09.2018
15:56:29
При таком вопросе помАщи не будет точно

Руслан
13.09.2018
16:01:22
Видео про Kotlin/JS подъехало https://www.youtube.com/watch?v=X4-GgdAG0ZM

Руслан
13.09.2018
16:03:53
Google
eugene
13.09.2018
16:04:33
Да, называется Kobalt)
да, я видел; интересно, кто-то пытался использовать?

Руслан
13.09.2018
16:04:49
Я пытался, оно даже работает

https://github.com/KotlinBy/awesome-kotlin/commit/16cae798560abe7b5aba69ac4964c4b6a0f5a41d

eugene
13.09.2018
16:06:48
вроде последние изменения в исходниках на githube были 6 мес. назад

Руслан
13.09.2018
16:07:51
Да, вероятно автор забил, потому что билд система не привлекла должного внимания. Опять же, маркетинг наше все. Хотя сама по себе была достаточно быстрая и приятная. Автор кстати, до этого jcommander и testng написал.

Alexander
13.09.2018
16:09:29
Там были свои не совсем очевидные решения, кроме того, градл - это все-таки огромна экосистема и тысчи плагинов.

Andrew
13.09.2018
16:15:27
Видео про Kotlin/JS подъехало https://www.youtube.com/watch?v=X4-GgdAG0ZM
Да ты издеваешься, я уже два часовых видео посмотрел за сегодня в ускоренном режиме, а тут третье подъехало. Работать когда? :D

Руслан
13.09.2018
16:19:05
Я для себя давно понял что информации очень много, и все явно не послушаешь/посмотришь/почитаешь. Поэтому я для себя складываю кучки, типо: вот тут инфа про Kotlin/JS, тут про MPP, тут про кишки Undertow и т.д. Когда задача нужная подвернется - беру эту кучу и разгребаю) Много статей при этом например теряют актуальность, и изучать нужно меньше.

Evgeny
13.09.2018
16:21:36
Есть еще https://youtu.be/XT4nk89aSvY

Admin
ERROR: S client not available

Andrew
13.09.2018
16:22:13
Я для себя давно понял что информации очень много, и все явно не послушаешь/посмотришь/почитаешь. Поэтому я для себя складываю кучки, типо: вот тут инфа про Kotlin/JS, тут про MPP, тут про кишки Undertow и т.д. Когда задача нужная подвернется - беру эту кучу и разгребаю) Много статей при этом например теряют актуальность, и изучать нужно меньше.
Да я пооткладывал информацию о развитии экосистемы вокруг Андроида, теперь даже пытаться возвращаться жутковато — накат MV* и Clean Architecture я ещё застал, а всякие architecture components, Android JetPack и миграция с саппорт-либ на androidx пугает нещадно :D

Igor
13.09.2018
16:46:36
всякие architecture components... имхо, такое даже и изучать не нужно, пока не потребуется

Andrew
13.09.2018
16:51:18
Не думал, что о плагинах котлина новости узнаю из доклада по Kotlin/JS :D Хотя ладно, новостей там нету.

Руслан
13.09.2018
16:58:04
undertow? а если на нетти или CIO?
у меня просто undertow) не ktor

я скорее к тому, что 64 треда в IO достаточно хорошо для мощной машинки. на сервере мне кажется достаточно будет 32

Sergey
13.09.2018
16:58:50
fixed pool - Dispatchers.IO ?

Руслан
13.09.2018
16:59:02
Sergey
13.09.2018
16:59:32
а почему не ktor+netty?

Google
Sergey
13.09.2018
16:59:41
ты вроде первый за него начинал топить)

Руслан
13.09.2018
16:59:42
в одно случае создавалось до 170 тредов, в другом 64, в третьем 32

а почему не ktor+netty?
тогда ktor еще не был достаточно стабилен, переписывать не хочу)

Я думаю если кешами закрыть походы в базу по максимому, то можно вообще оставить fixedThreadPool - 4 потока. У меня в основном идет чтение. да, удобный случай)

Sergey
13.09.2018
17:01:36
вообще ktor+netty не сильно уступает тому же nginx серверу для раздачи статики или проксирования, а это очень даже неплохо

Руслан
13.09.2018
17:02:20
а как в базу ходишь?
jdbc, в данном случае apache cayenne, который завернут в withContext(elasticContext)

Peter
13.09.2018
17:03:20
Мне показалось или на undertow документации маловато? Сложилось впечатление что он не предназначался для standalone использования, только как часть wildfly.

Sergey
13.09.2018
17:03:39
мы undertow со спрингом юзали

jdbc, в данном случае apache cayenne, который завернут в withContext(elasticContext)
вот думаю jdbi обертку сделать чтобы везде были withContext(IO) {}

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

Руслан
13.09.2018
17:06:06
Мне показалось или на undertow документации маловато? Сложилось впечатление что он не предназначался для standalone использования, только как часть wildfly.
Там документации более чем достаточно. Его фишка что он учится за 10 минут. Есть три понятия в целом: HttpHandler, такая функция в которую приходит HttpServerExchange и с ним можно работать читать/писать запрос/ответ, куки, хидеры и т.д. И третье понятие HttpHandlerWrapper - функция которая принимает HttpHandler, обычно оборачивает его и возвращает другой HttpHandler. Все в общем-то :) Осталось посмотреть какие есть реализации HttpHandler и HttpHandlerWrapper из коробки, и сделать обертку для корутин

Sergey
13.09.2018
17:12:42
ты пользуешься jdbi?
ага, мне нрав

Руслан
13.09.2018
17:13:01
почему не jooq?

Sergey
13.09.2018
17:13:04
был jdbc template спринговый, заменил на jdbi когда выпиливал

хз, не нравится он мне

jdbi топорнее и проще

Руслан
13.09.2018
17:18:12
1.2.70 https://t.me/TheDailyKotlin/90

Руслан
13.09.2018
17:21:05
Да, как-то не поверилось что это и всё. Когда я его тыкал палочкой меня помнится смутило, что он тянет jboss-logging а подробностей по каким пакетам можно включать, куда по-дефолту логируется - нету. Хотя да, это наверное странные хотелки. Спасибо
Ну там видно что когда slfj4-api подключаешь, он его использует для логгирования. Понятно что это часть jboss, wildfly, поэтому там есть свои так сказать особенности :) Но в целом решение простое, за что он мне и нравится

Sergey
13.09.2018
17:46:47
@HeapyHop я пока еще с ktor client воюю, пытаюсь заменить okhttp, а у меня там обвес из интерцепторов для логов, метрик и прочей лабуды

но его как-то особо никто не юзает, поэтому приходится быть пионером и ловить баги иногда не оч приятные :/

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