4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事はラクスパートナーズ Advent Calendar 2024の1日目の記事です。


久しくJavaを書いていないのですが、Java21で仮想スレッドやパターンマッチが入ったしそろそろキャッチアップしたいな。という事もありせっかくなのでQuarkus触りながらJavaのリハビリ始めました。

なぜQuarkusかというと、ずっと前に買った↓の本に「開発体験がとてもイケてる」と書いてあったから。

具体的にはJavascriptなどインタプリタ言語のように変更を自動的にビルドし、デプロイまでを自動化する。エンジニアが一番多く行う動作確認のステップを減らし、試行を素早くできるということのようです。

ここではサンプルコードを動かして、変更やアップデートを見ていきたいと思います。

QuarkusがどういうものかはQiitaのQuarkusタグを検索してください。ここにはKubernetesもGraalVMもリアクティブアーキテクチャも出てきません。

最初のプロジェクト

Quarkusを始めるにはmavenやgradleの設定を自分で書いてビルドする。それ以外にもCLIや、Spring InitializrのようにGUIで必要な依存を選んで初期プロジェクトを作ってくれるcode.quarkus.ioも用意されています。
開発体験的にもちろん各種IDE用のプラグインが用意されています!

ここで利用するのはIntelliJ IDEA Ultimate。

ということで、ポチ(New Project)

スクリーンショット 2024-11-28 9.34.58.jpg

ポチ(左のQuarkus選んでNext)

スクリーンショット 2024-11-28 9.35.22.jpg

ポチ(RESTにチェック入れてCreate。バージョンはわざと古いので)

スクリーンショット 2024-11-28 9.35.41.jpg

ポチ「Ctrl + R」(Mac)

スクリーンショット 2024-11-28 9.40.37.jpg

サンプルコードのビルドが行われ、開発用のサーバが立ち上がります。最後まで処理完了したら、開発サーバへのURLが記載されているのでアクセス。サンプルコードの動作が確認できました!

スクリーンショット 2024-11-28 9.41.21.jpg

開いたページのResource Endpointsを見ると、サンプルコードに用意されたエンドポイント/helloがあります。クリックすればエンドポイントを確認できます。

スクリーンショット 2024-11-28 9.41.38.jpg

このリンククリックで確認できるのは、パラメータクエリなしのGETだけなのかな?そこまで機能はなさそうですね。

サンプルコードを変更する

用意されたエンドポイントの返りを変更します。

スクリーンショット 2024-11-28 9.46.38.jpg

サーバのビルドやデプロイなどせず、もう一度エンドポイントを開きます。変更が確認できました!

スクリーンショット 2024-11-28 9.46.55.jpg

プロジェクトが大きくなればビルドも時間かかるようになりそうですが、いちいちビルドして開発サーバ立ち上げてなど必要ないのは良さそうです。

Dev UI

QuarkusにはDev UIなるものが用意されています。↓の画像でRunのツールウィンドウの四角で囲ったボタンをクリックすれば開きます。

スクリーンショット 2024-11-28 10.05.18.jpg

依存関係を図で表示してくれたり、設定の確認、変更ができたりといろいろ便利そうです。
ここでは試しに設定を変更してみます。quarkus.analytics.timeoutを3000 -> 1000に変更します。

スクリーンショット 2024-11-28 10.07.30.jpg

src/main/resources/application.propertiesを確認すると設定が追加されています。

スクリーンショット 2024-11-28 10.08.29.jpg

正直この画面から設定を変えられる必要は感じないのですが、どんな設定があってデフォルト値はなんだとドキュメント漁る必要ないのはいいですね。

依存ライブラリの追加

続いて、依存関係を追加しましょう。build.gradledependenciesのところに⚙️があるのでクリックします。

スクリーンショット 2024-11-28 10.09.06.jpg

プロジェクト作成時と同じように、一般的なライブラリの一覧が表示されポチポチ選ぶだけです。説明やサイトへのリンクもあります。

スクリーンショット 2024-11-28 10.09.25.jpg

バージョンアップ

フレームワークのバージョンアップの仕組み(gradleの場合はquarkusUpdate)も用意されています。

スクリーンショット 2024-11-28 10.12.10.jpg

ポチっとタスクを実行するだけで、バージョン上がりました!

スクリーンショット 2024-11-28 10.16.09.jpg

何が変更されたかわからないので確認していませんが、変更が必要なライブラリやコードも修正されるはず。

終わり

触りだけ見ました。ちゃんと動くものがポチポチで作れるのは楽です。GUIで依存関係とかオブジェクトの関係が見られるようなので、プロジェクト途中から合流した場合のキャッチアップにも役立ちそうです。
プラグインのドキュメントを読むとDBなどの設定もGUIでポチポチできるみたい。

動くベースは数分で動作確認までできたので、あとは仮装スレッドとリアクティブの組み合わせで遊んだり、ネイティブビルドとの違いを見たりしていきたいと思います!


IntelliJを含めJetBrainsの製品は来年1月に価格改定が行われるため、購入を考えている方は急いでください。

自分はサムライズムさんで購入しています。サムライズムさんの価格表と、新規購入者向けの割引リンクを置いておきます。

記事中でも使用していたIntelliJ内でブラウザを開くプラグインTamaCatもこちらの製品です。普段使うことないけど、こういう時に便利。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?