@kotlin_lang

Страница 857 из 982
Mi
09.09.2018
16:55:22
Да про много чего, но если говорить о каких-нибудь аналитических апи, типа SearchConsole, которые уже очень давно не обновлялись

Или какой-нибудь bigquery/GCS

Там тоже достаточно грустно

Google
Alexander
09.09.2018
16:57:06
Да, на мобилки я вообще лет 5 уже не писал

Mikhail
09.09.2018
20:15:06
@EL А точно стоит именно с котлина начинать? Всё же котлин язык молодой и курсов немного. А для начала нужен скорее не курс по языку, а CS курс где покажут достижения прогресса которые вам помогут в проектировании/программировании, и где язык скорее пассажир на примере которого это всё делается. С котлином в качестве языка пассажира такие курсы вряд ли кто делал...

Alexander
09.09.2018
20:16:45
Можем устроить войнушку на тему того, нужен ли CS программистам.

Dmitry
09.09.2018
20:20:16
контер страйк?

Mikhail
09.09.2018
20:25:39
так, не с той карты зашёл наверное, скорее имелось ввиду что если нужен курс именно для начинающего, то опустив требование "kotlin" можно найти варианты куда лучше. Всё же всё-равно потом изучишь кучу разных языков и первый язык на котором познаёшь программирование не сказать что самая важная деталь

Dmitry
09.09.2018
20:41:25
Я бы не сказал, что большинство программистов знают кучу языков.

abdurrahim hassan
09.09.2018
20:49:11
What is lambda?

Руслан
09.09.2018
20:51:21
What is lambda?
http://lmgtfy.com/?q=lambda+function you're welcome

Mikhail
09.09.2018
20:52:19
Я бы не сказал, что большинство программистов знают кучу языков.
может быть, но мне кажется точно не стоит кидаться допустим на котлин, когда рядом есть очень похожие джава и шарп, по которым курсов куда больше, и на курсах по которым ты вряд ли узнаешь много ненужного для программирования на котлине

abdurrahim hassan
09.09.2018
20:52:19
Thanks

Eugeny
10.09.2018
08:26:38
Почему компилятор запрещает destructing declarations на nullable типах? По логике деконструированные переменные от nullable типов должны быть всегда nullable и проблем нет

Alexandr
10.09.2018
09:22:44
Почему компилятор запрещает destructing declarations на nullable типах? По логике деконструированные переменные от nullable типов должны быть всегда nullable и проблем нет
не совсем, у тебя исходный объект может быть null, а может и его поле, это разные ситуации, поэтому нужна однозначность

можешь в also обернуть

Google
Eugeny
10.09.2018
11:11:37
Можно. Я с лямбдой так и сделал. Но не очень удобно делать вложенность там, где ее можно избежать

Nanodesu
10.09.2018
11:49:17
Всем привет. Может кто знает - есть ли в tornadofx для ImageView хендлер для загрузки изображения, если есть то какой? Например я создаю ImageView и в качестве картинки использую URL изображения, далее когда изображение будет загружено мне нужно вызвать Ивент.

Nanodesu
10.09.2018
11:51:12
Это понятно, но к сожалению специального чата для JavaFX я не знаю

Bogdan
10.09.2018
11:51:17
Это понятно, но к сожалению специального чата для JavaFX я не знаю
https://o7planning.org/ru/11127/javafx-image-and-imageview-tutorial тебе нужно поискать в Image(от JavaFX) , именно он отвечает за загрузку

еще советую заглянуть на ютуб-канал Едвина, там что-то было связанно с кешированием и загрузкой картинок

Sergey
10.09.2018
13:08:36
кто-то юзает gRPC? он же умеет работать как неблокирующий?

Руслан
10.09.2018
13:13:16
В доке там обсерваблы

Sergey
10.09.2018
13:19:47
есть смысл его вместе с ktor юзать?

Руслан
10.09.2018
13:29:40
Я подозреваю что они немножко параллельны, т.е. протобаф ты можешь к ктор прикрутить, а вот grpc это как spring boot прикручивать. Т.е. их наверное можно параллельно иметь в одном инстансе, но дружить странно

grpc-java/HelloWorldServer.kt at master · grpc/grpc-java · GitHub https://github.com/grpc/grpc-java/blob/master/examples/example-kotlin/src/main/kotlin/io/grpc/examples/helloworld/HelloWorldServer.kt

Roman
10.09.2018
13:33:41
https://github.com/Kotlin/kotlinx.coroutines/pull/518

Руслан
10.09.2018
13:43:05
https://github.com/Kotlin/kotlinx.coroutines/pull/518
Это мост между корутинами и асинхронными типами для gRPC, а чтобы с ktor это все использовать (в качестве сервера) , нужно еще кодогенерацию какую-то прикрутить, чтобы встроиться в его пайплайн. Если использовать gRPC только как клиент действительно видимо хорошо получится.

Simon
10.09.2018
14:56:25




Mi
10.09.2018
14:57:00
Зависит от контекста

Simon
10.09.2018
14:57:37
если смотреть в иде, второй вариант более информативен, проще и универсальнее

для it все равно показывается вся инфа

Alexander
10.09.2018
14:59:16
Однозначно этого никто не утверждает, иначе бы этой фичи не было. Примерно можно правило взять такое - если есть вложенность лямбд или размер лямбды такой, что визуально можно уже не видеть контекст этого it, то лучше делать новое имя. Иначе it нормально.

Google
Simon
10.09.2018
15:00:30
но ведь из за отступов виден контекст it

Mikhail
10.09.2018
15:00:54
но ведь из за отступов виден контекст it
для этого надо быть очень внимательным человеком

