
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

Bogdan
04.03.2018
08:50:49

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
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 это надежно

Vladimir
04.03.2018
10:17:47

Igor
04.03.2018
10:18:48

Google

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

Igor
04.03.2018
10:22:45
Но ты забыл про тесты ?
Могу примеры интеграционных тестов без DI-фреймворков закинуть, все вполне цивильно выглядит.

Igor
04.03.2018
10:25:31

Boris
04.03.2018
10:27:08

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

Boris
04.03.2018
10:28:20

Mikhail
04.03.2018
10:28:49

Igor
04.03.2018
10:28:51

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

Mikhail
04.03.2018
10:30:41

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

Igor
04.03.2018
10:36:33

Mikhail
04.03.2018
10:37:29

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

Google

Mikhail
04.03.2018
10:39:05

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

Mikhail
04.03.2018
10:41:31

Vitalii
04.03.2018
10:42:00

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

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

Mikhail
04.03.2018
10:46:25
причем аргументы фрагмента никак не избежать из-за жизненного цикла

Vitalii
04.03.2018
10:47:06

Mikhail
04.03.2018
10:47:21

Vitalii
04.03.2018
10:47:29

Roman
04.03.2018
10:48:30

Mikhail
04.03.2018
10:49:22

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

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 файл добавил два плагина не считая библиотек с корорыми работал в коде:
что я не знаю для нормалььной упаковки проекта?(

Siarhei
04.03.2018
16:41:57

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

Igor
04.03.2018
16:44:49

Google

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

Sereja
04.03.2018
17:23:11
А не лучше в качестве java fx tornadofx юзать
У оракл джавы fx из коробки должен быть

Vladimir
04.03.2018
17:37:22

Quantum Harmonizer
04.03.2018
17:49:38

Mi
04.03.2018
17:53:42

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

Vladimir
04.03.2018
17:56:38

Quantum Harmonizer
04.03.2018
17:57:31
Там можно из шаблона создать JavaFX-приложение

stas
04.03.2018
17:58:24

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

stas
04.03.2018
18:00:25

Quantum Harmonizer
04.03.2018
18:00:39

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 ? Есть тут успешные пользователи?