
? animufag ?
26.05.2017
12:58:18
как-то я вбрасывал эту тему и мне сказали что это удобно

Egor
26.05.2017
12:58:47
все зависит от задачи
не стоит педалить DI если не знаешь нужын ли он будет и что с ним делать

Quantum Harmonizer
26.05.2017
12:59:53
Дак а зачем вообще сгенерированный DI? Так лень проинициализировать граф объектов?

Google

Konstantin
26.05.2017
12:59:58
Коллега пытался протащить венгерскую нотацию под эгидой того, что для контрибьюторов в андроид это чать гайда

? animufag ?
26.05.2017
13:00:45

Egor
26.05.2017
13:01:00
венгерская - это реликт, который случайно попал в сорци и Вортон как-то говорил что надо избавляться

? animufag ?
26.05.2017
13:01:34

Egor
26.05.2017
13:01:38

Quantum Harmonizer
26.05.2017
13:01:54

Egor
26.05.2017
13:01:56
нет, это значит не рефлекция, а кодогенерация

Quantum Harmonizer
26.05.2017
13:02:08

Egor
26.05.2017
13:02:25
не видно где?))

Quantum Harmonizer
26.05.2017
13:02:52
Нигде не видно. Инжектится automagically, а как и почему — не понятно.

Egor
26.05.2017
13:03:06
ты шутишь??
есть рефлексия, а есть кодогенерация - вот 2 принципа для DI

? animufag ?
26.05.2017
13:03:55
ну ДИ как бы упрощает немного строить разные модули зависящие от интерфейсов и менее связный код легче тестируется.
ну и конечно можно как-нибудь разрулить самому инстанцирование. не знаю насколько больше бойлерплейта

Google

Egor
26.05.2017
13:03:58
почитай про рефлексию, немного магия спадет

Quantum Harmonizer
26.05.2017
13:04:34
Нет, DI предполагает, что зависимости каким-то образом внедряются, ослабляя связывание. Руками, рефлексией или генерацией — это уже разные реализации этого принципа.

? animufag ?
26.05.2017
13:04:36

Quantum Harmonizer
26.05.2017
13:04:41

Egor
26.05.2017
13:05:10
ну ладно, как скажете

? animufag ?
26.05.2017
13:05:15
кстати а в дебагере ведь увидишь этот код?

Quantum Harmonizer
26.05.2017
13:05:49

Egor
26.05.2017
13:05:54
да
он лежит в папке /gen

Igor
26.05.2017
13:08:09
Кстати, тут может появится “неявное связывание интерфейсов и реализации”.
Оно конечно для другого, но может для прикола и для DI заюзають, ведь обычно так и бывает 1 интерфейс - 1 класс.
https://i.gyazo.com/3561c8f652b2de434c037d9d5c294acd.png

Egor
26.05.2017
13:09:08
в модуле надо настраивать связку

Igor
26.05.2017
13:10:13

Egor
26.05.2017
13:10:48
про связку интерфейса с реализацией для DI?

Igor
26.05.2017
13:11:34
Я думал там можно просто интерфейс заимлиментить, а оно сама както-там зафуричит ?

Egor
26.05.2017
13:12:56
да, я говорил про то что если у тебя есть 1 интерфейс и 2-3 его реализации, то можно через @Name аннотацию указать какую именно надо инжектить
или если это Spring - через xml или сейчас можно в коде
или если даггер - то в модуле

Igor
26.05.2017
13:14:15

Egor
26.05.2017
13:15:31
да, в этом же и красота DI, ты для тестов можешь замокать инплементацию и тебе в коде не надо будет писать SomeInterface impl = new SomeInterfaceTest();

Google

Egor
26.05.2017
13:15:47
он сам подтянет нужную

Denis
26.05.2017
14:49:47
а то он там в 22:00 думает что он только в натив

Igor
26.05.2017
14:56:43

Sasha
26.05.2017
14:56:48

Denis
26.05.2017
14:57:11

? animufag ?
26.05.2017
14:58:01
лол

whalemare
26.05.2017
14:58:02

? animufag ?
26.05.2017
14:58:08
вот это поворот

Sasha
26.05.2017
14:58:22