так то и Nullability можно руками инферить

Simon
10.09.2018
15:03:28
еще раз и так видно it:Type и так type->, инфа есть и там и там

Alexander
10.09.2018
15:05:06
но ведь из за отступов виден контекст it
Если лямбда размером больше экрана (совсем экстремальная логика), то нам уже никак не поможет отступ. Далее если меньше, то все равно полагаться сложно. Ну и учитывай чтение без идеи, например в битбакете или просто на гитхабе. Там впринципе есть немаленький шанс строк через 5-10 с трудом помнить, к чему относится it.

Поэтому можно почти всегда it выбирать, конечно можно. Просто в какой-то момент будет больше усилий, чем нужно.

Andrey
10.09.2018
15:16:36
В общем, не гоже так раскармливать анонимные функции, а если уж вышла такая большая - надо поименовать.

Alexander
10.09.2018
15:19:02
Если лямбда больше экрана - впору задуматься о том, чтобы её попилить на несколько методов. Ну или вынести в метод и заменить ссылкой на этот метод.
Сказал же, пример немного экстремальный, делать так не предлагаю просто так. В любом случае, если примерно больше 10 строк и особенно если есть вложенность, то it может быть хуже с точки зрения читабельности.

Simon
10.09.2018
15:27:20
person.email?.let { sendEmail(it) } Из котлин кодстайлов. Лямбда c it. Такой let имеет такую же читаемость как тот foreach. И нет смысла в правиле что на скрине не it. Так что можно принять использовать it правило. Как и то что лямбды не должны быть большие

Igor
10.09.2018
15:30:22
Баг?





Simon
10.09.2018
15:31:02
ага

Alexander
10.09.2018
15:32:28
person.email?.let { sendEmail(it) } Из котлин кодстайлов. Лямбда c it. Такой let имеет такую же читаемость как тот foreach. И нет смысла в правиле что на скрине не it. Так что можно принять использовать it правило. Как и то что лямбды не должны быть большие
Ну можно ещё поспорить с опцией let(::sendEmail) Но здесь и именно в том форе тебе никто и не предложил использовать лямбда с именованием входящего параметра. Просто говорится о том, что есть кейсы, когда не стоит или даже не получится. Пример (опять таки, не предлагаю так делать) - инициализация массива массивов.

Andrew
10.09.2018
18:16:31
https://ktor.io/kotlinx/io.html Минутка интересных ссылок

Admin
ERROR: S client not available

Google
Sergey
10.09.2018
18:20:07
когда-то можно будет выбросить нетти

Alexander
10.09.2018
18:37:47
Leonid
10.09.2018
18:38:41
А чем плох нетти?
Не кроссплатформенный :)

Sergey
10.09.2018
18:38:50
А чем плох нетти?
ничем, лишние зависимости. если CIO будет справляться ничем не хуже, почему бы и нет?

у меня прям глаз радуется когда смотришь на зависимости проекта, а там только котлин, ктор и kotlinx.*

Alexander
10.09.2018
18:39:23
Да ничего против. Просто хотелось узнать, может там какие проблемы.

Sergey
10.09.2018
18:39:47
у нетти свой пул потоков, у CIO будет юзаться общий

плюс кросс платформенность

balolam
10.09.2018
18:40:06
у меня прям глаз радуется когда смотришь на зависимости проекта, а там только котлин, ктор и kotlinx.*
ну как сказать, это тоже зависимость, будет как ATG, залез и не слез

Alexander
10.09.2018
18:43:07
Здорово все это, но очень нужен мост из K-JVM на K-N.

Паша
10.09.2018
18:54:09
у нетти свой пул потоков, у CIO будет юзаться общий
так свой пул потоков там специально сделан, более того, там разделение на IO + worker пулы (тоже специально)

а то что юзается Common Pool, может быть наоборот такое себе

Sergey
10.09.2018
18:54:37
это была больше отсылка к новому диспатчеру корутин

у меня щас на сервисах в принципе и так по 20 потоков всего живет, но перспектива снизить их до 4-8 радует)

Паша
10.09.2018
18:55:16
да, это приятненько. ) Я поискал сходу бенчмарки и нашёл только сравнение с RxJava под андроид. вероятно теперь могут быть более реалистичные

Sergey
10.09.2018
18:57:37
да, это приятненько. ) Я поискал сходу бенчмарки и нашёл только сравнение с RxJava под андроид. вероятно теперь могут быть более реалистичные
переключение корутин без смены потока, оптимизации внутри с инлайн классами. вот как это дело все уйдет в стабильные релизы, тогда можно будет смотреть)

я как-то в слаке в ктор канале спросил на счет того чтобы юзать его как реверс прокси или статику раздавать, мне сказали разрабы - остановись, ты херню делаешь?

Google
Sergey
10.09.2018
19:00:37
хотя бенчмарки можно было б и сделать, в сравнении с nginx или go/mux

Alexandr
10.09.2018
19:02:41
я как-то в слаке в ктор канале спросил на счет того чтобы юзать его как реверс прокси или статику раздавать, мне сказали разрабы - остановись, ты херню делаешь?
На самом деле интересно посмотреть, кстати вот еще интересно глянуть как написан Netflix zuul proxy, он вроде очень производителен

Там чистая java

Sergey
10.09.2018
19:03:24
там нетти

На самом деле интересно посмотреть, кстати вот еще интересно глянуть как написан Netflix zuul proxy, он вроде очень производителен
вообще изначально хотели что-то типа него, но потому что не нужен вагон фичей, можно было б просто на ktor свою проксю сделать. но пока обошлись костылями на nginx

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