
Vitalii
12.07.2017
04:27:41

Dmitriy
12.07.2017
04:32:00
Есть же apply

Жабра
12.07.2017
04:35:24

Vitalii
12.07.2017
04:50:38

Google

Жабра
12.07.2017
04:53:44
"в чём фишка" подразумевалось под идиоматичностью построения самого дерева.

Roman
12.07.2017
06:26:51

Alexander
12.07.2017
06:53:32
Привет всем. Хотел поинтересоваться: как правильно понимать Thread-safety для kotlin (или, может, по этому поводу не нужно париться и в самом языке есть решение)? Нашел только то, что касается coroutine, но этот функционал еще эксперементальный.
Еще натыкался вот на это:
https://stackoverflow.com/questions/42479009/kotlin-local-variable-thread-safety
https://discuss.kotlinlang.org/t/non-volatile-vs-volatile-captured-refs-by-default/2122/1
Правильно ли я понимаю из последнего, что в Kotlin не особо нужно беспокоиться по поводу volatile и в целом проблем связанных с concurrency?
P.S. Буду рад любой инфе. Если что-то сформулировал не так — не бейте, я только только начал изучать :)

Dmitry
12.07.2017
07:03:04

Artem
12.07.2017
07:04:41

Alexander
12.07.2017
07:05:03
Да, аннотации я видел
Спасибо :)

Artur
12.07.2017
08:07:06
Как известно BigDecimal("10") != BigDecimal("10.00")
Ребят, как вы сравниваете BigDecimal?
Неужели всегда пишете
compareTo
?
Я уже подумываю унаследоваться от BigDecimal и переопределить equals ...

DarkMentat
12.07.2017
08:19:35
Хай, народ, особенно андроидщики. Кто нить юзал для DI специальные котлиновские либы, типа KoDeIn, KoIn, Kapsule? Или все еще на даггере сидите? Просто дагер реально довольно усложненный и заточеный под джаву. А всякие котлиновские DI либы могут быть поидиоматичнее и полаконичние, да и поприятнее в общем. Но кулстори кто их успешно или неуспешно юзал я не слышал. Может тут есть, кто колупал?

whalemare
12.07.2017
08:50:13

DarkMentat
12.07.2017
08:51:03
не сложнее, чем на джаве, но на и джаве бывает сложноватым)

whalemare
12.07.2017
08:51:36
Посмотрел кодеин, ну такое себе) еще один дсл учить чтобы зависимости тянуть)
И вот это смотрится достаточно страшно
https://github.com/SalomonBrys/Kodein/blob/master/kodein-android/src/main/java/com/github/salomonbrys/kodein/android/AndroidModule.kt

Google

Sergey
12.07.2017
08:53:03
после спринга реально смотремно

DarkMentat
12.07.2017
08:53:46
ну тут с даггером надо сравнивать

whalemare
12.07.2017
08:57:32
Ну, скажем так.
В продакшене я бы это не юзал, потому что код должен быть поддерживаемым. Мало кто может в кодеин и вряд ли сможет в ближайшее время
Но если пилить проект в одного или для себя то может быть

Anton
12.07.2017
09:00:38
так они же наоборот говорят типа даггер сложный вот мы и сделали кодеин))
значит быстро входить можно

whalemare
12.07.2017
09:01:33

Anton
12.07.2017
09:01:51
да я тоже не юзал просто прочитал типа отзывы от компаний которые в проде юзают)

whalemare
12.07.2017
09:01:54
это просто первое впечатление от класса на 400 строк и минимум длинны строки в 100 символов)

Sergey
12.07.2017
09:02:52
кодеин забавно гуглить)

DarkMentat
12.07.2017
09:24:22
имхо ад был бы более адовый

Anton
12.07.2017
09:25:12
я думал даггер всем нравится)

DarkMentat
12.07.2017
09:25:36
особенно когда не собирается из-за ошибок в кодогенерации)

whalemare
12.07.2017
09:25:46
с аннтоациями достаточно лаконично и понятно что к чему) ну по крайней мере мне, потому что долго с ним уже вожусь.

Anton
12.07.2017
09:25:50
ну он же не собирается потому что ты ошибся)

whalemare
12.07.2017
09:25:56
+
и хорошо что не собирается, а то если бы собирался...

Anton
12.07.2017
09:26:07
а не просто так)

DarkMentat
12.07.2017
09:26:54
ну и npe в джава проектиках падали, потому что ты ошибся) но котлин с этим воюет же

Anton
12.07.2017
09:28:06
ну failfast если бы код генерился а потом падал то было бы хуже)

Google

DarkMentat
12.07.2017
09:32:19
но в любом случае лучше, когда проще. И вопрос, реально ли все эти кодеины решают?

Михаил
12.07.2017
10:09:30

Nikita
12.07.2017
10:55:11
Народ - а если я попрошу кого нибудь скинуть копию книги Kotlin for android developers (если конечно же она у кого то есть) мне справедливо ответят - "Ну купи же" или все таки скинут?

Anton
12.07.2017
10:55:40
это антонио лейвы которая?

Михаил
12.07.2017
10:55:51

Nikita
12.07.2017
10:56:09
Спасибо большое

