@kotlin_lang

Страница 573 из 982
Boris
05.03.2018
02:54:25
1. торнадофх+грейдл 2. тут проблема не в сборке, ищи проблему в своем лейауте, к слову это на порядок проще, если лейаут у тебя не в хмл-е, а в котлине (что нас к торнадо возвращает). 3. я бы предоположил, что ты какой-то атрибут нужный забыл в хмл-е 4. у торнадо есть плагин для идеи, пусть и желающий лучшего, но добавляющий удобств для разработки торнадо далек от идеала, но жить с ним на порядок приятнее, чем без него. Надо только знать, что есть контролфх, в котором есть уйма приятных контролов и у торнадо есть с ним интерграция и второе -- что с 9 джавой он пока не работает, а когда будет работать ему нжна будет отдельная сборка

The
05.03.2018
04:31:13
Ребята, как такое написать на котлин: Presenter<V extends MvpView>

The
05.03.2018
04:35:19
Google
Mi
05.03.2018
05:43:38
Имхо, тащить это в проект - верх лени
А альтернативы? Это прокидка тех же эксепшонов? Или ты про то, что можно просто класс скопировать

Vitalii
05.03.2018
06:01:17


Mi
05.03.2018
06:04:31
Да ну, сложно что ли зависимость добавить

stas
05.03.2018
06:10:50
1. торнадофх+грейдл 2. тут проблема не в сборке, ищи проблему в своем лейауте, к слову это на порядок проще, если лейаут у тебя не в хмл-е, а в котлине (что нас к торнадо возвращает). 3. я бы предоположил, что ты какой-то атрибут нужный забыл в хмл-е 4. у торнадо есть плагин для идеи, пусть и желающий лучшего, но добавляющий удобств для разработки торнадо далек от идеала, но жить с ним на порядок приятнее, чем без него. Надо только знать, что есть контролфх, в котором есть уйма приятных контролов и у торнадо есть с ним интерграция и второе -- что с 9 джавой он пока не работает, а когда будет работать ему нжна будет отдельная сборка
Спасибо большое. У меня тут проблема еще в том, что у меня очень скудное воображение (для написания въюх я обязательно должен видеть результат) ) В противном случае я бы Swing узал, наверное) . Так вот к чему я виду. Как разработчики tornadofx справляются с работой без сценБилдера?)

Mikhail
05.03.2018
06:13:02
А альтернативы? Это прокидка тех же эксепшонов? Или ты про то, что можно просто класс скопировать
Проще самому такое написать. А если уж хочется играть по-крупному, то лучше уж затаскива arrow-kt

Mi
05.03.2018
06:18:20
Mikhail
05.03.2018
06:20:14
Имхо, один только Result тащить - не ок. Больше шансов, что автор его забросит

Это все равно что в npm была трагедия когда чувак удалил оттуда leftpad

Одна единственная фукция, отбивающая строку нулями, на которую зависела куча проектов

Mi
05.03.2018
06:22:22
Я помню такое, но тащить arrow-kt чисто ради either тоже так себе затея

А копировать классы это моветон какой-то

Mikhail
05.03.2018
06:23:22
Короче, в прод я бы не тащил это, а я тот еще любитель нахапать зависимостей

Alexey
05.03.2018
06:36:33
Я помню такое, но тащить arrow-kt чисто ради either тоже так себе затея
Если ты пишешь бэкенд, то вообще пофигу чего тащить в качестве зависимостей

Google
Mi
05.03.2018
06:42:00
чтобы не делать catch { throw ServiceException(daoException) }

Igor
05.03.2018
06:51:11
А в чем проблема это сделать?

Mikhail
05.03.2018
06:57:33
А в чем проблема это сделать?
Хватит людей, тянущихся к прекрасному, кибербуллить

Quantum Harmonizer
05.03.2018
07:00:06
Vitalii
05.03.2018
07:06:18
Victor
05.03.2018
07:06:57
и arrow.data.Either
проблемы начинаются, когда все-таки захочется бросить эксепшн

ты понимаешь, что вертел всю эту функциональщину, и получается полумера

Vitalii
05.03.2018
07:08:55
проблемы начинаются, когда все-таки захочется бросить эксепшн
Можно пример, когда хочется бросить эксепшн и нельзя его обернуть в either?

