@kotlin_lang

Страница 572 из 982
Boris
04.03.2018
07:44:51
Прошу прощения, забыл сказать, что ваше проведенное решение не стоит применять

Sabbath
04.03.2018
08:33:44
А когда корутины в финальный статус перейдут? Можно ли сейчас смело в прокдашене использовать?

Anton
04.03.2018
08:34:14
можно можно

Sabbath
04.03.2018
08:35:24
Гуд

Google
Mikhail
04.03.2018
09:40:28
А когда корутины в финальный статус перейдут? Можно ли сейчас смело в прокдашене использовать?
они обещали, что если даже будут что-то менять, то позаботятся о миграции

Dmitry
04.03.2018
09:55:49
Хотя на самом деле у меня переставал компилироваться проект после обновления библиотеки корутин

Но это не так сложно пофиксить

Жабра
04.03.2018
10:11:05
Igor
04.03.2018
10:13:44
А в чём принципиальная разница Koin и Kodein?
Могу только общее назвать – и то и то лучше заменить самописным графом.

DI фреймворки – лишние джарники в проекте, ИМХО, не стоят того.

Жабра
04.03.2018
10:14:36
Ну мне тут вчера усиленно доказывали, что singleton - зло во плоти, нужно тыкать DI

Mikhail
04.03.2018
10:15:10
Petr
04.03.2018
10:15:22
На ассемблере

Anton
04.03.2018
10:15:59
@xd720p это надежно

Google
Igor
04.03.2018
10:21:57
Могу только общее назвать – и то и то лучше заменить самописным графом.
На самом деле, koin у меня видно только в двух файлах: - app.kt где я создаю модуль - basefragment где происходит инициализация “компонента” (типа презентре) (ибо у фрагментов нет конструкторов) Все, больше в коде никаких упоминаний (никаких аннотация как в dagger) Все зависимости тупо передаются в конструктор

Igor
04.03.2018
10:25:31
Могу примеры интеграционных тестов без DI-фреймворков закинуть, все вполне цивильно выглядит.
Это да, я скорее про code-coverage. Когда ты пишешь сам, тебе приходится кроме бизнес-логики (что важно), тестировать (и поддерживать) еще свои фреймворки.

Boris
04.03.2018
10:27:08
Это да, я скорее про code-coverage. Когда ты пишешь сам, тебе приходится кроме бизнес-логики (что важно), тестировать (и поддерживать) еще свои фреймворки.
Я для простых утилит просто все в поля класса складываю и передаю друг другу в конструктор, никаких фреймворков

Igor
04.03.2018
10:27:17
Это да, я скорее про code-coverage. Когда ты пишешь сам, тебе приходится кроме бизнес-логики (что важно), тестировать (и поддерживать) еще свои фреймворки.
Ну, да, есть и такое, но это больше формализмы. Я бы не сказал, что, без учета корпоративных тараканов, DI-фреймворки без рефлексии и прочей магии стоит тестировать. Честно и откровенно – пишу 6 месяцев крупный сложный проект без единого теста, все работает, баги если и появляются, то отлавливаются на этапе проверки функциональности за 5-10 минут и также фиксятся

При этом 90% технологий в этом проекте для меня новые, пишу в этом направлении тоже впервые.

Igor
04.03.2018
10:28:51
Я для простых утилит просто все в поля класса складываю и передаю друг другу в конструктор, никаких фреймворков
Я вообще все на object пишу, передавая все в параметры функций — и чувствую себя комфортно ?

Igor
04.03.2018
10:28:58
Да нет, я просто не уверен, что 120k LoC тестов worth it. А учитывая то, что интеграционный тест на компонент в среднем 3x компонента, то там будет как-то так. Сейчас уже тот момент, когда на написание тестов потребуется пара месяцев только писания тестов, так что ну его, лучше кодить аккуратно и от архитектуры ни на шаг не отходить.

Boris
04.03.2018
10:31:41
А большие проекты имеют тенденцию превращаться в помойку без перманентных обновлений

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

К тому же минимальные тесты делают разработку и отладку проще

Нового кода

Mikhail
04.03.2018
10:37:29
Ну да, но я эти не пользуюсь. Делаю по простому, только inject без параметров.
а если надо что-нибудь передать в презентер? Например id ресурса, который надо отобразить на этом экране?

Roman
04.03.2018
10:38:24
Метод initialize сделать.

Google
Mikhail
04.03.2018
10:39:05
Метод initialize сделать.
и lateinit? я его хейчу

Roman
04.03.2018
10:39:26
Вопрос религии?)

Mikhail
04.03.2018
10:39:34
да

Roman
04.03.2018
10:39:44
не нравится lateinit, юзай nullable

Страдания - неотъемлимая часть многих религий...

Александр
04.03.2018
10:40:58
и lateinit? я его хейчу
lateinit - плохо?

Mikhail
04.03.2018
10:41:31
lateinit - плохо?
А что в нем может быть хорошего, если можно обойтись без него?

Roman
04.03.2018
10:42:12
Вообще идея передачи параметров через DI для инициализации презентера штука интересная... надо ее обдумать.

Можно например сделать так: добавляем в модуль FragmentModule возможность инжектить Bundle. А в презентере можно его получить с конструктора.

Mikhail
04.03.2018
10:44:18
null-safety
я имею в виду если можно передать в конструктор сразу, зачем lateinit?

