@kotlin_lang

Страница 156 из 982
? 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
Коллега пытался протащить венгерскую нотацию под эгидой того, что для контрибьюторов в андроид это чать гайда

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

? animufag ?
26.05.2017
13:01:34
Egor
26.05.2017
13:01:38
Дак а зачем вообще сгенерированный DI? Так лень проинициализировать граф объектов?
иногда оправбывает, у меня есть 2 проекта по дагере - очень удобно

Quantum Harmonizer
26.05.2017
13:01:54
"сгенерированный DI" это тип есть разновидности ДИ?
Сгенерированный — это типа в Dagger, например.

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
есть рефлексия, а есть кодогенерация - вот 2 принципа для DI
он про то что ты не можешь найти код с инстанцированием

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
кстати а в дебагере ведь увидишь этот код?
Его фреймы обязательно будут на стеке. Да и исходники должны попасть в build.

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
про связку интерфейса с реализацией для DI?
Ты на мой скриншот отвечал? Если да, то откуда “в модуле надо настраивать связку?”.

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

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

или если это Spring - через xml или сейчас можно в коде

или если даггер - то в модуле

Igor
26.05.2017
13:14:15
да, я говорил про то что если у тебя есть 1 интерфейс и 2-3 его реализации, то можно через @Name аннотацию указать какую именно надо инжектить
Я же написал про “1 интерфейс - 1 класс” - это основной кейс, если их больше то уже не прокати. А так можно сделать : [core module] + [impl - production module] + [impl - test module]

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
https://youtu.be/rYRnvMq41uw?t=12m24s
блин, интересно было бы сказать андрею, что swift таки уже компилится в байткод ?

а то он там в 22:00 думает что он только в натив

Sasha
26.05.2017
14:56:48
пару букв и завис на 300мс
Ставь 1.1.3, если рисковый парень.) Там все с этим.

Denis
26.05.2017
14:57:11
биткод? что за байткод, под какую VM?
не знаю про какой биткод ты. я про байткод для JVM)

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

whalemare
26.05.2017
14:58:02
Ставь 1.1.3, если рисковый парень.) Там все с этим.
Это студию 3.0 ты имеешь ввиду? Жоска)

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

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

Igor
26.05.2017
14:58:25
не знаю про какой биткод ты. я про байткод для JVM)
Ты бы хоть ссылку скинул, а то ни каких анонсов не было.

Sasha
26.05.2017
14:59:04
Это студию 3.0 ты имеешь ввиду? Жоска)
https://bintray.com/kotlin/kotlin-dev/kotlin/1.1.3-eap-34

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

whalemare
26.05.2017
14:59:58
Sasha
26.05.2017
15:00:17
swift заорал в сторонке
Напомни, с тулингом у свифта уже все ок стало?)

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

Google
Igor
26.05.2017
15:04:17
http://www.elementscompiler.com/elements/silver/ – clr и jvm
Какая-то поделка с закрытыми сорцами и лицензией за 800$ - ну даже не знаю, стоит ли про это упоминать ?

? 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
Какая-то поделка с закрытыми сорцами и лицензией за 800$ - ну даже не знаю, стоит ли про это упоминать ?
silver там бесплатный. как я понимаю, они зарабатывают на легаси из дельфи и шарпе

Илья
26.05.2017
17:01:56


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

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

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
(мимо некропостинг наверное)

Kirill
26.05.2017
20:41:26
Alexander
26.05.2017
20:41:33
у Ильдара? :D
агашечки(

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
меньше знаешь лучше спишь

слышал такую мудрость?

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();

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