Desenvolvendo aplicações Java com o VS Code
- #Java
Desenvolvendo aplicações Java usando o VS Code
Você que está iniciando na programação em Java, possivelmente já ouviu falar em vários ambientes de desenvolvimento (IDEs), certo?
Aqui falaremos sobre uma otima alternativa de IDE leve, robusta e veloz, chamada VS Code.
O VS Code é um editor de código-fonte autônomo e multiplataforma, que pode ser utilizado no Windows, macOS e Linux. O grande diferencial desse editor é que além de ter o conceito “lightweight”, ou seja, de ser um ambiente leve em comparação a outras IDEs, ele também é altamente customizável, com centenas de extensões existentes para serem utilizadas.
Nesse artigo, vamos mostrar as principais funcionalidades e dicas para que você consiga iniciar o desenvolvimento de uma aplicação Java utilizando o VS Code.
Instalação
Se o seu sistema operacional é Windows ou o macOS, o VS Code já tem um pacote de instalação que vai prover os principais recursos para o setup inicial do ambiente, que é o Coding Pack for Java. Nesse pacote de instalação já estão incluídos os seguintes itens:
- JDK (Java Development Kit - pode variar a versão, de acordo com a data que você fizer o download, mas geralmente é uma versão LTS, ou seja, com suporte de longo prazo. No momento da publicação desse artigo a versão é a 19);
- VS Code
- Extensões essenciais Java (ou Java Extension Pack)
Caso você esteja utilizando o Linux, será necessário fazer o download e instalação separadamente desses três itens.
O que são essas extensões essenciais Java?
O Java Extension Pack é um pacote que contempla seis extensões essenciais para facilitar o desenvolvimento, build, debug e teste de aplicações Java. São essas:
- Language Support for Java:
Essa extensao é fornecida pela própria Red Hat e é responsável por diversos recursos que otimizam o desenvolvimento, como: code completion, as-you-type reporting (que já detecta e destaca erros de sintaxe e compilação no momento da digitação), organização dos imports, ações de código (como gerar getters e setters, construtores, toString), trechos de códigos prontos (code snippets), suporte a arquivos individuais com extensão .java, para que sejam executados no próprio terminal do VS Code e muitos outros recursos já conhecidos por quem já utiliza outras IDEs.
- Debugger for Java
É uma extensão da Microsoft que vai permitir que você faça a depuração do código, incluindo breakpoints (pontos de interrupção) para avaliar valores de variáveis e o que está acontecendo na aplicação, tendo a possibilidade de fazer substituições ‘a quente’ no código (hot code replaces). Tem recursos de step in/out/over para navegar nos métodos, pausa e continue, além de outras facilidades que ajudam na investigação de problemas e comportamentos inesperados na aplicação.
- Test Runner for Java:
Essa extensao, também da Microsoft, possibilita a depuração e execução de casos de teste escritos em Java, com uso dos frameworks JUnit ou TestNG. Essa extensão tem como pré-requisito a instalação das duas primeiras citadas.
- Maven for Java:
A extensão do Maven fornece suporte para criação de projetos seguindo algum arquétipo do Maven, bem como atalhos para inclusão e controle das dependências no POM (Project Object Model) além da customização de comandos.
- Project Manager for Java:
Essa extensão atua como um gerenciado de projetos, oferecendo algumas facilidades no que tange à visualização das principais configurações e estrutura do projeto aberto no VS Code.
- Visual Studio IntelliCode:
Por fim, a extensão Intellicode que é uma espécie de intellisense assistido, que já coloca como atalho no topo da lista do code completion, os comandos que tem mais possibilidades de serem utilizados, conforme o exemplo abaixo, onde após a digitação das palavras System.out ele já sugere os comandos mais usados, como println, printf e assim sucessivamente:
Como desenvolver com o VsCode ?
Para executar a maioria dos comandos, utilizamos o atalho Ctrl + Shift + P ou pelo menu View → Command Palette. O nome do menu pode mudar caso esteja sendo usado em outro idioma. Aqui vamos manter as dicas utilizando o inglês por padrão.
Para iniciar um novo projeto Java, vamos abrir a paleta de comando e escolher a opção Java: Create Java Project.
Repare que ele já abre uma nova tela com várias opções de projeto Java. O VS Code tem extensão para facilitar a criação com qualquer que seja a opção escolhida: Maven, Gradle, Spring Boot, Quarkus ou MicroProfile.
Vamos escolher a opção “No build tools” apenas para ver algumas opções básicas do VS Code.
Deverá ser informada a pasta na qual o projeto será gerado e o nome do mesmo. Ao prosseguir, já será criada uma estrutura de pacotes, com as pastas .vscode (que contém o arquivo settings.json), a pasta bin (que vai conter os arquivos com a extensão .class), a pasta lib (onde ficam os recursos ou bibliotecas utilizadas na aplicação) e a pasta src (onde fica o código-fonte, no nosso caso, as classes).
Já é criada a primeira classe, a App.java, com o método main e o nosso famoso Hello, World!.
Para criar uma nova classe, podemos utilizar novamente a paleta de comandos e buscar a opção Java: New Java Class. Vou dar o nome Artigo para prosseguir com a criação da classe Artigo.java.
Vamos incluir alguns atributos e usar os recursos da IDE para finalizar as implementações dos getters, setters, construtores e toString.
Veja que aqui na imagem a seguir, após a inclusão de alguns atributos, alguns já aparecem em vermelho.
Veja também que para o tipo LocalDate já foi feito o import automático na linha um, indicando o nome completo (pacote + classe), que é java.time.LocalDate.
Para os tipos que estão sublinhados de vermelho, ao clicar no ícone da lâmpada ou clicar com o botão direito no ter, ou ainda, usar o atalho Ctrl + . , ele já faz algumas sugestões, sobre criar uma nova classe, interface, enum ou até mesmo usar como referência a classe Category do pacote java.util.Locale, conforme a imagem abaixo:
Poderíamos escolher criar um enum para Categoria e uma nova classe para Autor e continuar codificando nossa aplicação. Uma vez conhecidos os tipos, ele passa a apresentar um sublinhado amarelo, indicando que o valor do nosso atributo não está sendo usado em lugar nenhum.
Para isso, vamos usar os atalhos do editor para criar automaticamente os getters e setters. Para isso, basta clicar com o botão direito na janela do editor, onde está aberta a sua classe e navegar até a opção Source Action.
Algumas opções vão aparecer, como a de gerar testes, organizar os imports (incluindo referências ou removendo referências não utilizadas), gerar somente os getters, somente os setters, gerar ambos simultaneamente, construtores, e outras opções, como demonstrado na imagem.
Vamos gerar primeiramente os getters e setters:
É possível escolher todos ou somente alguns atributos. Ao escolher todos, podemos observar que ele já vai criar corretamente os métodos de forma automática.
Podemos fazer o mesmo procedimento para criar um construtor com todos os atributos e também um override do método toString.
Clicar com o botão direito na janela >> Source Action >> Generate Constructors…
A mesma coisa para o toString. Botão direito na janela >> Source Action >> Generate toString()...