@kotlin_lang

Страница 529 из 982
Жабра
05.02.2018
21:41:27
https://en.wikipedia.org/wiki/Google_Fuchsia гугл всегда на шаг впереди :)
Так она на данный момент больше разрабатывается для интернета вещей. :)

Andrew
05.02.2018
21:51:50
я вот посмотрел и заметил, что местами спионерили они из Анко, но хуже.
Похоже на классический гугл (как там, кстати, их собственная реактивная либа поживает?)

Kirill
05.02.2018
21:52:57
есть два стула^W фрагмента: val dataFileOutputStream = if (logLevel <= LogLevel.DEBUG) { val file = File(EVENTS_DEBUG_LOG_FILE) debug { "data output file: ${file.absolutePath}" } FileOutputStream(file) } else null или val dataFileOutputStream = if (logLevel <= LogLevel.DEBUG) { FileOutputStream(File(EVENTS_DEBUG_LOG_FILE).apply { debug { "data output file: $absolutePath" } }) } else null как на ваш взгляд лучше?

Sergey
05.02.2018
21:53:59
как по мне жирно
Вортон же в гугле теперь )

Google
Andrew
05.02.2018
21:55:04


Kirill
05.02.2018
21:55:13
:D

прям хоть скрин кидай )

я сделаль: https://gist.github.com/KirillTim/a0f2e3a93af39cb64347e328baeb4a8f

я обновил гист, добавил то во что превращается код если писать всё в "котлин стиле"

Andrew
05.02.2018
21:59:43
Голосую за apply, но в три строки.

(Я, правда, в таких случаях also использую, но суть та же)

Kirill
05.02.2018
22:01:08
(Я, правда, в таких случаях also использую, но суть та же)
я тут специально apply написал, чтобы обойтись без ${it.fieldName}

Andrew
05.02.2018
22:02:09
Последний пример должен выглядеть сносно, если колоночкой писать каждый новый метод в цепочке, но это не точно :)

Kirill
05.02.2018
22:02:56
и можно писать "нормально"

Google
Kirill
05.02.2018
22:03:59
Голосую за apply, но в три строки.
так и правда лучше (обновли ещё раз гист)

Andrew
05.02.2018
22:04:16
но тогда теряется К О М П А К Т Н О С Т Ь ! :)
На мой субъективный вкус не теряется, но котлин предоставляет достаточно фломастеров, чтобы поспорить о них с кем угодно, включая людей из JB ;)

Руслан
05.02.2018
22:04:33
Откоментил https://gist.github.com/KirillTim/a0f2e3a93af39cb64347e328baeb4a8f#gistcomment-2342364

Kirill
05.02.2018
22:06:01
Руслан
05.02.2018
22:07:01
120/80? У меня в основном вмещается в 80 код, но бывает и под 120. в целом люблю конечно когда код не широкий

Kirill
05.02.2018
22:07:22
у меня в 120 не влез твой вариант :(

Руслан
05.02.2018
22:08:17
ну тогда комбинировать можно с компромисным

Теперь влезает в 80 (обновил коммент)

Kirill
05.02.2018
22:10:41
ага. а можно ещё использовать with (обновил)

нашёл таки свой идеал, спасибо :)

Konstantine
05.02.2018
22:57:07




Что ему не нравится?

Причем если прокинуть всего одну пару - все ок

Kirill
05.02.2018
22:57:31
10 шакалов из 10

а если сделать *listOf(..).toTypedArray() ?

Sergey
05.02.2018
23:00:16
импорт Pair должен быть из пакета саппорт либы

у тебя скорее всего котлиновский

Konstantine
05.02.2018
23:00:38
импорт Pair должен быть из пакета саппорт либы
Так и есть, говорю же - если оставить одну пару то все окей.

Google
Konstantine
05.02.2018
23:00:45
Именно не хочет vararg принимать.



Sergey
05.02.2018
23:04:49
попробуй fun foo(vararg strings: String) { /* ... */ } foo(strings = *arrayOf("a", "b", "c"))

Konstantine
05.02.2018
23:06:57
Все. Разобрался. Беда в том, что мои view были скастины к определенному типу (TextView), а метод запрашивает только базовый View

Не знаю почему так

Danil
06.02.2018
09:09:26
Кто-нибудь подскажет, есть ли для IDEA плагин, аналог teletype для Atom? Для "одновременной разработки"

Alex
06.02.2018
09:10:00
Он встроен

Cmd + левый клик на нужной строке

А, ты имеешь в виду с подключением?

Upsource посмотри. Он вроде для код-ревью, но можно и код писать

Danil
06.02.2018
09:11:33
Ну, что бы несколько человек могли подключиться ко мне, и могли писать в моих файлах, и я в режиме реального времени видел все изменения, как и они мои

Igor
06.02.2018
09:12:06
Про git слышал ?

Sergey
06.02.2018
09:12:49
парное программирование хочет наверное

balolam
06.02.2018
09:13:42
Странная надобновть вдвоем именно разрабатывать чет в одном файле

