サーバーサイド Kotlin
Kotlin は、サーバーサイドアプリケーションの開発に非常に適しています。簡潔で表現力豊かなコードを記述でき、既存の Java ベースのテクノロジースタックとの完全な互換性を維持しながら、スムーズな学習曲線を実現できます。
- 表現力: Kotlin の革新的な言語機能 (type-safe builders や delegated properties のサポートなど) は、強力で使いやすい抽象化の構築に役立ちます。
- スケーラビリティ: Kotlin の coroutines のサポートは、適度なハードウェア要件で膨大な数のクライアントにスケールするサーバーサイドアプリケーションの構築に役立ちます。
- 相互運用性: Kotlin はすべての Java ベースのフレームワークと完全に互換性があるため、よりモダンな言語の利点を享受しながら、使い慣れたテクノロジースタックを使用できます。
- 移行: Kotlin は、大規模なコードベースを Java から Kotlin への段階的な移行をサポートしています。システムの古い部分を Java で保持しながら、新しいコードを Kotlin で記述できます。
- ツール: 一般的な優れた IDE サポートに加えて、Kotlin は IntelliJ IDEA Ultimate のプラグインでフレームワーク固有のツール (たとえば、Spring および Ktor 用) を提供します。
- 学習曲線: Java 開発者にとって、Kotlin の学習は非常に簡単です。Kotlin プラグインに含まれている自動 Java-to-Kotlin コンバーターは、最初のステップに役立ちます。Kotlin Koans は、一連のインタラクティブな演習を通じて主要な言語機能をガイドします。Ktor のような Kotlin 固有のフレームワークは、大規模なフレームワークの隠れた複雑さのない、シンプルでわかりやすいアプローチを提供します。
Kotlin を使用したサーバーサイド開発のためのフレームワーク
Kotlin のサーバーサイドフレームワークの例を次に示します。
-
Spring は、Kotlin の言語機能を利用して、バージョン 5.0 以降、より簡潔な API を提供します。オンラインプロジェクトジェネレーターを使用すると、Kotlin で新しいプロジェクトをすばやく生成できます。
-
Ktor は、JetBrains によって構築されたフレームワークであり、Kotlin で Web アプリケーションを作成し、高いスケーラビリティのためにコルーチンを利用し、使いやすく慣用的な API を提供します。
-
Quarkus は、Kotlin の使用をファーストクラスでサポートします。このフレームワークはオープンソースであり、Red Hat によって維持されています。Quarkus は Kubernetes 用にゼロから構築されており、数百もの最高のライブラリを活用して、まとまりのあるフルスタックフレームワークを提供します。
-
JVM 上でリアクティブ Web アプリケーションを構築するためのフレームワークである Vert.x は、専用のサポート を提供します。Kotlin 用 (完全なドキュメント を含む)。
-
kotlinx.html は、Web アプリケーションで HTML を構築するために使用できる DSL です。これは、JSP や FreeMarker などの従来のテンプレートシステムに代わるものとして機能します。
-
Micronaut は、モジュール式でテストが容易なマイクロサービスおよびサーバーレスアプリケーションを構築するための最新の JVM ベースのフルスタックフレームワークです。多くの便利な組み込み機能が付属しています。
-
http4k は、純粋な Kotlin で記述された、Kotlin HTTP アプリケーション用のフットプリントの小さい機能的なツールキットです。このライブラリは、Twitter の「Your Server as a Function」という論文に基づいており、HTTP サーバーとクライアントの両方を、相互に構成できる単純な Kotlin 関数としてモデル化することを表しています。
-
Javalin は、Kotlin および Java 用の非常に軽量な Web フレームワークであり、WebSockets、HTTP2、および非同期リクエストをサポートしています。
-
永続性の利用可能なオプションには、直接 JDBC アクセス、JPA、および Java ドライバーを介した NoSQL データベースの使用が含まれます。JPA の場合、kotlin-jpa compiler plugin は、Kotlin でコンパイルされたクラスをフレームワークの要件に適合させます。
詳細については、https://kotlin.link/ を参照してください。
Kotlin サーバーサイドアプリケーションのデプロイ
Kotlin アプリケーションは、Amazon Web Services、Google Cloud Platform など、Java Web アプリケーションをサポートする任意のホストにデプロイできます。
Heroku に Kotlin アプリケーションをデプロイするには、公式 Heroku チュートリアル に従ってください。
AWS Labs は、AWS Lambda 関数を作成するための Kotlin の使用を示すサンプルプロジェクトを提供しています。
Google Cloud Platform は、Ktor および App Engine と Spring および App engine の両方について、Kotlin アプリケーションを GCP にデプロイするための一連のチュートリアルを提供しています。さらに、Kotlin Spring アプリケーションをデプロイするためのインタラクティブなコードラボ があります。
サーバーサイドで Kotlin を使用する製品
Corda は、主要な銀行によってサポートされ、完全に Kotlin で構築されたオープンソースの分散台帳プラットフォームです。
JetBrains Account は、JetBrains のライセンス販売および検証プロセス全体を担当するシステムであり、100% Kotlin で記述されており、2015 年から主要な問題なく本番環境で実行されています。
Chess.com は、チェスとゲームを愛する世界中の何百万人ものプレイヤーに特化した Web サイトです。Chess.com は、複数の HTTP クライアントのシームレスな構成に Ktor を使用しています。
Adobe のエンジニアは、サーバーサイドアプリの開発に Kotlin を使用し、Adobe Experience Platform でのプロトタイピングに Ktor を使用しています。これにより、組織はデータサイエンスと機械学習を適用する前に、顧客データを一元化および標準化できます。
次のステップ
- 言語の詳細な紹介については、このサイトの Kotlin ドキュメントと Kotlin Koans を参照してください。
- Kotlin コルーチンを使用するフレームワークである Ktor で非同期サーバーアプリケーションを構築する方法 を確認してください。
- ウェビナー「Micronaut for microservices with Kotlin」(Micronaut for microservices with Kotlin) を視聴し、Micronaut フレームワークで Kotlin 拡張関数 を使用する方法を示す詳細なガイド を調べてください。
- http4k は、完全に形成されたプロジェクトを生成するための CLI と、単一の bash コマンドで GitHub、Travis、Heroku を使用して CD パイプライン全体を生成するための スターター リポジトリを提供します。
- Java から Kotlin に移行しますか?Java および Kotlin で文字列を使用して一般的なタスクを実行する方法 を学びます。