Kotlin для серверов
Kotlin отлично подходит для разработки серверных приложений. Kotlin позволяет вам писать лаконичный и выразительный код, сохраняя при этом полную совместимость с существующими стеками технологий на базе Java, и все это с плавной кривой обучения:
- Выразительность: инновационные возможности Kotlin, такие как поддержка типобезопасных строителей и делегированных свойств, помогают создавать мощные и простые в использовании абстракции.
- Масштабируемость: поддержка корутинов помогает создавать серверные приложения, масштабируемые для большого числа клиентов со скромными требованиями к оборудованию.
- Совместимость: Kotlin полностью совместим со всеми фреймворками на базе Java, поэтому вы можете использовать свой привычный стек технологий, одновременно пользуясь преимуществами более современного языка.
- Миграция: Kotlin поддерживает постепенную миграцию больших кодовых баз с Java на Kotlin. Вы можете начать писать новый код на Kotlin, сохраняя при этом старые части вашей системы на Java.
- Инструментарий: В дополнение к отличной поддержке IDE в целом, Kotlin предлагает инструментарий для конкретной платформы (например, для Spring) в плагине для IntelliJ IDEA Ultimate.
- Кривая обучения: Для Java разработчика начать работу с Kotlin очень просто. Автоматический конвертер Java в Kotlin, включенный в плагин Kotlin, помогает с первыми шагами. Kotlin Koans поможет вам разобраться в ключевых особенностях языка с помощью интерактивных упражнений.
Фреймворки для серверной разработки на Kotlin
- Spring использует возможности Kotlin, чтобы предлагать более лаконичные API, начиная с версии 5.0. Онлайн-генератор проектов позволяет быстро сгенерировать новый проект в Kotlin.
- Vert.x, фреймворк для создания интерактивных веб-приложений на JVM, предлагает специальную поддержку Kotlin, включая полную документацию.
- Ktor - это фреймворк, созданный JetBrains для создания веб-приложений в Kotlin, использующий корутины для высокой масштабируемости и предлагающий простой в использовании идиоматический API.
- kotlinx.html - это DSL, который можно использовать для HTML разметки в веб-приложениях. Он служит альтернативой традиционным системам шаблонов, таким как JSP и FreeMarker.
- Micronaut - это современный фулстек фреймворк на базе JVM созданный для создания модульных, легко тестируемых микросервисов и бессерверных приложений. В него встроены множество полезных функций.
- http4k - это функциональный инструментарий с небольшими возможностями для HTTP-приложений Kotlin, написанный на чистом Kotlin. Библиотека основана на статье “Your Server as a Function” из Twitter и представляет моделирование как HTTP-серверов, так и клиентов в виде простых функций Kotlin, которые могут быть собраны вместе.
- Javalin - это очень легкий веб-фреймворк для Kotlin и Java, который поддерживает WebSockets, HTTP2 и асинхронные запросы.
- Доступные варианты стабильности включают в себя прямой доступ к JDBC, JPA и использование баз данных NoSQL через их Java драйверы. Для JPA плагин компилятора kotlin-jpa адаптирует классы, скомпилированные на Kotlin, к требованиям фреймворка.
Внедрение серверных приложений Kotlin
Приложения Kotlin могут быть развернуты на любом хосте, поддерживающем веб-приложения Java, включая Amazon Web Services, Google Cloud Platform и многое другое.
Чтобы развернуть приложения Kotlin на Heroku, вы можете следовать официальному руководству Heroku.
AWS Labs предлагает пример проекта, демонстрирующего использование Kotlin для написания AWS лямбда-функций.
Google Cloud Platform предлагает серию учебных пособий по развертыванию приложений Kotlin в GCP для Ktor и App Engine, а также для Spring и App engine. Кроме того, существует интерактивная лаборатория кода для развертывания Kotlin Spring приложения.
Продукты, использующие Kotlin на сервере
Corda - это open-source платформа распределенных реестров, которая поддерживается крупными банками и полностью построена Kotlin.
JetBrains Account, система, отвечающая за весь процесс продажи и проверки лицензий в JetBrains, вся на 100% написана на Kotlin и работает с 2015 года без каких-либо серьезных проблем.
Дальнейшие действия
- Для более подробного ознакомления с языком ознакомьтесь с документацией Kotlin на этом сайте и на Kotlin Koans;
- Посмотрите вебинар “Micronaut для микросервисов с Kotlin” и ознакомьтесь с подробным руководством, демонстрирующем, как вы можете использовать функции-расширения Kotlin в фреймворке Micronaut;
- http4k предлагает CLI для создания полностью сформированных проектов и стартовый репозиторий для создания всего конвейера CD с использованием GitHub, Travis и Heroku с помощью одной bash-команды;
- Хотите перейти с Java на Kotlin? Узнайте, как выполнять типичные задачи со строками в Java и Kotlin.