
Dumitru
21.01.2018
20:50:57
уже другая фукнция main

Boris
21.01.2018
20:50:58

Georgiy
21.01.2018
20:51:17

Bogdan
21.01.2018
20:52:30
уже другая фукнция main
посмотри про саспенд, он модифицирует функцию, есть lauch - если майн завершится корунтинам капец, runBlock = блокирует до завершения корунтин

Google

Bogdan
21.01.2018
20:53:14
как-то так

Kirill
21.01.2018
20:53:44
уже другая фукнция main
прочитай, пожалуйста, вот это для начала:
https://kotlinlang.org/docs/tutorials/coroutines-basic-jvm.html

Dumitru
21.01.2018
20:54:09
ок спс

Kirill
21.01.2018
20:55:15
ок спс
а потом вот это: https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md
и вот это: https://github.com/Kotlin/kotlin-coroutines/blob/master/kotlin-coroutines-informal.md

Quantum Harmonizer
21.01.2018
20:56:13

Alex
21.01.2018
20:57:37
@Harmonizr акторы в kotlinx уже есть или нет?

Quantum Harmonizer
21.01.2018
20:57:56

Alex
21.01.2018
20:58:10
О, пощупаю. Спасибо!

Руслан
21.01.2018
21:04:03
@angmarr помню ты все думал какой Result/Either втащить в проект, к чему пришел? Свой используешь, или либу?

Kirill
21.01.2018
21:05:32

Руслан
21.01.2018
21:08:37
У меня сейчас на выбор:
0. Свои 5 строк
1. arrow-data (https://github.com/arrow-kt/arrow/tree/master/arrow-data)
2. funktionale-either (https://github.com/MarioAriasC/funKTionale/tree/master/funktionale-either)
3. https://github.com/michaelbull/kotlin-result
4. https://github.com/kittinunf/Result


Georgiy
21.01.2018
21:12:52
В сыром виде, где обработчики прописаны «на месте», это так же плохо.
Нет, я говорю не о фиче уровня языка. Класс должен реализовывать интерфейс — тогда его можно декорировать.
То же и с контроллерами в MVC. Согласен, что конечные контроллеры представляются набором методов. Однако, родительский класс имеет свой интерфейс, соответствующий SOLID в той или иной степени (зависит от фреймворка). И набор методов-экшнов - это просто способ представить роутинг. Скажем, имей каждый контроллер метод, возвращающий коллекцию пар ключ-значение с наименованием экшна в ключе и функцией в значении, это было бы точно то же самое, но уже кошерно, так ведь (нет лишних методов)?

Google

Igor
21.01.2018
21:14:53

Quantum Harmonizer
21.01.2018
21:18:25

Dumitru
21.01.2018
21:20:53
launch и runBlocking горят красным
вообще хз че делаю не так

Anton
21.01.2018
21:22:38
подключи корутины)

Dumitru
21.01.2018
21:22:39
пример из нета

Kirill
21.01.2018
21:24:13
пример из нета
у тебя градл проект или jps?
что будет если поставить курсор на красный код и нажать alt+enter?

Dumitru
21.01.2018
21:24:51

Kirill
21.01.2018
21:25:51
пример из нета
ты создавал проект как тут(https://kotlinlang.org/docs/tutorials/coroutines-basic-jvm.html#setting-up-a-project) написано?

Dumitru
21.01.2018
21:26:01
раньше вроде появлялось что бы включить их
теперь хз почему нет
нет, обычный

Georgiy
21.01.2018
21:31:29
Какой родительский класс? Какой-нибудь базовый контроллер?
Наследование от классов — зло.
Насчет того, насколько это зло, спорить не буду, т.к. не сабж)
Да, базовый контроллер. Пусть будет по-другому. Фреймворк предоставляет final class Controller, экземпляры которого хранят в property Map с именами экшнов в ключах и функциями в значениях. Нужный инстанс Controller вызывается при получении http запроса и может быть получен в дальнейшем (для обращения к полезному API, связанному с роутингом). Нет наследования, нет методов, не включенных в интерфейс - концептуально же отличий никаких не будет.

Bogdan
21.01.2018
21:31:43

Kirill
21.01.2018
21:33:08
нет, обычный
создай грэдл проект, как написано в мануале.
и всё заработает

Bogdan
21.01.2018
21:34:52
https://github.com/Kotlin/kotlinx.coroutines

Dumitru
21.01.2018
21:34:53
корутины это не стандартная фичя языка ?

Bogdan
21.01.2018
21:35:03

Dumitru
21.01.2018
21:35:19
лан

Google

Bogdan
21.01.2018
21:36:18

Dumitru
21.01.2018
21:37:39
лучше поздно чем никогда, что такое оверхед ? ))

