Size: a a a

Kotlin Community

2020 December 11

OY

Oleg Yukhnevich in Kotlin Community
саша сок #KotlinGang
спасибо, не знал
источник

PD

Phil Delgyado in Kotlin Community
Sergey Bezrukov
Кстати да. Вообще было бы интересно послушать о реальном применении ktor server для решения стандартных задач бэкенда:  принять REST запрос, сходить в БД, может в кэш, что-нибудь послать/принять из Кафки и т.п., отослать ответ.  
В первую очередь интересны вопросы developer productivity - соотношение объёма потребной для реализации типовых задач писанины со спрингом/кваркусом, типичные грабли и пути их обхода, выявленные преимущества и недостатки.  Насколько я понимаю @dphil имеет опыт эксплуатации ktor server в проде.
Если коротко:
1) Начинали разработку на ktor в команде без опыта котлина, но с опытом Spring
2) Выбирали ради поддержки корутин и простоты доработки своих фич
3) Основное время в начале ушло скорее на изучение котлина и корутин, нежели на ктор
4) Сейчас результатом довольны, хотя есть и минусы (типа интеграции с кофеином, хотя сейчас я бы вообще без DI обошелся на наших сервисах)
5) Активно делаем собственные фичи (свой логгинг, своя аутентификация, авторизация, etc), это не сложно.
источник

AN

Alexander Nozik in Kotlin Community
Phil Delgyado
Если коротко:
1) Начинали разработку на ktor в команде без опыта котлина, но с опытом Spring
2) Выбирали ради поддержки корутин и простоты доработки своих фич
3) Основное время в начале ушло скорее на изучение котлина и корутин, нежели на ктор
4) Сейчас результатом довольны, хотя есть и минусы (типа интеграции с кофеином, хотя сейчас я бы вообще без DI обошелся на наших сервисах)
5) Активно делаем собственные фичи (свой логгинг, своя аутентификация, авторизация, etc), это не сложно.
+
Я вот сейчас для визуализации просто модули делаю, которые одной строчкой включаются без всяких инжекций
источник

PD

Phil Delgyado in Kotlin Community
И модули тоже делаем.
источник

AN

Alexander Nozik in Kotlin Community
Phil Delgyado
И модули тоже делаем.
Я имею в виду, что модуль - это просто функция. Вообще не надо думать как и через что она подключается. и каким путем это вставляется. Просто зависимость в градле и вызов экстеншена при создании сервера. Кстати под всякие кафки, которые упоминал @haufau тоже должно быть просто. Вот к примеру @why_oleg делал модуль под рсокеты на ws. Выглядит очень органично
источник

SZ

Sergey Zolotov in Kotlin Community
Sergey Bezrukov
Кстати да. Вообще было бы интересно послушать о реальном применении ktor server для решения стандартных задач бэкенда:  принять REST запрос, сходить в БД, может в кэш, что-нибудь послать/принять из Кафки и т.п., отослать ответ.  
В первую очередь интересны вопросы developer productivity - соотношение объёма потребной для реализации типовых задач писанины со спрингом/кваркусом, типичные грабли и пути их обхода, выявленные преимущества и недостатки.  Насколько я понимаю @dphil имеет опыт эксплуатации ktor server в проде.
переходили со спринга, некоторые вообще без опыта джавы

после фулстек фреймворков немного пугает свобода действий и банальные вещи можно по-разному реализовать

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

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

а так очень довольны) уже почти 4 года
источник

PD

Phil Delgyado in Kotlin Community
При этом встроенный логгер, мониторинг и трейсинг вполне норм на первый год-два (ну, для нас, только сейчас стали менять)
источник

SZ

Sergey Zolotov in Kotlin Community
встроенный трейсинг? его так и не добавили
источник

SZ

Sergey Zolotov in Kotlin Community
если мы про opentracing реализации
источник

PD

Phil Delgyado in Kotlin Community
А, да, туплю
Вообще, коллега @ntukkel гораздо лучше меня расскажет про ktor и опыт его использования, я тут скорее менеджером выступал...
источник

АМ

Алексей Михайлов... in Kotlin Community
а то что в idea 2020.3 плагин котлина только под 1.4.10 есть это нормально вообще?
https://plugins.jetbrains.com/plugin/6954-kotlin/versions для студии и более старых идей есть под 1.4.21...
источник

AN

Alexander Nozik in Kotlin Community
Алексей Михайлов
а то что в idea 2020.3 плагин котлина только под 1.4.10 есть это нормально вообще?
https://plugins.jetbrains.com/plugin/6954-kotlin/versions для студии и более старых идей есть под 1.4.21...
Да, это у всех так. 1.4.20под еапом
источник

AN

Alexander Nozik in Kotlin Community
Кстати, к теме ктора, никто не знает в kotlinx-html можно unsafe отстроить со смещением как-то? Чтобы форматирование красивое было
источник

D

Denys in Kotlin Community
Alexander Nozik
Кстати, к теме ктора, никто не знает в kotlinx-html можно unsafe отстроить со смещением как-то? Чтобы форматирование красивое было
Относительно окружающего контента?
источник

AN

Alexander Nozik in Kotlin Community
Denys
Относительно окружающего контента?
да
источник

D

Denys in Kotlin Community
Скорее всего никак, я через отдельный бютифаер проганял.
источник

AN

Alexander Nozik in Kotlin Community
Denys
Скорее всего никак, я через отдельный бютифаер проганял.
ясно. Ну ладно, там чисто вопрос эстетики. Жсончик надо заинлайнить
источник

D

Denys in Kotlin Community
Alexander Nozik
ясно. Ну ладно, там чисто вопрос эстетики. Жсончик надо заинлайнить
Я себе такое в пайплайн встраивал, если что

https://gist.github.com/dector/3bc43d4d5c5b51529a43b66c389ad19a
источник

AN

Alexander Nozik in Kotlin Community
спасибо, посмотрю
источник

VG

Vik Gamov in Kotlin Community
Sergey Barmin
Хотите быстро - все еще спринг. Хотите большего удовольствия от работы и вовлеченности в процесс не по шаблону спринга - велком ту ктор. Только второй вариант обычно не устраивает работодателя
Отлично сказано
источник