@kotlin_lang

Страница 872 из 982
Руслан
17.09.2018
14:28:26
Alexander
17.09.2018
14:28:49
Но в двух словах, я переписал библиотеку более приличным образом, в резульатате в коде само собой наследование заменилось на композицию

Руслан
17.09.2018
14:30:36
За все хорошее, против всего плохого! :)
Вообще у нас даже production ready json mapper'a нету без рефлексии, так что несколько утопично движение в целом.

Quantum Harmonizer
17.09.2018
14:32:28
JSON хорош, пока он не покидает свою родную JS-экосистему.

Google
Руслан
17.09.2018
14:33:59
Да что угодно что прилетает в jvm с наружи будет обладать примерно такими свойствами.

Quantum Harmonizer
17.09.2018
14:35:14
Protobuf, Cap'n'p, FlatBuffers? Нет.

Igor
17.09.2018
14:35:40
JSON хорош, пока он не покидает свою родную JS-экосистему.
А можно взять swagger и нагенерить на клиенте модель/клиент и базовую авторизацию ?

Руслан
17.09.2018
14:35:45
Protobuf, Cap'n'p, FlatBuffers? Нет.
С точки зрения понятности происходящего они не чем не лучше. Просто магию отодвигают на компайл тайм

Quantum Harmonizer
17.09.2018
14:36:25
С точки зрения понятности происходящего они не чем не лучше. Просто магию отодвигают на компайл тайм
Вот этим и лучше. У тебя на руках код, который можно читать, тестировать, дебажить.

Руслан
17.09.2018
14:37:16
обычно генеренный код ты не очень хочешь читать, особенно того что будет там работать с байтиками разбирая bytebuffer

тестировать код который как-то рефлексивно работает тоже никто не мешает

дебажить проще, это да. и компайл тайм

но с таким же успехом можно написать компайл-тайм парсер для json, нет?

Quantum Harmonizer
17.09.2018
14:39:10
да, LoganSquare, ig-parser

Alexander
17.09.2018
16:01:26
О, интересно. Можно пример?
Фух, ели победил градл. Вот было: https://github.com/altavir/kplot/blob/82cea018f9cc444fd3700196e89af0f2020532b4/kplot-common/src/main/kotlin/scientifik/kplot/specifications/XYPlotSpecification.kt Вот стало: https://github.com/altavir/kplot/blob/master/kplot-common/src/main/kotlin/scientifik/kplot/specifications/XYPlotSpecification.kt Выглядит почти одинаково, но упрощение довольно существенное. Смысл в том, что есть неспециализированная конфигурационная структура, которую надо специализировать in place. Это делается навешиванием на нее декоратора, который занимается считыванием и изменением. В первом случае этот декоратор расширял класс конфигурации и просто делегировал все нужное передаваемому объекту. Во втором случае делается обертка, которая уже сама умеет делать нужные делегаты для своего содержимого.

Mikhail
17.09.2018
16:48:15
Nameless
17.09.2018
16:48:33
как победить котлин и gson + exclude Modifier.PRIVATE ? в котлине поле паблик, а все равно не попадает в json

Google
Nameless
17.09.2018
16:48:42






в гугле не гуглится, надежд мало осталось перед погружением в сорцы

Alexander
17.09.2018
16:49:28
Нуу тут просто бы не самый удачный пример использования делегатов ? приблизительно на уровне троллейбуса из буханки хлеба
Да нет, оно вполне человечно было. При том формате либы, который был, по-другому не получалось. Получилось только когда я либу переписал.

Mikhail
17.09.2018
16:52:50
Да нет, оно вполне человечно было. При том формате либы, который был, по-другому не получалось. Получилось только когда я либу переписал.
У тебя для внешнего пользователя только интерфейс поменялся с Configuration на Specification. Какая разница?

Alexander
17.09.2018
16:54:08
Довольно большая. Configuration - это сама конфигурация. Specification - это маркерный интерфейс для объекта, который содержит конфигурацию как компонент

Mikhail
17.09.2018
16:54:51
Ты мог убрать делегат в первом случае, разве нет?

Nameless
17.09.2018
16:55:38


Alexander
17.09.2018
16:56:11
Тут никакой. Просто красивые. Делегаты убрать не мог потому что надо было бы всю реализацию писать. Этот интерфейс был

Mikhail
17.09.2018
16:56:47
Поле != Проперти, добавь JVMField аннотацию

Nameless
17.09.2018
16:57:13
Поле != Проперти, добавь JVMField аннотацию
ага, я тупанул, спасибо (параллельно это нагулил тож)

Mikhail
17.09.2018
16:57:53
Надо придумать какой-нибудь dsl-трюк

Alexander
17.09.2018
17:02:30
Собственно я его и придумал. Теперь можно конфигурировать типо-безопасные объекты, используя спецификации: https://github.com/altavir/kplot/blob/master/kplot-examples/src/main/kotlin/scientifik/kplot/examples/JFreeChartFrameTest.kt. Единственная проблема, что хочется иметь две версии спецификации - мутабельную и немутабельную. Ноэто без кодогенерации видимо никак.

Andrew
17.09.2018
17:28:59
https://twitter.com/kotlinconf/status/1041683355937501185 Мне вот прям понравилась шутка из слака: "Kotlin is now an official language on iOS?"

Руслан
17.09.2018
17:29:57
Kotlin by default in Gradle!

(мечты)

Quantum Harmonizer
17.09.2018
17:48:08
Кто-нибудь может объяснить, зачем здесь <T>? public inline fun <T> Collection<T>.isNotEmpty() = !isEmpty()