Bogdan
21.01.2018
21:38:37
каждая фича забирает у на спроизводительности, в памяти процессора и т.д.

Dumitru
21.01.2018
21:39:28
выходит Thread дает нагрузку больше ?

Bogdan
21.01.2018
21:40:13

Андрей
21.01.2018
21:40:55

Bogdan
21.01.2018
21:41:04
корунтины это конечный автомат состояний

Dumitru
21.01.2018
21:41:25

Bogdan
21.01.2018
21:41:45
а так да это ведь одна компания пилит

Dumitru
21.01.2018
21:41:49
то есть не везде работает, как тот же Thread

Bogdan
21.01.2018
21:41:59
везде свои нюансы

Dumitru
21.01.2018
21:42:08
ну да..

Bogdan
21.01.2018
21:42:56

Dumitru
21.01.2018
21:43:50
в Thread разве блокируется ?
не в main Thread а в new
хм ну ладно

Bogdan
21.01.2018
21:44:37

Google

Dumitru
21.01.2018
21:45:10
ну теперь я вижу преимущества корутин )
у меня в голове было так: корутины почти как фреды )

Bogdan
21.01.2018
21:46:33
крунтины это один из вариантов перевода
future, promise и delay

Dumitru
21.01.2018
21:49:51
future - типа сделать в будущем
promise - сделать когда нибудь
delay - типа как отложить ?
немного похожие описания ))

Bogdan
21.01.2018
21:50:15
суть одна
оно когда то произойдет

Kira
21.01.2018
21:50:57
future = promise = deffered

Dumitru
21.01.2018
21:50:58
а в чем отличия ?

Bogdan
21.01.2018
21:51:13
в джаве есть Future, но там много колбеков, это когда после кода }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

Dumitru
21.01.2018
21:51:37
а так вот что такое колбэк ))

Kira
21.01.2018
21:51:43

Bogdan
21.01.2018
21:52:16
корунтины помагают писать и использовать проще + для других колбек а тут конечный автомат

Dumitru
21.01.2018
21:52:37
ясно )

Bogdan
21.01.2018
21:52:37

Dumitru
21.01.2018
21:52:55
я знал как переводится
я не знал про }}}}}

Bogdan
21.01.2018
21:53:29

Dumitru
21.01.2018
21:53:29
вызов в вызове типа ?

Google

Georgiy
21.01.2018
21:53:33

Dumitru
21.01.2018
21:53:41
)

Bogdan
21.01.2018
21:53:58

Dumitru
21.01.2018
21:54:36
Грамотный Георгий )
спс

Georgiy
21.01.2018
21:56:16
Не за что) Я люблю строить точные определения, это полезно и для того кто его строит, и для того кто его услышит.

Quantum Harmonizer
21.01.2018
21:57:11

Bogdan
21.01.2018
21:57:24

Kira
21.01.2018
21:58:35

Bogdan
21.01.2018
21:59:37

Kira
21.01.2018
22:02:13
Нужен генератор определений на основе вики, который будет уточнять какие слова ты знаешь, а затем создавать определение только из знакомых слов)

Bogdan
21.01.2018
22:04:41

Kira
21.01.2018
22:06:26

Georgiy
21.01.2018
22:06:51
Будут. Функцию можно обернуть, добавив какое-то поведение. См. proxy / decorator.
Есть весьма неплохой костыль на этот случай, onBeforeAction/onAfterAction.
Согласен, концепт контроллера скорее всего получил распространение из-за своей наглядности и при близком рассмотрении не пройдет проверку пуриста. Однако, и антипаттерном называть я бы его не стал, т.к. такая архитектура не сулит проблем для любых Web-приложений на любом уровне развития

Kira
21.01.2018
22:07:03
Вот ребята решили лучше разобраться в программировании на хаскеле, дружно слушают лекции по теории групп

Quantum Harmonizer
21.01.2018
22:09:11

Artem
21.01.2018
22:13:23
Ребят, а нормально ли вообще как коллбек кидать лямбду, а не через интерфейс с одним методом?

Андрей
21.01.2018
22:15:56

Bogdan
21.01.2018
22:21:10