
Андрей
24.03.2017
11:43:14
Для того же спринга есть модуль, который сам понаходит контроллеры, и создаст нужную доку. Всю нужную информацию подостает сам с входных/возвращаемых параметров, плюс еще и с таких аннотаций как @RequestMapping, @RequestBody, @PathVariable

Руслан
24.03.2017
11:43:31
Я взял сваггер, пишу в эдиторе http://editor.swagger.io/, генерю код для фронта и бека из него.

Наиль
24.03.2017
11:43:33
сейчас попробую springfox-swagger2. Интересно как она себя будет вести с kotlin data class и полями с дефолтными значениями.

Руслан
24.03.2017
11:43:55
Скоро еще стабы для тестов буду генерить

Google

Руслан
24.03.2017
11:44:47
По сути вы получаете Open API модель (то что вы описываете в спеке) и дальше можете генерить файлы как всдумается

Наиль
24.03.2017
11:45:11
ведь для клиентов API очень часто нужно знать какие поля required а какие optionals.+ еще нужно знать какие default значения получат поля, если их не передать.

Руслан
24.03.2017
11:46:18

Igor
24.03.2017
11:47:50
Вот это правильный ? евент https://twitter.com/KotlinLondon/status/844988639813742593
Учитесь организаторы митапов ?

Sergey
24.03.2017
11:49:05

Наиль
24.03.2017
11:49:10

Руслан
24.03.2017
11:49:49
Для джавы мы генерим три группы классов:
- Модель
- Апи
- АпиИмпл
Модель и Апи ты не трогаешь руками, все только через спеку
АпиИплм не генерится заново если есть, так что его можно руками править
Т.е. часть сгенеренных классов запрещено трогать руками. Если нужно добавить новую операцию - добавляешь в спеку, генеришь классы, аджастишь impl

Наиль
24.03.2017
12:00:06
А что скажете насчет Spring REST Docs?
выглядит разумно, если я правильно понял. Документация пишется по факту того, что отвечает твое апи на тесты.
плюс в том, что вынуждает писать тесты.

Roman
24.03.2017
13:14:11
для чего IDE по умолчанию кидает созданный класс (имя несуществующего класса пишется в коде, потом через контекстное меню он создается) в тот же файл? в java по умолчанию один класс - один файл. в котлине какой-то другой подход является общепринятым?

Google

Roman
24.03.2017
13:16:06
и еще вопрос почему при копировании класса его имя не делается равным имени файла, а остается как у исходного класса? это баг или фича?

Sergey
24.03.2017
13:21:09

Roman
24.03.2017
13:22:42

Андрей
24.03.2017
13:22:51
нет

Sergey
24.03.2017
13:23:00

Андрей
24.03.2017
13:23:26

Sergey
24.03.2017
13:24:39
например, файл LocalModels.kt и внутри
data class User
data class Email

Roman
24.03.2017
13:24:45
хорошо, допустим есть различие, что можно несколько пабликов положить в котлине. но зачем в IDE при этом усложнять жизнь?
если я захочу написать внутри я всегда смогу это сделать

Sergey
24.03.2017
13:25:04
у тебя в одном файле могут лежать интерфейс, имплементация, функции и экстеншены

Sergey
24.03.2017
13:25:35
да, можно просто функцию в файле

Roman
24.03.2017
13:25:51

Sergey
24.03.2017
13:26:54
делай как тебе удобно) можешь по исходникам покопаться у JB
https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/selects/Select.kt вот пример солянки

Roman
24.03.2017
13:27:36

Sergey
24.03.2017
13:27:42
ну и учти, что у тебя могут быть несколько файлов, но в одном пакете

Roman
24.03.2017
13:27:46
"не к добру это" (c)

Sergey
24.03.2017
13:28:10
т.е ты не можешь сделать 2 функции с одинаковым именем в разных файлах, но внутри одного пакета

Roman
24.03.2017
13:28:14
ага, ок
тогда тем более не понятно почему при копировании класса его имя не меняется

Google

Aliaksei
24.03.2017
14:03:48
https://jira.spring.io/browse/SPR-15199
data classes будут поддерживаться в Sping @`RequestMapping `

Siarhei
24.03.2017
14:14:46
Так с jackson-module-kotlin и так работало
@RequestBody