? animufag ?
26.05.2017
14:58:23
будет забавно если это не шутка

Igor
26.05.2017
14:58:25

Sasha
26.05.2017
14:59:04

Denis
26.05.2017
14:59:37

? animufag ?
26.05.2017
14:59:42
даже интересно как на икскоде таргет джвм поставить
ну или пускай даже в консоли

whalemare
26.05.2017
14:59:58

Denis
26.05.2017
15:00:12

Sasha
26.05.2017
15:00:17

? animufag ?
26.05.2017
15:02:50
там можно писать код в разных модулях и неймспейсы использовать?

Google

Igor
26.05.2017
15:04:17

? animufag ?
26.05.2017
15:07:30
ну вообще это крутой энтузиазм у людей

whalemare
26.05.2017
15:11:02
На одном энтузиазме далеко не уедешь

? animufag ?
26.05.2017
15:13:22
ну я бы сказал что они далеко уехали. интересно что там за клиенты у них.
у них там столько всего на сайте и про всё это ни разу не слышал.

Denis
26.05.2017
15:15:08

Илья
26.05.2017
17:01:56
Такое ощущение что наоборот чем больше вес элемента ставишь - тем меньше он отображается.

Sergey
26.05.2017
17:06:44
1) не используй единицы измерения в пикселях
2) надо указать направление в котором работает вес, если горизонтально, то у каждого вью сделай ширину "0dp", и наоборот

Илья
26.05.2017
17:09:58

Admin
ERROR: S client not available

Tony
26.05.2017
18:40:10
Добрый вечер
вопрос по оптимизации кода
Дан вектор размерности n. Надо определить модуль для этого вектора. Для двух координат модуль находится как fun mod(): Double = pow((pow(currentVector.first, 2.0) + pow(currentVector.second,2.0)), 0.5)
надо как-то вставить цикл for внутрь другой функции

Dmitry
26.05.2017
18:44:01
https://t.me/javastart
вот туда

Tony
26.05.2017
18:49:39
fun mod(): Double {
val response = currentVector.coordinates.sumByDouble { pow(it, 2.0) }
return pow(response, 0.5)
}
во
но это в два действия

Mikhail
26.05.2017
20:31:27
fun mod() = currentVector
.coordinates
.sumByDouble { pow(it, 2.0) }
.let { pow(it, 0.5) }
я полагаю

Google

Mikhail
26.05.2017
20:33:15
(мимо некропостинг наверное)

Alexander
26.05.2017
20:40:02

Kirill
26.05.2017
20:41:26

Alexander
26.05.2017
20:41:33

Sergey
26.05.2017
20:41:51

Kirill
26.05.2017
20:41:55
Это азы
нам это на второй паре, кажется, рассказывали

Denis
26.05.2017
21:21:45
блин. зачем я заглянул в котлиновую реализацию String.replace(String, String, Boolean)...
это какой рак

Umren
26.05.2017
21:22:17
меньше знаешь лучше спишь
слышал такую мудрость?

Михаил
26.05.2017
21:22:48

Denis
26.05.2017
21:23:00
= splitToSequence(oldValue, ignoreCase = ignoreCase).joinToString(separator = newValue)

Михаил
26.05.2017
21:24:23
Норм
А че такого?
Довольно изящно

Denis
26.05.2017
21:24:50
сперва строка делится на подстроки, потом склеивается. в процессе строка oldValue превращается в массив, потом в список, потом создается объект-итератор DelimitedRangesSequence и потом это всё процессится

Umren
26.05.2017
21:25:31
запуллреквесть им более оптимальную реализацию)

Denis
26.05.2017
21:25:36
эти идиоты ещё перекрыли этим говном стандартный jvm-ный метод String.replace, который простой как две копейки

Umren
26.05.2017
21:25:43
думаю никто возвражать не будет

Denis
26.05.2017
21:28:48
а еще "xxx".replace("a", "b") превращается в StringKt.replace$default("xxx", "a", "b", false, 4, null).
из-за офигительной по своей крутизне реализации дефолтных параметров у функций (T__T)

Konstantine
26.05.2017
22:36:06
Подскажите пожалуйста как такое на котлине написать?
public abstract @IdRes int getVariable();