Artem
12.07.2017
10:58:41
А есть какие-нибудь опунсурс небольшие проекты на Kodein? Хотелось бы на код посмотреть

Sergey
12.07.2017
11:06:01
Привет ребят
как протестить var внутри интерфейса с мокито?

Igor
12.07.2017
11:06:51

Sergey
12.07.2017
11:09:17
interface Test{
var testVar
}
@Mock
lateinit var test: Test
@Test
fun test{
val something = SomeClass(test)
assertEquals(test.testVar, someValue)
}

Quantum Harmonizer
12.07.2017
11:14:24

Anton
12.07.2017
11:15:10
Чет не понял а зачем это тестить

Sergey
12.07.2017
11:18:08
@antonkazakov это просто пример

Жабра
12.07.2017
11:35:35
Кому-нибудь "спасла жизнь" nonnull безопасность? Мне пока что она доставляет только головную боль. Хотя я новичок и возможно чего-то не понимаю, но в таком случае объясните, пожалуйста.

Anton
12.07.2017
11:35:57
у тебя хоть раз нпе было?)

Жабра
12.07.2017
11:36:38
Нет. Но я и сам могу прикрыть такие моменты.) На Джаве же прикрывал, и там нпе было оч нечасто.

Igor
12.07.2017
11:37:16

Жабра
12.07.2017
11:37:55
Не понял вас

Google

Евгений
12.07.2017
11:38:33
я думал что NPE никогда не будет у меня. Я слышал, что NPE бывает у многих молодых людей, но для меня это было как в параллельном мире. Так сильно я еще никогда не заблуждался. NPE в моей жизни появился внезапно. Я всего лишь по рефакторил логирование событий в своем контроллере. Я был вниматеелн, предоххранялся, но NPE случился... На продакшене, в разгар рабочего дня ...

Anton
12.07.2017
11:38:52
лол

Евгений
12.07.2017
11:39:03
Жизнь разделилась на ДО и ПОСЛЕ

Admin
ERROR: S client not available

Евгений
12.07.2017
11:39:59
это все лирика, но Вы думаете в JetBrains просто из-за своей прихоти прикрутили сей функционал в Kotlin?
наверное парни что-то в этом понимают

Жабра
12.07.2017
11:40:22
Нет, ясное дело. Потому и прошу объяснить.

Igor
12.07.2017
11:40:25

Евгений
12.07.2017
11:42:31
NULL вообще штука коварная, городить приходится в джаве постоянно на него проверки, а особо ушлые парни даже завязывают логику на NULL, это в корне не верный подход. И ладно если у вас приложение, типа CRM самопальная на заводе по производству унитазов, а если вы библиотеку пишите классную, которой весь мир пользуется? Вы им [пользователям своей либы] предлагаете проверки на NUL везде пихать?

Михаил
12.07.2017
11:43:08

Anton
12.07.2017
11:43:12
унитазы тоже нужны
а опшионалы не решают эти пробелмы в джаве?

Евгений
12.07.2017
11:43:59

DarkMentat
12.07.2017
11:44:02
тут вопрос более глобальный, чем строже система типов и чем больше она проверяет на этапе сборки - тем безопаснее
JS -> Java -> Kotlin -> Rust(вроде)
в котлине я чаще стал nullable юзать

Denis
12.07.2017
11:44:31

? animufag ?
12.07.2017
11:44:50
Нет, ясное дело. Потому и прошу объяснить.
ты создаёшь новый яп с чистого листа. ты бы стал добавлять в тип целых чисел совершенно постороннее значение не имеющее ничего общего с целыми числами? и более того это значение присутствовало бы и во всех других типах

DarkMentat
12.07.2017
11:44:59
так как в джаве боялся нпе, а тут пряв в типе есть котракт - что это может быть нуллом и это нормально

Denis
12.07.2017
11:45:06
А молча прожевать нулл - тоже "так себе" идея

Google

Евгений
12.07.2017
11:46:08
и все-таки nullsafe больше благо, нежели обратное. я считаю.

Dmitry
12.07.2017
11:46:17
в эксепшне должна быть логика: ошибка io, коннекшена с бд и т.д. в NPE ее нет, она означает лишь упущение программиста. поэтому если использовать нуллы как часть логики приложения, то логично заставить программиста явно это указывать и следить за этим

Михаил
12.07.2017
11:46:34

Евгений
12.07.2017
11:47:01

Igor
12.07.2017
11:47:18
Как-то живут же без nullsafe
В Java и без data class живут, а в groovy без стат. типизации - ну почему бы тебе на них не писать.
Чем больше компилятор проверит, тем меньше нам тестов писать и делать ручных проверок - это же всегда хорошо было
(некоторые любители clojure с этим не согласны конечно)

DarkMentat
12.07.2017
11:47:54

Михаил
12.07.2017
11:47:59

Евгений
12.07.2017
11:48:17

Igor
12.07.2017
11:49:01
Не понял вас
http://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath.html

Жабра
12.07.2017
11:49:42
Спасибо всем.

Евгений
12.07.2017
11:49:52
приходи еще)

Denis
12.07.2017
11:50:19

Igor
12.07.2017
11:52:50