Google
Bogdan
17.09.2018
17:53:41
Кто-нибудь может объяснить, зачем здесь <T>? public inline fun <T> Collection<T>.isNotEmpty() = !isEmpty()
нужно явно указывать тип, при использовании дженерика. То-есть просто Collection должно выдать ошибку, типа ты забыл кое-что указать (дженерик). Вроде так ?

Quantum Harmonizer
17.09.2018
17:53:52
Collection<*>

Bogdan
17.09.2018
17:55:06
Collection<*>
тут может уже просто "чистота" кода, изначальный вариант мне больше симпатичен чем *

Quantum Harmonizer
17.09.2018
17:58:24
ну да, так аккуратнее как-то

Bogdan
17.09.2018
18:15:54
я думаю кому-то будет полезно https://www.youtube.com/watch?v=q_UM1EY2S5g

Di7aK
17.09.2018
20:53:14
куантиум успокойся

Quantum Harmonizer
17.09.2018
20:53:32
Di7aK
17.09.2018
20:53:44
я гуглил раз 75

Quantum Harmonizer
17.09.2018
20:53:58
тогда дебажить

Di7aK
17.09.2018
20:54:03
мне надо на человеческом языке

Quantum Harmonizer
17.09.2018
20:54:20
тогда придётся проявить немного уважения к окружающим

Di7aK
17.09.2018
20:54:36
я вроде никого не занижал

Di7aK
17.09.2018
20:57:07
мне просто нужно чтобы фрагменты не пытались как то восстановить свое состояние, а повторяли весь цикл что при первом создании

ну или хотябы методику по грамотному восстановлению

Евгений
18.09.2018
02:46:21
воистину бред

Andrew
18.09.2018
07:44:26
Kotlin by default in Gradle!
> eriwen [01:11] > Heyo folks. You’ll be pleased to know that the vast majority of Groovy samples on in the Gradle user manual now have Kotlin samples too in the Gradle 5.0 nightly docs (https://docs.gradle.org/nightly/userguide/userguide.html) — please give them a look for your Kotlin DSL scripts and provide feedback via GitHub or hit us up on Slack! :D

Руслан
18.09.2018
07:45:25
Это да, но светлое будущее когда там груви задеприкейтят

Google
Руслан
18.09.2018
07:46:41
Тут все gradle пользуют, так что можно пойти, посмотреть, оставить фидбек

Алексей
18.09.2018
07:50:09
А может кто-нибудь с градлом помочь?

У меня все проекты на мавене, когда-то пытался перекочевать на градл, но не вышло

я мог бы скинуть свой конфиг мавеновский для конверта

eugene
18.09.2018
07:51:50
я мог бы скинуть свой конфиг мавеновский для конверта
?а это не смотрели случайно: https://guides.gradle.org/migrating-from-maven/

Алексей
18.09.2018
07:52:34
Думаю, смотрел, у меня там просто публикация + подписка gpg используются

Admin
ERROR: S client not available

Алексей
18.09.2018
07:52:56
+ укладывание всего этого счастья с зависимостями в один jar

Как следствие, я просто не понял, как аналогичный gradle конфиг сделать (хотя просто джарники билдились)

Boris
18.09.2018
08:22:23
Так ты конкретные вопросы задавай, что не получается? Никто твои конфиги ковырять не будет

Алексей
18.09.2018
08:23:04
Boris
18.09.2018
08:23:29
Ну вот как начнёшь миграцию снова, приходи ?

Andrey
18.09.2018
09:53:23
Бред какой...
+ за самую обоснованную позицию

Alexandr
18.09.2018
09:58:58
+ за самую обоснованную позицию
я просто не люблю срачи в интернете и объяснять человеку с такой аргументацией ничего не стану, ибо человек просто не умеет это готовить и смешивает теплое с мягким

Alexandr
18.09.2018
10:01:36
оххххх печево DI рабов
нет, под каждую задачу свои решения. если кто то не осилил, ну что же

Руслан
18.09.2018
10:01:36
оххххх печево DI рабов
Правильные ребята так и не научили жить без DI, пример большого проекта на Kotlin так никто не привел. Поэтому пока битва теоретиков с практиками)

Google
Alexey
18.09.2018
10:02:42
Правильные ребята создают через конструкторы уже 3 десятка лет

а у них всё нет большого проекта

Руслан
18.09.2018
10:02:57
Но вообще что @lex_it @eld0727 давайте более конструктивно вести беседу. Без печева и бреда

Alexey
18.09.2018
10:04:43
а потом попробуй отладить и разобраться
Что пробовать, у нас так все проекты написаны, от мала до велика на scala и всё легко тестируется и дебажится

Quantum Harmonizer
18.09.2018
10:05:04
Вот есть код, он работает. Бери и разбирайся.

Alexandr
18.09.2018
10:05:34
А какие проблемы?
в инициализации

потом это все поддерживать

править

Quantum Harmonizer
18.09.2018
10:06:03
то есть с отладкой всё же проблем нет.

Alexandr
18.09.2018
10:06:29
а что если нужен один и тот же инстанс в разных ветках? давайте будем прокидывать от общего родителя! класс)

Andrey
18.09.2018
10:06:32
Mikhail
18.09.2018
10:06:51
нет, под каждую задачу свои решения. если кто то не осилил, ну что же
Так можно любую позицию аргументировать: "Монадки не осилил, ну что поделать, все равно ФП рулит", "goto не осилил разобраться, ты просто не умеешь его правильно готовить"

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