Kotlin
JOOQというO/Rマッパーを知ったので調べた www.jooq.org JOOQはSQLクエリを型安全に生成・実行するためのライブラリ JOOQはもともとJavaのO/RマッパーだがSQLの構文をそのまま活かしつつ、Kotlinコードで書けるようにしている R2DBCによるノンブロッキングI/…
頭では浮かんでいるSQLをExposedの書き方に変換するのがつらいので、よく使うものをまとめておく これは今後も更新していく in句 単純に指定されたリスト(list)の値をもとに、テーブルのIDがそのリストに含まれるレコードを取得する場合 sql SELECT * FROM…
KotlinでGCSにファイルをアップロードするための署名付きURLを生成する方法を調べた ちなみにサービスアカウントは作成済みで設定も済んでいるとする uga-box.hatenablog.com まず、Gradleのbuild.gradle.ktsに以下を追加して、Google Cloud Storageライブラ…
Koinにはコンストラクタ注入もあることを知った コンストラクタ注入とは、コンストラクタを通じて依存関係を直接渡す形で注入すること コンストラクタ注入の例 1. 依存関係となるクラス まず、MyRepositoryとMyServiceという2つのクラスを定義します。MyServ…
KoinというKotlin向けの依存性注入(Dependency Injection, DI)フレームワークを知ったので調べた insert-koin.io JavaのSpringと同様にアノテーションでDIを行っていく 主な特徴 軽量でシンプル:余計な設定や複雑なアノテーションを必要とせず、簡単に導…
Kotlin製のテスティングフレームワークのKotestについて調べた kotest.io 元々は「KotlinTest」として知られていたようで、リブランディングされて「Kotest」になったらしい Kotlinの言語特性を活かしながら、簡単かつ強力にユニットテスト、インテグレーシ…
Ktorとは別のKotlinのフレームワーク「Micronaut」を知ったので調べた micronaut.io Micronautは、Kotlin以外にもJava、Groovyで使用できるモダンなフルスタックアプリケーションフレームワーク 特に、マイクロサービスやサーバーレスアプリケーションの構築…
KotlinのフレームワークKtorについて調べた ktor.io Ktorは、JetBrains社が開発しているKotlinで書かれた軽量なフレームワーク Kotlinの特徴を最大限に活かしながら、柔軟かつ簡潔な非同期処理を提供するフレームワークで、特に非同期処理や並行処理を容易に…
Kotlinにコルーチン(Coroutine)という非同期処理を簡単かつ効率的に行うための仕組みがあることを知った コルーチンという言葉に馴染みがなかったので調べたが、非同期処理を実装するための機能で、中断可能なノンブロッキングな非同期処理を簡潔に記述で…
KotlinのassociateWithを知ったのだが、使い所がよくわからなかったので調べた associateWithとは associateWithは、コレクションの各要素を値としてマップを作成する。キーは、コレクションの各要素そのもの 値は、指定したラムダ式で生成される 使い方 val…
Detekt という Kotlinプロジェクトに対してコードの静的解析を行うツールを知ったので調べた detekt.dev Detektプラグインを追加する まず、プロジェクトの build.gradle.kts に Detekt のプラグインを追加する plugins { id("io.gitlab.arturbosch.detekt")…
Kotlinを勉強していて、 withとrunが書き方は違うものの行う処理が似ていると思い、使い分けがわからなかったので調べた withの特徴 レシーバオブジェクト: ブロック内でthisとして扱われる 戻り値: ラムダ式の結果が返される 呼び出し方: with(オブジェクト…
JavaにもJava17から シールドクラス が導入されたが、Kotlin にもあることを知った シールドクラスは特定のサブクラスのみが許可され、外部の任意のクラスが継承することができないようにする機能である シールドクラス の概要は知っていたが、そもそもどう…
Kotlinを勉強していて、気になったことのメモ 今回はwhen文の使い方について 最新のJavaではできるようになったこともあるが、ちょっと前の Java を触っていた身からすると、すごく柔軟に感じた when文 式として使い、戻り値を返すことができる val x = 2 va…
作成したKotlinプロジェクトを見ると、直下に build.gradle.kts というファイルができる これが何か調べた build.gradle.ktsとは? build.gradle.kts は、Kotlin で書かれた Gradle スクリプト 通常の build.gradle ファイルは Groovy で記述されているが、K…
Kotlinを勉強している 下の本を読んでて気になったことのメモ Kotlin サーバーサイドプログラミング実践開発作者:竹端 尚人技術評論社Amazon エルビス演算子 末尾に ?: をつけることで、Nullの場合に行う処理を定義することができる演算子 複数のエルビス演…
Kotlinの関数についてる operator がわからなかったので調べた kotlinlang.org operator はオペレータオーバーロードという機能で、独自のクラスに対して演算子の振る舞いをカスタマイズできるというもの 例えば、プログラミング言語に組み込まれている演算…
Kotlinを触ってみていて、when式というの調べてみた kotlinlang.org 基本的な書き方 when (x) { 1 -> print("x == 1") 2 -> print("x == 2") else -> { print("x is neither 1 nor 2") } } 分岐条件が満たされるまで、引数をすべての分岐と順番に照らし合わ…
以前、gRPCの更新の際に、FieldMaskを使って余計なフィールドを更新しないようにする方法を調べた uga-box.hatenablog.com 今度は、repeatedのfield、いわゆる配列の要素のサブフィールドに対してfieldMaskしたい場合はどうするか調べた 例えば、次のような …
gRPCでの更新の際、クライアントからEntity情報をサーバーに渡すが、不要なフィールドは更新しないようにしたい 例えば、以下のようなデータのemailだけ更新したい場合 { "user": { "id": "001", "name": "uga", "email": "uga@gmail.com" } } gRPCでは Prot…
gRPCのお勉強で、KotlinでgRPCチュートリアルをやってみて、わからなかったことを調べた grpc.io ソースコードをcloneしてきて、ビルドして起動してみる $ git clone --depth 1 https://github.com/grpc/grpc-kotlin $ cd grpc-kotlin/examples $ ./gradlew …