タケハタのブログ

プログラマの生き方、働き方、技術について雑多に書いていくブログです。

Spring WebFluxとKotlin CoroutinesでJDBCを実行した時の挙動

よくSpring WebFluxでのリアクティブプログラミングや、Kotlin Coroutinesの話で、「JDBCの処理を呼ぶとブロッキングなので意味が・・・」という話がでてきます。
が、実際に動かしてどういう挙動になるのか、なにが問題なのかを説明しているものがあまりないのでまとめてみました。

Spring WebFluxとKotlin Coroutinesを使い、ノンブロッキングとブロッキングの処理を呼んだ時の違いや、それをJDBCの処理に置き換えた時の挙動などをスレッドの動きを見ながら解説します。

※ Spring WebFluxやORMなど各技術スタックの使い方の説明は割愛しています

続きを読む

KotlessでKotlinのアプリケーションをAWS Lambdaにデプロイする

ちょっと個人で作ろうとしてるアプリケーションでLambdaを使おうとしていて、せっかくなのでKotlessで作ってみようと思っています。
そこで一旦導入してみたので、まとめておきます。

Kotlessとは

JetBrains社純正のKotlinのサーバーレスフレームワークです。

site.kotless.io

最新のリリースバージョンが0.1.6(0.1.7はbeta)なのでまだまだ開発中のものですが、KotlinConfやオンラインイベントでも紹介されていて、バックエンドで注目の技術スタックの一つです。
ざっくり言うと、Kotlinで書いたプログラムをGradleタスクでAWS Lambdaにデプロイしたりできるものです。

続きを読む

GradleのマルチプロジェクトによるKotlin、Spring Bootでのオニオンアーキテクチャの実現

4月に発売した書籍「Kotlin サーバーサイドプログラミング実践開発」なのですが、この中で途中まで作っていてボツネタにした内容がありました。

gihyo.jp

それが「Gradleのマルチプロジェクトでオニオンアーキテクチャを実現する」というものです。
第2部で作成していたbook-managerというアプリケーションは、もともとこれを使って作成していましたが、途中でやめて現在の形になりました。

続きを読む

知識のポートフォリオの管理は金融のポートフォリオの管理とよく似ている(達人プログラマーより)

半年前くらいに達人プログラマーの第2版が出ていたので、復習も兼ねて久しぶりに読んでいます。

www.ohmsha.co.jp

その中で以下のような内容がありました。

プログラマーが持っているコンピューティング関連の知識や、仕事の業務知識、あらゆる経験は「知識ポートフォリオ」として考えるのがよいでしょう。知識ポートフォリオの管理は金融ポートフォリオの管理とよく似ています。

-- デイビット・トーマス,アンドリュー・ハント. 達人プログラマー 熟達に向けたあなたの旅 第2版 (Japanese Edition) より

昔読んだ時はあまりピンと来ていなかったし、正直記憶に残ってなかった言葉でした。
しかし最近投資とかを初めて、このポートフォリオの作り方なんかも勉強したりしたので、すごくしっくり来るようになりました。
そしていい考え方だし、大事なことだなと思ったので簡単にまとめてみます。

続きを読む

書籍『Kotlin サーバーサイドプログラミング実践開発』のこだわりとオススメポイント

書籍『Kotlin サーバーサイドプログラミング実践開発』を発売しました!

去る2021年4月、技術評論社様より書籍『Kotlin サーバーサイドプログラミング実践開発』を発売させていただきました!

gihyo.jp

そこで簡単にこの書籍の内容のこだわり、おすすめポイントをご紹介しようと思います。

続きを読む

参加者視点から見たKotlin愛好会の良さ

Swift/Kotlin愛好会 Advent Calendar 202022日目の記事です。
(ちょっと遅れました)

Kotlin愛好会には初回からよく参加していて、もう2年半くらいになります。
たまに談義枠でも参加したり、技術書典で執筆したり、当時いた会社で会場提供という形で開催したこともあり馴染みのあるコミュニティです。

続きを読む

Spring BootとKtorの実装比較(初級編)

Kotlin Advent Calendar 2020 1日目の記事です。

サーバーサイドKotlinで使われるフレームワークとして、Spring BootとKtorはよく挙げられます。
Spring BootがJavaの流れを組んで主流で、新鋭の軽量なフレームワークとしてKtorがあるというイメージだと思います。

今回は本当に基本的な部分ですが、この2つのフレームワークの実装方法を並べて比較してみたいと思います。

続きを読む