iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0

Quarkus Dev UI

Quarkus 提供了很多工具期望提升工程師的生產力,縮短開發時間。 其中 live reload 跟今天要講的 Dev UI 是最有感的。 Dev UI 提供了開發者在開發階段視覺化的開發工具。讓你對專案的 extension 狀況一清二楚,也可以直接連結到相關的文件。也可以直接 on-the-fly 的測試新的功能。

Dev UI 初探

Configuration

執行 quarkus dev 後,就可以打開 http://localhost:8080/q/dev 看到有安裝的 extension 相關設定。那再點下各連結也可以進入相關設定。例如點進去 config editor 就可以進行 config 設定。而且修改後是可以立即生效,不需重開 dev mode . 這大大的節省了開發時間。

https://ithelp.ithome.com.tw/upload/images/20220910/20135701ZgRGOKlOnd.png

https://ithelp.ithome.com.tw/upload/images/20220910/20135701D0lTlBgdZY.png

Dev Serivce

Dev Serivce 是 Quarkus 又一個好用的服務。概念上他猜到是你需要什麼服務。例如一個 mongodb, 他會知道,很貼心的幫你在 dev mode 起起來。這個我之後再開一篇講解。

ArC CDI Status

https://ithelp.ithome.com.tw/upload/images/20220910/2013570100xRkXrLgC.png
對 spring 有點認識的朋友,看到 beans 這個 keyword 就知道發生什麼事了。 沒錯 ArC 就是 Quarkus 所使用的 dependency injection library. 跟 spring 不同的是,quarkus 的 bean 是build time binding 的。利用這個 GUI 就可以看到目前有被 CDI 管理的 beans. 有哪些 Intercepters

Resteasy Reactive Panel

微服務常常會需要開發 restful service, 在這個 panel 可以直接的看到有哪些 expose 出來的 endpoint. Execpetion 的 handler 順序,都可以一目暸然。

https://ithelp.ithome.com.tw/upload/images/20220910/20135701QrQjiqoV41.png

列出 endpoint
https://ithelp.ithome.com.tw/upload/images/20220910/20135701Hws5wKBtjW.png

觀看 console 與 test 的狀況

https://ithelp.ithome.com.tw/upload/images/20220910/20135701zoaoGWHA4U.png

Dev UI 也會即時反映開發狀況。例如去用 vi 或 nano 修改 test (Intellij 明天再來教安裝)

vi src/test/kotlin/tw/brandy/ironman/GreetingResourceTest.kt

把要 matching 字串改掉, 就會得到上面的 test fail, 改回來就又會pass,這些都是幾秒內馬上反應。

...
             .statusCode(200)
             .body(`is`("Hello from RESTEasy Reactive OOXX"))
...

更多的 Dev Panel Items

這些 dev panel 也會隨著 extension 安裝新增,例如裝了 Keycloak 就可以看 jwt token. Openshift 等等。

安裝 openshift extension 看看

https://ithelp.ithome.com.tw/upload/images/20220910/20135701U42t3tTvwF.png

 quarkus ext add OpenShift

就可以看到 Dev UI 多了 Kubernetes 與 OpenShift 相關功能。

https://ithelp.ithome.com.tw/upload/images/20220910/20135701V35A1O9uVU.png

反之我們把 OpenShift extension 移除後,重整 q/dev 後,相關的 panel item 就會消少。

 quarkus ext remove OpenShift

不要再幫我打分數!!

上面的 Resteasy endpoint 竟然只有 66 分的分數。 這裡是說我們的服務不夠 reactive 。沒關係,我們過兩天就利用 Kotlin 的魔法讓這裡變成 100 分

https://ithelp.ithome.com.tw/upload/images/20220910/20135701yhcFag6C6H.png

參考資料

Yes


上一篇
利用 Quarkus CLI 來建立第一個 Kotlin Service 吧 - Day3
下一篇
安裝 local container - Podman 與 IntelliJ in WSL 環境 - Day5
系列文
Quarkus, Kotlin, Reactive 雲原生服務開發32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言