Andrew
24.03.2017
14:35:13
Ребят, а почему работает так:
AnimationUtils
.loadAnimation(context, android.R.anim.slide_in_left)
.let { root.startAnimation(it) }
но не так:
AnimationUtils
.loadAnimation(context, android.R.anim.slide_in_left)
.let { root::startAnimation }
?

Quantum Harmonizer
24.03.2017
14:36:02
.let(root:startAnimation)

Andrew
24.03.2017
14:37:14
круглые скобки нужны?

Руслан
24.03.2017
14:37:47
по чем?

Andrew
24.03.2017
14:38:38
халява, сэр))) заработало, спасибо

Митко Соловец?
24.03.2017
14:41:10
всем привет, есть новости по интеграции спринга и котлина?

Руслан
24.03.2017
14:41:59
Запись нашего митапа, @madhead_by рассказывает
https://www.youtube.com/watch?v=tBnRIZkVg-Q

Митко Соловец?
24.03.2017
14:42:45
спасибо
ух е, свежак

Andrew
24.03.2017
15:04:31

Anton
24.03.2017
15:47:07
a listener самописное?
я просто далек от котлин

Quantum Harmonizer
24.03.2017
15:49:18

Andrew
24.03.2017
15:53:22

Sergey
24.03.2017
15:58:04
TestListAdapter(this, list) { Toast.... }

Andrew
24.03.2017
16:03:06
TestListAdapter(this, list) { Toast.... }
Тэйлы я пчемуто недолюбливаю, визуально похоже на метод, и так начинаю замечать, что я в котлине должен знать больше контекста чем если пишу на яве, может пока прост не привык

Google

Sergey
24.03.2017
16:25:32

Михаил
24.03.2017
17:10:01

Руслан
24.03.2017
17:34:21
Да, всего 35 человек насчитали
В этот раз как-то не густо получилось

Михаил
24.03.2017
17:37:28

Siarhei
24.03.2017
17:43:24
Но там действительно не так уж и много новшеств. Пару десятков extension functions и поддержка nullables, ну и скриптинг (который, по чесноку, ничем не отличается от поддержки спрингом Ruby или там Python)

Alina
24.03.2017
17:43:43
@HeapyHop крутая аватарка! И майка огонь

Руслан
24.03.2017
17:44:21
Майка вообще огонь, согласен

Sergey
24.03.2017
18:05:08

Руслан
24.03.2017
20:36:45
Dmitry

Admin
ERROR: S client not available

Руслан
24.03.2017
20:37:34
Надо альтернативу писать артифактори и нексусу ?

Igor
24.03.2017
21:01:52
Я что бы в равен не заливать на прямую?

Руслан
24.03.2017
21:03:23
Я не пробовал, но говорят адок прямо в мавен, долго апрува ждать

Sergey
24.03.2017
21:21:31

Tony
24.03.2017
21:49:08
что я делаю не так то?

Руслан
24.03.2017
21:50:46
ну это array, конвертни в лист, или сделай forEach
println(args.toList())
вот так например

Google

Tony
24.03.2017
21:53:34

Руслан
24.03.2017
21:54:19
ну или так

Tony
24.03.2017
22:03:38
все-таки я не очень понимаю концепции ?.
поясните пожалуйста простыми словами

Руслан
24.03.2017
22:04:05
Что конкретно непонятно?

Tony
24.03.2017
22:04:17
почему без ? не работает иногда
это какая-то важная штука видимо

Руслан
24.03.2017
22:05:40
http://kotlinlang.org/docs/reference/null-safety.html а вот это изучал?

Tony
24.03.2017
22:06:06
да
ну то есть может быть наллом
и к нему все методы тоже будут налл ансейфти
но зачем это

Quantum Harmonizer
24.03.2017
22:09:05
но зачем это
Когда переменная нуллабельна, можно выбрать: либо проверить на нулл и выполнить разные действия, либо выполнить только если не нулл (?.), либо ответить за то что там не нулл (!!.).

Tony
24.03.2017
22:09:38
а, пытаются упростить проверку что ли

Руслан
24.03.2017
22:10:46
Ну и !! чревато эксшепшенами во время работы программы
Все это сделано для того чтобы избежать NullPointerException в приложении.

Tony
24.03.2017
22:12:07
спасибо
хорошо
а если readLine() возвращает String?
а мне нужна String