Hi everyone 🙋🏻♂️,
api-transitaires was the first, it's time to do some quick feedback now 📢
👉 First, I know that it's already a 3 years old framework (some
npm libs don't live that long), but in some
JCompanies the investissement to set up some Spring[-Boot] 🍃 developers has been challenging, so the replacement has to be valuable (or fin valab)
We have a lot of Sping-Boot apps and we are going forward to k8s in serverless way, so we did some tests with Spring-Native.
It worked 👍, but not so smoothly because of Spring's long history 🏭 which led us to more recent alternatives like 👉 Quarkus.
api-transitaires it's a very basic one-endpoint REST API that serves the list of freight forwarders that manage customs clearance on New-Caledonia 🇫🇷.
The main goal was to try Quarkus in a end to end way, in our GitHub CI : native app, Docker..
Ok, let's go now..
I used since almost 2 years VScode, I was happy to discover a Quarkus's plugin who does the job :
- generate new project : like SprinBoot does 😉
- launch and debug : ok, relies to
mvnbut it works most of the time 🙄.. sometimes it switched off without saying goodbye _(ex: after adding a Quarkus's extension). Otherwise, I don't like that they preferred to use a specific menu for that rather than VSCode's classic "run and debug" 😒
⭐️ What I appreciate :
- faster code change / test cycle out-of-the box 📦 : do the change, switch to browser and the change is already applied (I experienced a refresh the browser twice cycle with Spring-boot Devtools)
☝️ Nice to have :
- autocompletion on
application.propertiesas Spring-Boot's plugin does
While Spring has chosen to make its own annotations (almost a copy of the standard), with Quarkus we go back to the Java standard's ones. Ok, JSR's are not so fancy 🌈, but less intrusive 🐙.
No need to rely on other documentations to do basic things, Quarkus's guides are in my opinion succinct, practical (getting started style) and well referenced from google 🤓.. 1st result is the official one !
👉 I used :
Lighter & faster, some fresh metrics from a recent migration from Spring-Boot (colisnc-api) :
Minimum included : it's a philosophy and I like it ❤️ (even the
yamlconfiguration is not included : an extension is needed)
- It seems that it's was on the Quarkus cookbook since the beginning, not added at the end : Spring Native is still in experimentation.
- Light by default : some basic things are not provided by default like SSL protocol support, but it's easy to do
- less than actuator, but enough in my mind : health, Swagger
- Nice to have online web dev that gives some basic but useful metrics (as others do since a while, like Symfony 😉)