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

> 8 de março de 2023 · https://eldermoraes.dev/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:

https://www.youtube.com/watch?v=vwsfBKJenvw

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](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).

3. Crie seu projeto usando o [https://code.quarkus.io](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)
        
        3. Informe o Artifact (nome da aplicação)
        
        5. 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.

5. 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
        
        3. 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.

7. 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;
        
        3. Interagir com algumas das extensões (aquelas que permitem isso);
        
        5. Ver o status de execução dos testes
        
        7. Inclusive, se você estiver usando a extensão do Kafka, você consegue visualizar e interagir com tópicos, registros, consumer groups e muito mais.

9. 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;
        
        3. Já vem também no projeto a estrutura inicial de testes unitários;
        
        5. Dependendo as extensões que você adicionou no seu projeto, ele já virá também com algumas classes criadas (ex: JAX-RS, Health, RestClient);
        
        7. No arquivo application.properties (dentro da pasta resources) é onde é feita toda a qualquer configuração de extensões do Quarkus. 

11. 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!
