Upgrade to Pro — share decks privately, control downloads, hide ads and more …

QuarkusによるCloudNativeなJava

 QuarkusによるCloudNativeなJava

Quarkusの概要を確認しました。
インストール、実行方法と特徴を整理しています。

Avatar for kouki.miura

kouki.miura

July 15, 2024
Tweet

More Decks by kouki.miura

Other Decks in Programming

Transcript

  1. クラウドネイティブ JAVAフレームワーク ”Quarkus” 概要 三浦 恒樹 (MIURA KOUKI) Health Information

    Manager - 診療情報管理士 Senior Medical Information Technician - 上級医療情報技師 Medical Imaging Information Specialist - 医用画像情報専門技師 ドゥウェル株式会社 2024.07.13 JavaDO Quarkus Overview - Cloud Native JAVA Toolkit - DOWELL Co., Ltd
  2. 長男が飼っている ハリネズミがアイコン INTRODUCE ・ドゥウェル株式会社 (医療系IT開発・導入会社)に所属 ・マネージャー(プレイングマネージャー) ・仕事では Java(Linux) or C#(WindowsServer)

    + JavaScript ・趣味では PHP + JavaScript ・3児の父 ・札幌PHP勉強会、JBUG札幌、JavaDO、ゆるWeb勉強会 に参加 DOWELL Co., Ltd Medical IT System Development My job is team management and I also do programming The PHP & JavaScript is my hobby programming. I have 3 sons Iʼm joining in these communities, - Sapporo PHP Study group - Japan Backlog User Group in Sapporo(Backlog is Japanese project management tool) - Java User Group in Hokkaido(JavaDO)  - Yuru-WEB(Easy-WEB) Study group I use My sonʼs hedgehog
  3. インストール( Windows(WSL)) ・JBANGでQuarkusをインストール >> /home/(ユーザー名)/.jbang/bin/quarkus ・JBANG実行bashスクリプト(https://sh.jbang.dev) ・JBANGがインストールされていなければ jbang.tar取得・展開 ・JDKがインストールされていなければ JDK(latest)を取得 ・JavaでJBANGを実行する

    ・JBANGの処理 ①trustコマンド Manage which domains you trust to run scripts from. ②appコマンド Manage scripts installed on the user's PATH as commands. https://ja.quarkus.io/get-started/ curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/ curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio Install Quarkus
  4. 開発者満足 - Dev UI - Extensions ・Extensions = 開発者向けの新しい動作 (依存関係)を追加する

     ・フレームワーク設定、起動、 GraalVM設定等を行う  ・テンプレートプロジェクトでは6つが有効な状態   ・ArC - Build time CDI dependency Injection   ・REST - Vert.xレイヤーで動作するJakarta REST実装   ・Eclipse Vert.x - リアクティブアプリ構築ツールキット   ・Mutiny - リアクティブプログラミングライブラリ   ・SmallRye Context Propagation - リアクティブ/非同期のコンテキスト伝搬   ・JSON-P - JSON Processing Support  ・702Extensions(7/13時点)
  5. 開発者満足 - Dev UI - Dev Services ・Dev Services =

    Extension向けの開発スタブをTestcontainersで生成する  ・例:JDBC Driver - PostgreSQLをインストール、接続情報未指定だと     PostgreSQLスタブのコンテナに自動接続してアプリが動作する
  6. 余談 JBANGとは ・セットアップなしで、すぐにJavaを学習・実行できる ・「.java ファイルを直接実行するJava 11 以降の   サポートは、少し面倒だと感じませんか?」(GitHub READMEより) https://www.jbang.dev/ //

    SOURCES Name.java void main() { System.out.println("Hello JBang!"); Name name = new Name(); System.out.println("Hello " + name.getName()); } Hello.java $ jbang --enable-preview Hello.java [jbang] Building jar for Hello.java… Note: /mnt/c/Files/java/quarkus/Hello.java uses preview features of Java SE 21. Note: Recompile with -Xlint:preview for details. Hello JBang! Hello Kouki Miura