
Жабра
05.02.2018
21:41:27

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

Руслан
05.02.2018
21:54:20

Kirill
05.02.2018
21:54:34

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

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

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

Google

Kirill
05.02.2018
22:03:59

Andrew
05.02.2018
22:04:16

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

Andrew
05.02.2018
22:04:58

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

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 слышал ?

Leonid
06.02.2018
09:12:46

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

JRoot3D
06.02.2018
09:20:16

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 переделывать???

Igor
06.02.2018
10:30:50

Google

Alexandr
06.02.2018
10:32:37

Boris
06.02.2018
10:39:54

Igor
06.02.2018
10:40:34

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

Михаил
06.02.2018
10:44:15

Max
06.02.2018
10:45:10

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

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

Quantum Harmonizer
06.02.2018
10:45:45
нужно либо setter injection, либо @JvmField

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

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

Kira
06.02.2018
11:10:08

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

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