Aprendendo Quarkus: O guia definitivo para devs backend Java (seu primeiro projeto no ar ainda hoje)

Como é que eu aprendo Quarkus? Por onde eu começo?

Já manjo de Jakarta EE, de Spring, de Kotlin… consigo usar o Quarkus? Ou vou ter que aprender tudo do zero?

Se esse é o tipo de dúvidas que já passou pela sua cabeça quando o assunto é começar no mundo Quarkus, esse é o post que você estava procurando!

Aliás, eu gravei um vídeo sobre o mesmo assunto, e você pode assistí-lo abaixo:

Aqui eu vou te dar 6 passos simples, rápidos e direto ao ponto para você começar a aprender Quarkus ainda hoje. Vamos lá?

  1. Comece pelo que você já sabe
    • Como assim? Eu vou aprender algo começando pelo que eu já sei?
    • Sim, essa é uma das belezas do Quarkus!
    • Por ser uma plataforma, e não um framework, tem uma coisa fantástica nele, que são as extensões;
    • E o que são as extensões no Quarkus? Elas funcionam como que dependências do seu projeto. Servem para configurar, integrar e fazer o start de tecnologias e frameworks dentro da sua aplicação;
    • Vamos ver isso na prática? Vá lá em https://code.quarkus.io;
      • No campo de pesquisa, você pode brincar com nomes de projetos opensource que você conheça e/ou, melhor ainda, que já use. Exemplos:
        • Smallrye (implementação do MicroProfile)
        • Spring
        • Camel
        • Google
        • Azure
        • Alexa
        • Hibernate
    • Ou seja, começar pelo que já sabe é você iniciar a sua jornada no Quarkus em coisas que já são super familiares para você;
    • Dependendo da situação, a sua curva de aprendizado por ser próxima de zero (a minha foi).
  2. Crie seu projeto usando o https://code.quarkus.io
    • Já vimos esse site no item anterior, e agora vamos falar um pouco mais sobre ele;
    • É aqui onde você vai criar o seu primeiro projeto utilizando Quarkus. E fazer isso é mega simples:
      1. Informe o Group (aquele mesmo group que você informa em um projeto Maven)
      2. Informe o Artifact (nome da aplicação)
      3. Mantenha o Maven selecionado (ou altere para Gradle, se for o caso)
    • Daí você vai selecionar as extensões que deseja para o seu projeto (falamos mais sobre isso no item anterior)
    • Feito isso, é só clicar em “Generate your application” e baixar o arquivo .zip com a estrutura inicial do seu projeto.
  3. Execute a sua aplicação usando o Developer Mode (é aqui que sua experiência com o Quarkus vai para outro nível)
    • Se você já baixou e descompactou o arquivo da sua aplicação, basta entrar na pasta (usando o Terminal) e digitar: mvn quarkus dev
    • Finalizada o processo, terá acontecido duas coisas:
      1. A sua aplicação estará em execução
      2. Você estará usando o Developer Mode do Quarkus, que é uma de suas ferramentas mais fantásticas
    • O Developer Mode é a principal ferramenta do Quarkus quando o assunto é experiência de usuário (e, no caso, o usuário é você!)
    • A partir de agora, ele vai monitorar toda e qualquer mudança no seu projeto, e vai aplicar essas mudanças em tempo real;
    • Ou seja: esqueça esse lance de ficar reiniciando o servidor de aplicação do seu ambiente de desenvolvimento cada vez que quiser testar uma linha de código: o Developer Mode faz isso pra você;
    • E, melhor ainda: ele faz isso muito rápido. Um restart da aplicação no Developer Mode leva alguns centésimos de segundo;
    • A sua aplicação estará disponível por default na porta 8080. Basta usar um browser para acessá-la e ver se está funcionando.
  4. Saiba tudo sobre a sua aplicação usando o Dev UI
    • O Dev UI te dá uma visão geral (e gráfica) sobre a sua aplicação. Nele você pode:
      1. Visualizar todas as extensões que estão disponíveis no seu projeto;
      2. Interagir com algumas das extensões (aquelas que permitem isso);
      3. Ver o status de execução dos testes
      4. Inclusive, se você estiver usando a extensão do Kafka, você consegue visualizar e interagir com tópicos, registros, consumer groups e muito mais.
  5. Entenda a estrutura do seu projeto
    • Agora chegou a hora de abrir o seu projeto na sua IDE favorita. Eu recomendo fortemente o VS Code ou IntelliJ, porque ambas possuem plugins específicos do Quarkus que vão ajudar muito a sua vida;
    • Uma vez aberto, você perceberá que é um projeto Java comum, mas aqui vão algumas coisas que eu gostaria de destacar:
      1. Ele já vem com dois Dockerfiles prontos, um para usar com imagem nativa e outro para JVM. Salvo raras exceções, você consegue usar esses Dockerfiles para gerar suas imagens de containers sem alterar nada;
      2. Já vem também no projeto a estrutura inicial de testes unitários;
      3. Dependendo as extensões que você adicionou no seu projeto, ele já virá também com algumas classes criadas (ex: JAX-RS, Health, RestClient);
      4. No arquivo application.properties (dentro da pasta resources) é onde é feita toda a qualquer configuração de extensões do Quarkus. 
  6. Empacote a sua aplicação para deploy
    • Inicialmente há duas opções de empacotemento: JVM e nativo
    • Para JVM, vá no terminal e, dentro na pasta do projeto, digite: mvn clean package
    • Para nativo, digite: mvn clean package -Pnative
    • Há extensões espefícas que permite o empacotamento para uma imagem de container, ou mesmo o deploy direto para o Kubernetes. Mas isso já é assunto para outra ocasião!

Viu só? Começar no mundo do Quarkus não é nenhum bicho de 7 cabeças… muito pelo contrário! Se você quiser, consegue rodar seu primeiro projeto ainda hoje.

Aliás, me diz aí nos comentários se você já fez alguma coisa com o Quarkus. Quero muito saber!

Um grande abraço, até a próxima e tchau!