Victor
05.03.2018
07:14:57
Можно пример, когда хочется бросить эксепшн и нельзя его обернуть в either?
Есть поля, которые по бизнес-процессу опциональны. Но в определенном месте они по бизнес-процессу обязательно должны присутствовать

и вот если они отсутствуют, хочется бросить эксепшн, а не фолдить от них

ибо если фолдить, код нагромождается

Igor
05.03.2018
07:15:50
вместо checked exceptions же
Ну такое: - ты можешь вызвать это метод из любого кода (нет ограничений как в CE) и просто проигнорировать результат - Result не помешает самому методу кинуть исключение (те ошибки может теперь из 2-х мест прилететь)

Vitalii
05.03.2018
07:23:42
и вот если они отсутствуют, хочется бросить эксепшн, а не фолдить от них
Ну а если использовать lateinit и один эксепшн от него обернуть? Или код не на Котлин?

Victor
05.03.2018
07:24:30
Ну а если использовать lateinit и один эксепшн от него обернуть? Или код не на Котлин?
котлин, опять же, 1) тебе в голове держать, че у тебя там от lateinit вылезет 2) тебе этот эксепшн также придется перехватывать, это сайдэффект

Google
Victor
05.03.2018
07:25:02
т.е. оборачивать всю твою мякоту, где есть хоть одна lateinit var в Try... - это не сексуально

Значит тебе нужны еще модели
это настолько же упорото, насколько упорото делать чистое фп )

Igor
05.03.2018
07:25:41
arrow.data.Try помешает кинуть исключение (перехватит его) Потом это маппится в изер .toEither().mapLeft( <мап эксепшнов> )
Выглядит это просто ужасно. Не хочешь исключений - не пиши код который их кидает, не вызывай из него опасные функции (типа IO) Ну если тебе надо кинуть исключение - кинь его. Зачем миксовать это этим ужасными комбинаторами?..

Victor
05.03.2018
07:26:53
Выглядит это просто ужасно. Не хочешь исключений - не пиши код который их кидает, не вызывай из него опасные функции (типа IO) Ну если тебе надо кинуть исключение - кинь его. Зачем миксовать это этим ужасными комбинаторами?..
нет, выглядит абсолютно нормально) Опасные функции не вызывать? Не лезть в бд? Невозможно Кидать эксепшны? Необязательно - и вот тогда оно выглядит абсолютно нормально

Mikhail
05.03.2018
07:27:01
это настолько же упорото, насколько упорото делать чистое фп )
Ничего упоротого, если у тебя есть неполные данные на одном этапе, а на другом этапе они валидируются и получаются полные либо эксепшн - нужна еще одна модель

Иначе нафига вот это все

Victor
05.03.2018
07:27:16
и гораздо удобнее иметь Either возвращаемым значением, чем думать, какие там эксепшны тебе ловить

Victor
05.03.2018
07:28:13
Зачем ты “лезешь в бд“ в бизнес-логике? Ты не можешь отделить “эффекты” от логики?
в бизнес-логике я не лезу в БД :) Дао возвращает Try, его я и мапаю в изер

Igor
05.03.2018
07:29:25
в бизнес-логике я не лезу в БД :) Дао возвращает Try, его я и мапаю в изер
Знаешь, это как в хаскеле написать всю программу внутри do от IO монадки

Victor
05.03.2018
07:30:11
нет, не знаю, но дельной критики такого подхода я не услышал, кроме "это не красиво" и "зачем ты делаешь .." (то, что я не делаю)

Victor
05.03.2018
07:30:44
надо тебе бросать эксепшны - бросай, если можешь этого избежать - можно возвращать Either'ы, вполне

Igor
05.03.2018
07:31:19
Victor
05.03.2018
07:31:19
зависит уже от конкретного приложения. Где-то подойдет, где-то нет. Говорить "Either'ы гумно" - необъективно :)

Victor
05.03.2018
07:32:14
который either вернет? Ну тогда от него фолдиться каждый раз

хз, тоже же будет нагромождение

Igor
05.03.2018
07:40:08
зависит уже от конкретного приложения. Где-то подойдет, где-то нет. Говорить "Either'ы гумно" - необъективно :)
Кстати, ты как-то различаешь в коде разные виды ошибок или тебе просто нужно Success/Failed?

