Наконец, мои первые шаги на Quarkus 🚀, как разработчика Spring-boot

Привет всем 🙋🏻♂️,

Мы только начали пробовать Quarkus 🙏.

api-transitaires был первым, пришло время сделать несколько быстрых отзывов 📢

👉 Во-первых, я знаю, что фреймворку уже 3 года (некоторые npm libs не живут так долго), но в некоторых Jкомпаниях инвестиции в создание некоторых Spring[-Boot] 🍃 разработчиков были сложными, поэтому замена должна быть ценной (или fin valab).

Почему нужно переходить со Spring-Boot?

У нас много приложений на Sping-Boot, и мы переходим на k8s в бессерверном режиме, поэтому мы провели несколько тестов с Spring-Native.

Это работало 👍, но не так гладко из-за долгой истории Spring 🏭, что привело нас к более новым альтернативам, таким как 👉 Quarkus.

Почему именно это приложение?

api-transitaires — это очень простой REST API с одной конечной точкой, который обслуживает список экспедиторов, управляющих таможенным оформлением в Нью-Каледонии 🇫🇷.

Главной целью было попробовать Quarkus в нашем GitHub CI: нативное приложение, Docker…

Итак, приступим…

1# Интеграция с IDE 📝 — плагин VSCode

Я использую VScode почти 2 года, я был рад обнаружить плагин Quarkus’а, который делает работу :

  • генерировать новый проект : как это делает SprinBoot 😉
  • запуск и отладка: хорошо, полагается на mvn, но это работает большую часть времени 🙄… иногда он выключается, не попрощавшись _(например: после добавления расширения Quarkus’а). В остальном, мне не нравится, что они предпочли использовать для этого специальное меню, а не классическое «запустить и отладить» VSCode 😒.

⭐️ Что я ценю:

  • более быстрый цикл изменения кода / тестирования из коробки 📦 : сделал изменение, переключился на браузер и изменение уже применено (я испытал цикл обновления браузера дважды с Spring-boot Devtools)

☝️ Приятно иметь :

  • автодополнение в application.properties, как это делает плагин Spring-Boot.

2# Кодирование Rest API 👨🏻💻 — стандартный способ

В то время как Spring решил сделать свои собственные аннотации (почти копия стандарта), с Quarkus мы возвращаемся к аннотациям стандарта Java. Ок, JSR не такие причудливые 🌈, но менее навязчивые 🐙.

3# Документы 📖 — самодостаточны 👍.

Нет необходимости полагаться на другие документы для выполнения базовых вещей, руководства Quarkus, на мой взгляд, лаконичны, практичны (стиль «начать работу») и хорошо ссылаются на google 🤓… Первый результат — официальный!

Меняет игру после многих лет пустых руководств по началу работы с Spring или справочной документации в стиле JavaDoc 😵💫.

👉 Я использовал :

  • Rest
  • Тест
  • Native

4# Быстро 🏃💨 — минимум включено

  • Легче & быстрее, некоторые свежие метрики из недавнего перехода с Spring-Boot (colisnc-api) :

    • время запуска: с 1s8 до 0.5s (действительно ли native нужен с Quarkus? 🤔)
    • CI native build : от 14min до 5min
    • Размер нативного образа Docker : от 40Mo до 30Mo
  • Минимум включено : это философия и мне она нравится ❤️ (даже конфигурация yaml не включена: необходимо расширение)

5# Native ⚡️ — путь проложен 🛣

  • Похоже, что он был в поваренной книге Quarkus с самого начала, а не добавлен в конце: Spring Native все еще находится в стадии экспериментов.
  • Легкий по умолчанию: некоторые базовые вещи не предоставляются по умолчанию, например, поддержка протокола SSL, но это легко сделать quarkus.ssl.native=true.

6# Мониторинг / инструментарий разработки — побочные блюда 🥗

  • меньше, чем актуатор, но достаточно, на мой взгляд: здоровье, Swagger
  • Приятно иметь онлайн web dev, который дает некоторые базовые, но полезные метрики (как это делают другие, например Symfony 😉).

Ресурсы

  • api-transitaires : первое приложение
  • colisnc-api : первая миграция с Springboot выполнена за 1h30 ⏱

📑 #jfokus2022 : Quarkus […] возвращение из будущего

adriens for opt-nc ・ Jul 12 ・ 3 min read

#quarkus #java #kubernetes #showdev

Ваше здоровье 🍻

Оцените статью
devanswers.ru
Добавить комментарий