Igor
04.03.2018
10:44:23
а если надо что-нибудь передать в презентер? Например id ресурса, который надо отобразить на этом экране?
Это ты меня в расплох застал, это первый проект где я его заюзал и там нет таких окон. Так что я хз ?‍♀

Roman
04.03.2018
10:44:31
Смущает только то, что Bundle сам по себе, а уж тем более его содержимое имеет мало отношения к презентеру...

Mikhail
04.03.2018
10:46:25
Можно например сделать так: добавляем в модуль FragmentModule возможность инжектить Bundle. А в презентере можно его получить с конструктора.
Зачем бандл? мы достаем из аргументов фрагмента то что надо и вполне конкретно засовываем в конструктор dagger module

причем аргументы фрагмента никак не избежать из-за жизненного цикла

Vitalii
04.03.2018
10:47:06
я имею в виду если можно передать в конструктор сразу, зачем lateinit?
lateinit нужен тогда, когда нельзя в конструктор сразу.

Mikhail
04.03.2018
10:47:21
Vitalii
04.03.2018
10:47:29
так можно ведь, можно
Так нельзя ведь, нельзя.

Mikhail
04.03.2018
10:49:22
Как достаем? @Named?
ну ты же как-нибудь передаешь этот, допустим, id?

Google
Roman
04.03.2018
10:50:15
Ну я передаю через initialize. У меня moxy.

Vitalii
04.03.2018
10:50:24
В случае, когда тебе нужно положить в поле объект, который приходит только через lifecycle-методы или когда объект, который тебе нужен — должен быть сконструирован, и DI просто нельзя применить, либо когда в зависимости от случаев нам нужно инжектить разные реализации какого-либо абстрактного объекта, и делаем мы это через сеттеры. Либо держать null, либо использовать lateinit, либо пуллреквест во ${frameworkname}, меняющий его корневую архитектуру.

Mikhail
04.03.2018
10:51:22
Ну я передаю через initialize. У меня moxy.
ну как ты передаешь аргументы с другого экрана?

Roman
04.03.2018
10:52:24
Кладу в аргумент фрагмента, а в @ProvidesPresenter вытаскиваю и вызываю initialize.

Но этот метод мне не нравится.

Mikhail
04.03.2018
10:53:27
ну мне тоже, но без аргументов фрагмента не обойтись, просто можно вытаскивать из них и конструировать dagger module

Admin
ERROR: S client not available

Mikhail
04.03.2018
10:54:09
но я moxy не трогал, хз откуда там достаются зависимости

Quantum Harmonizer
04.03.2018
11:32:31
Я не очень внимательно читал, но это сродни проблеме, которую я пытаюсь тут решить https://github.com/Miha-x64/Flawless

stas
04.03.2018
16:33:13
Уже часа 4 на это дело убил( может есть знеающие(

Первый раз хочу нормально собрать kotlin проект и все никак не могу( У меня проект написал на kotlin + javafx потом я решил установить maven для удобной сборки проекта, но что-то не так все легко оказалось. При запуске с консоли получаю вот такою боль: (



В pom файл добавил два плагина не считая библиотек с корорыми работал в коде:



что я не знаю для нормалььной упаковки проекта?(



stas
04.03.2018
16:43:29
Gradle :)
сейчас мой пукан согревает весь дом)

Igor
04.03.2018
16:44:49
что я не знаю для нормалььной упаковки проекта?(
а stdlib не забыли ли?) org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version

Google
Siarhei
04.03.2018
16:46:39
посмотри от Джейка Вортона на котлине библиотеки, там pom файлы нормальные будут

Sereja
04.03.2018
17:23:11
А не лучше в качестве java fx tornadofx юзать

У оракл джавы fx из коробки должен быть

Quantum Harmonizer
04.03.2018
17:49:38
Mi
04.03.2018
17:53:42
Maven Удобная сборка АХАХА
Ну это куда удобнее чем самому jar'ки подсовывать

stas
04.03.2018
17:55:13
А не лучше в качестве java fx tornadofx юзать
я не совсем понимаю зачем использовать торнадо. Из-за недостатка информации и туториалов начал писать на javafx, отставив торнадо в сторону) после того, как добавил проект в maven - я его вообще запустить не могу( и начало вылетать огромное колличество исключение связаных с самой javafx (ну это как я понял) Как я понял проблема в конструкторе (жаль что это мне не о чем не говорит) ))

+
а как убрать с проекта мавен у поставить gradle))) по новой проект создавать?)))

Quantum Harmonizer
04.03.2018
17:57:31
а как убрать с проекта мавен у поставить gradle))) по новой проект создавать?)))
Для начала попробуй вообще встроенную в IDEA систему сборки, потом, после опыта и шишек, уже возьмёшь грэдл

Там можно из шаблона создать JavaFX-приложение

Quantum Harmonizer
04.03.2018
18:00:02
Возьми какую-нибудь пошаговую инструкцию, где всё расписано от и до

stas
04.03.2018
19:41:05
Упс...
хух)) через встроенный сборщик собрал) чуть не умер)) ну зато опыт ??)

Руслан
04.03.2018
21:19:21
все-таки бэктики прекрасны toolsUserService.getByEmail(user.email) ?: throw `WAT?`()

Mi
04.03.2018
21:39:06
кстати, как вам такая библиотечка как https://github.com/kittinunf/Result ? Есть тут успешные пользователи?

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