Vitalii
05.03.2018
07:41:00
который either вернет? Ну тогда от него фолдиться каждый раз
Йеп. Ну, можно аспектом или руками через рефлексию звинжектить, чтобы не копипастить, хотя трешовенько, наверное. Иначе да, нагромождение, но очевидное. Ну и так-то джава-геттеры практически такое же нагромождение.

Google
Vitalii
05.03.2018
07:41:51
Зато без исключений и решает твой случай малой кровью.

Victor
05.03.2018
07:47:47
Admin
ERROR: S client not available

Igor
05.03.2018
07:48:49
И как ты их чекаешь в своем either (instanceof или rethrow)

Victor
05.03.2018
07:50:19
When

Или ты о чем

Andrew
05.03.2018
09:04:33
Спасибо большое. У меня тут проблема еще в том, что у меня очень скудное воображение (для написания въюх я обязательно должен видеть результат) ) В противном случае я бы Swing узал, наверное) . Так вот к чему я виду. Как разработчики tornadofx справляются с работой без сценБилдера?)
Для торнадо есть плагин к идее, который позволяет запустить не приложение, а конкретную вьюшку. Я его не тыкал, потому не знаю, насколько оно юзабельно, когда во вьюшку с контроллером инжектится тыща зависимостей, но пока ты ей только морду рисуешь -- довольно удобная вещь.

Andrew
05.03.2018
09:07:29
Ух ты, пасиба)))))))))
Ну и да, в kotlinlang.slack.com есть #tornadofx, где Эдвин (автор либы) и несколько активных контрибьюторов охотно помогают с непонятками -- советую туда заглядывать.

Mikhail
05.03.2018
09:42:40
http://kotlinlang.slack.com вообще прекрасное место, там можно спросить у Елизарова про корутины, у Вортона про RxKotlin, у Зиннатулина про Spek, у Рауля Раджи про arrow-kt

Alena
05.03.2018
13:55:46
Всем привет! 15 марта приходите на MeetUp в Леруа Мерлен: https://leroy-merlin.timepad.ru/event/668941/

Roman
05.03.2018
15:43:42
http://kotlinslack.herokuapp.com/

Руслан
05.03.2018
16:27:22
https://blog.jetbrains.com/idea/2018/03/whats-groovy-about-intellij-idea-2018-1/ - все ждал когда покажут как автоматически @CompileStatic код конвертируется в Kotlin ?

Stanislau
06.03.2018
05:40:55
привет. я новичок, язык изучаю только около недели. так что сильно не пинайте, потому как вопрос покажется кому-то слишком уж нубским (но ответа в справочника-руководствах я пока не нашел). от чего при делении целых чисел получается именно целое число? ведь, вроде как, компилятор считается довольно умным. неужели он не может предугадать, что в результате деления чисел может получится дробное число? в общем на скриншотах думаю будет видно, что я имею ввиду.... в общем как тут быть, если вместо чисел в явном виде указать результат выполнения каких-либо функций (тоже Int)?





Mikhail
06.03.2018
05:43:21
Компилятор умный, компилятор знает, что при делении целочисленного числа на целочисленное число надо выполнить целочисленное деление

Если же один из аргументов уже с плавающей точкой, то он выполнит обычное деление

Google
Mikhail
06.03.2018
05:45:21
Если тебе нужно Int привести к double или float, воспользуйся toFloat() или toDouble()

Stanislau
06.03.2018
05:46:59
понял. так и думал, что нужно приводить к Float, например. просто до этого писал в Delphi (уж простите, может кто и против этого языка), и там как-то чуть проще именно в этом моменте

Mikhail
06.03.2018
05:48:43
Dividing Integers - Language Design - Kotlin Discussions https://discuss.kotlinlang.org/t/dividing-integers/1662

Вот кстати на тему обсуждение

Stanislau
06.03.2018
05:49:19
спасибо

Stanislau
06.03.2018
06:25:12
Bogdan
06.03.2018
10:10:39
Стоп ты делаешь на 10 и множишь

Stanislau
06.03.2018
10:11:51
Стоп ты делаешь на 10 и множишь
А какая разница? При делении я уже получаю 0. Потом, на чтобы я не умножал =0

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