Danil
06.02.2018
09:14:11
Ну очень жаль, что нет( Просто в атоме видел , очень понравилось

Sergey
06.02.2018
09:14:48
balolam
06.02.2018
09:27:03
о парном программировании не слышали?)
Это не парное программирование. Там суть в другом.

Sergey
06.02.2018
09:27:31
почему не парное?

Google
balolam
06.02.2018
09:28:17
Па́рное программи́рование — техника программирования, при которой исходный код создаётся парами людей, программирующих одну задачу, сидя за одним рабочим местом. Один программист («ведущий») управляет компьютером и, в основном, думает над кодированием в деталях. Другой программист («штурман»[1]) сосредоточен на картине в целом и непрерывно просматривает код, производимый первым программистом.

Konstantine
06.02.2018
09:28:41
Это парное онлайн:)

Sergey
06.02.2018
09:28:43
и? если один сидит в германии, а другой в штатах. как ты парным позанимаешься?

balolam
06.02.2018
09:28:46
Разделение задач, а не выполнение одновременно

Konstantine
06.02.2018
09:29:18
Мультиплеер подвезли

Sergey
06.02.2018
09:29:24
один кодит, другой в это время смотрит на то что кодит первый

в любой момент они меняются ролями

в процессе обсуждая че происходит

а сидят они за одним компом, или по скайпу говорят это уже не важно

Руслан
06.02.2018
09:29:47
Будет прикольно если плагин сможет ещё один дебаггер двоим показывать

balolam
06.02.2018
09:30:22
Danil
06.02.2018
09:30:40
Вот видосик, как это работает https://teletype.atom.io/

Sergey
06.02.2018
09:31:17
вообще можно с тем же гитом и скриншерингом работать, только немного лишних шагов добавляется

Руслан
06.02.2018
09:33:11
Вообще одновременное редактирование должно быть достаточно просто сделать, главное чтобы в Idea не было фундаментального ограничения на колличество курсоров, или хотя бы возможность в произвольное место чары добавлять не ломая то что реальный юзер тайпает

Скриншаринг это оверхед большой, часто качество картинки страдает. И минус что работает в окружении которое может быть настроено под другого человека, начиная от любителей кастомных биндингов, заканчивая различиями в os

Leonid
06.02.2018
09:35:55
Кажется, в идее “под капотом” во время тайпинга происходит гораздо больше, чем в каком-нибудь Атоме

Sergey
06.02.2018
09:44:53
https://youtrack.jetbrains.com/issue/IDEABKL-708

Kira
06.02.2018
10:25:32
Кажется, в идее “под капотом” во время тайпинга происходит гораздо больше, чем в каком-нибудь Атоме
Около пары тысяч разных проверок, например, недавно выложили видео с Тагиром

Alexandr
06.02.2018
10:28:47
Ребят подскажите пожалуйста есть переменная, которая определяется через lateinit пусть будет для пример lateinit var test : someClass. Я где нужно делаю проверки типа isInitialized и все гуд, но появилась необходимость обнулить эту переменную чтобы при проверке isInitialized выдавало false. Можно так сделать??? или придется через null переделывать???

Google
Alexandr
06.02.2018
10:32:37
Я бы настоятельно советовал для таких кейсов использовать Maybe/Option(-al)/или если совсем лениво, то nullable. Ибо если что-то может обнулиться, то эт уже не поздняя инициализация
переменная у меня обнуляется только при возврате с другой активити... а в пределах этой она не может быть null поэтому и сделал lateinit

Igor
06.02.2018
10:40:34
null это Optional котлина
Да ну его, приятнее с optional работать.

Max
06.02.2018
10:42:56
Кто нибудь знает почему котлин может конвертить поле @Inject public var userManager: UserManager? = null В приватное? Из-за этого даггер не инжектит зависимость @javax.inject.Inject() private ru.olololo.managers.UserManager userManager;

Igor
06.02.2018
10:44:10
Да ну его, приятнее с optional работать.
Ну такое, многословно и компилятор не проверяет что вернулся Option, а не null (или проверяет?..)

Max
06.02.2018
10:45:10
lateinit var
но его нельзя тогда сделать nullable

Михаил
06.02.2018
10:45:30
А зачем его таковым делать?)

Igor
06.02.2018
10:45:42
А можно ли как-то указать, что generic обязан быть sealed классом?

Max
06.02.2018
10:46:26
Потому что падает с null - ошибкой в non-null переменной. НЕ в этом месте, но падало, именно по этому октазался от котлина на тот момент

нужно либо setter injection, либо @JvmField
@JvmField - ты прям спас мою веру в котлин. Работает, спасибо

Andrew
06.02.2018
10:54:01
по идее инжект в сеттер лучше, ибо обходится без рефлексии

а хотя если @JvmField public, то и сюда инжект без неё.

Max
06.02.2018
11:10:32
В документации ещё пишут что lateinit var можно инжектить
Да, это тоже работает, но в некоторых случаях приводит к крашу

Поле не сделать nullable, а если обратиться к нему до инжекта (хз как такое может быть), то все упадет

Kira
06.02.2018
11:12:03
Н-да.. не нравится мне этот даггер

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