quarta-feira, 1 de março de 2023

SDK Man!!!



O SDKMAN é uma ferramenta de gerenciamento de software para desenvolvedores Java que permite a instalação e gerenciamento de múltiplas versões de diversas ferramentas, como o Java, o Groovy, o Gradle e o Maven. Neste artigo, vamos explorar o uso do SDKMAN com o Java e como ele pode facilitar o desenvolvimento de aplicações em Java.

O SDKMAN é uma ferramenta de linha de comando que permite instalar e gerenciar diversas versões de diversas ferramentas, incluindo o Java. Com o SDKMAN, você pode instalar e gerenciar múltiplas versões do JDK (Java Development Kit) e do JRE (Java Runtime Environment) em um único ambiente.

Para começar a utilizar o SDKMAN com o Java, você precisa instalá-lo em seu sistema operacional. O processo de instalação é simples e pode ser realizado em poucos minutos. Após a instalação, você pode usar o comando sdk para listar as ferramentas disponíveis para instalação e gerenciamento.

Para instalar uma nova versão do JDK, basta utilizar o comando sdk install java. O SDKMAN exibirá uma lista das versões disponíveis do JDK e você poderá selecionar a que deseja instalar. Após a instalação, você pode definir a versão do JDK que deseja utilizar em um determinado projeto utilizando o comando sdk use java <versão>.

Uma das principais vantagens do SDKMAN é a sua capacidade de gerenciar múltiplas versões do JDK e do JRE em um único ambiente. Isso é especialmente útil para desenvolvedores que trabalham em projetos que exigem diferentes versões do Java. Com o SDKMAN, você pode facilmente alternar entre as versões do Java que precisa utilizar em seus projetos.

Além disso, o SDKMAN também permite a instalação e gerenciamento de outras ferramentas Java, como o Groovy, o Gradle e o Maven. Isso torna o processo de desenvolvimento ainda mais rápido e eficiente, pois você pode instalar e gerenciar todas as ferramentas necessárias em um único ambiente.

Outra vantagem do SDKMAN é que ele é compatível com diferentes sistemas operacionais, incluindo o Linux, o macOS e o Windows. Isso permite que desenvolvedores Java em diferentes plataformas utilizem a mesma ferramenta de gerenciamento de software.

No entanto, é importante lembrar que o SDKMAN não é uma ferramenta oficial da Oracle e que o uso de versões do JDK e do JRE instaladas através do SDKMAN pode afetar a compatibilidade com outras ferramentas e bibliotecas Java.

Em resumo, o SDKMAN é uma ferramenta de gerenciamento de software poderosa e flexível para desenvolvedores Java. Com o SDKMAN, você pode facilmente instalar e gerenciar múltiplas versões do JDK e do JRE em um único ambiente, além de outras ferramentas Java como o Groovy, o Gradle e o Maven. Seu uso pode acelerar o processo de desenvolvimento e torná-lo mais eficiente, permitindo que você se concentre na lógica do negócio em vez de se preocupar com a configuração e instalação de ferramentas e bibliotecas.

Mais informações em https://sdkman.io/

Projeto Lombok


Lombok é uma biblioteca Java que ajuda a reduzir a quantidade de código boilerplate que é necessário escrever em Java. A biblioteca inclui anotações que podem ser usadas em classes Java para gerar automaticamente o código comumente usado, como getters, setters, construtores e muito mais. Neste artigo, vamos explorar como o Lombok pode ser usado com o Spring Boot e outras aplicações Java.

Configurando o Lombok com o Spring Boot

Para usar o Lombok com o Spring Boot, você precisa incluir a dependência do Lombok no seu projeto. Você pode fazer isso adicionando a seguinte dependência ao seu arquivo pom.xml ou build.gradle:

<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>provided</scope> </dependency>

Após adicionar a dependência, você precisa configurar o plugin do Lombok no seu ambiente de desenvolvimento. Isso pode ser feito adicionando o plugin do Lombok ao seu IDE, como Eclipse, IntelliJ IDEA ou NetBeans. Para fazer isso, você pode seguir as instruções detalhadas no site oficial do Lombok.

Usando o Lombok com o Spring Boot

O Lombok é amplamente utilizado em projetos Java e é compatível com a maioria dos frameworks e ferramentas Java, incluindo o Spring Boot. Com o Lombok, você pode reduzir drasticamente a quantidade de código necessário para criar uma classe Java. Em vez de criar métodos getters e setters para cada atributo de uma classe, por exemplo, você pode simplesmente adicionar a anotação @Getter e @Setter acima da definição do atributo e deixar o Lombok gerar automaticamente os métodos correspondentes.

No Spring Boot, o Lombok pode ser utilizado em conjunto com outras anotações, como @RestController e @Autowired. Isso torna o processo de desenvolvimento mais rápido e eficiente, pois você pode se concentrar na lógica do negócio em vez de se preocupar com a criação de métodos getters e setters.

Outra vantagem do Lombok é que ele pode ser facilmente integrado a outras ferramentas Java, como o Eclipse e o IntelliJ IDEA. Isso permite que você use a funcionalidade do Lombok diretamente na sua IDE, tornando o processo de desenvolvimento ainda mais rápido e eficiente.

Além disso, o Lombok também oferece outras anotações úteis, como @Builder e @Slf4j. A anotação @Builder permite que você crie objetos de maneira mais fácil e legível, enquanto a anotação @Slf4j simplifica o uso do framework de logging SLF4J.

Uma vez configurado o Lombok, você pode começar a usá-lo em suas classes Java. Aqui estão alguns exemplos de como usar as anotações do Lombok com o Spring Boot:

@Getter e @Setter

A anotação @Getter gera automaticamente os getters para todos os campos da classe, enquanto a anotação @Setter gera automaticamente os setters. Com o Lombok, você não precisa escrever esses métodos manualmente, o que economiza tempo e torna seu código mais limpo. Por exemplo:

@Data public class Pessoa { private String nome; private int idade; }

Com a anotação @Data, o Lombok gera automaticamente os getters e setters para os campos nome e idade.

@NoArgsConstructor e @AllArgsConstructor

A anotação @NoArgsConstructor gera automaticamente um construtor sem argumentos, enquanto a anotação @AllArgsConstructor gera automaticamente um construtor com todos os argumentos. Isso é especialmente útil quando você tem muitos campos em sua classe e não quer escrever um construtor manualmente. Por exemplo:

@Data @NoArgsConstructor @AllArgsConstructor public class Pessoa { private String nome; private int idade; }

Com a anotação @NoArgsConstructor, o Lombok gera automaticamente um construtor sem argumentos. Com a anotação @AllArgsConstructor, o Lombok gera automaticamente um construtor com todos os argumentos.

@Builder

A anotação @Builder gera automaticamente um construtor com padrão Builder. Isso permite que você crie objetos de maneira mais legível e fácil. Por exemplo:

@Data @Builder public class Pessoa { private String nome; private int idade; }

Com a anotação @Builder, você pode criar objetos dessa classe usando a sintaxe Builder. Por exemplo:

Pessoa pessoa = Pessoa.builder() .nome("João") .idade(25) .build();

Porém, é importante lembrar que o uso do Lombok pode afetar a legibilidade do seu código. Alguns desenvolvedores argumentam que o uso de anotações Lombok pode obscurecer o código, tornando-o mais difícil de entender e manter no futuro. Por isso, é importante utilizar o Lombok com moderação e sempre buscar um equilíbrio entre a simplicidade e a legibilidade do código.

Em resumo, o Lombok é uma ferramenta poderosa que pode facilitar o desenvolvimento de aplicações em Java. Seu uso em conjunto com o Spring Boot e outras ferramentas Java pode acelerar o processo de desenvolvimento e reduzir a quantidade de código necessário para criar uma classe Java. No entanto, é importante utilizar o Lombok com moderação e sempre considerar a legibilidade do código.



Spring Boot - Revolução no desenvolvimento com Java



Spring Boot é um dos frameworks mais populares para desenvolvimento de aplicativos Java. Criado pela Pivotal Software, o Spring Boot permite que os desenvolvedores construam aplicativos Java de maneira rápida e fácil, fornecendo um ambiente de desenvolvimento robusto e consistente.

O Spring Boot vem com várias características que o tornam uma excelente escolha para o desenvolvimento de aplicativos Java, desde a configuração automática até a detecção e resolução automática de dependências. Isso torna o Spring Boot fácil de usar, especialmente para desenvolvedores que estão começando.

Entre as principais vantagens do Spring Boot, destacam-se a facilidade de configuração, a simplicidade no uso, o suporte integrado para ferramentas como o Maven, o Gradle e o Eclipse, além de possuir uma grande comunidade de desenvolvedores ativa e engajada.

Uma das principais características do Spring Boot é a configuração automática. O Spring Boot analisa a classe principal do aplicativo e configura automaticamente várias partes do aplicativo, incluindo o contêiner de servlet, o pool de conexões de banco de dados e muitas outras configurações. Isso reduz significativamente o tempo de configuração necessário para iniciar um novo projeto.

O Spring Boot também é projetado para ser simples de usar. Ele oferece um modelo de programação baseado em convenções que permite que os desenvolvedores construam aplicativos rapidamente, sem a necessidade de escrever muito código. O Spring Boot também possui uma ampla documentação e exemplos de código que facilitam o aprendizado.

Outra vantagem do Spring Boot é o suporte integrado para ferramentas de desenvolvimento. Ele é compatível com o Maven e o Gradle, que são ferramentas populares de gerenciamento de dependências, e pode ser integrado facilmente com o Eclipse e outras IDEs.

Além disso, o Spring Boot possui uma grande comunidade de desenvolvedores ativa e engajada. Isso significa que existem muitos recursos disponíveis para os desenvolvedores, desde bibliotecas e plugins até fóruns de discussão e grupos de usuários.

No Spring Boot, os aplicativos são divididos em módulos que são chamados de módulos do Spring Boot. Cada módulo é responsável por uma parte diferente do aplicativo. Por exemplo, há um módulo para o servidor da web, outro para o banco de dados e assim por diante. Isso torna o Spring Boot altamente modular e flexível, permitindo que os desenvolvedores escolham apenas os módulos que precisam para seus projetos.

O Spring Boot também suporta vários tipos de banco de dados, incluindo bancos de dados relacionais, NoSQL e outros tipos de bancos de dados. Ele vem com vários módulos que fornecem suporte para bancos de dados, como o Spring Data JPA para bancos de dados relacionais e o Spring Data MongoDB para bancos de dados NoSQL.

Além disso, o Spring Boot também suporta diferentes protocolos de comunicação, incluindo HTTP, WebSockets e TCP. Isso permite que os desenvolvedores criem aplicativos que se comunicam com outros aplicativos usando diferentes protocolos.

Outra vantagem do Spring Boot é a facilidade de integração com outros frameworks e bibliotecas.

Exemplo de código:

  1. Primeiro, você precisa configurar o seu projeto Maven ou Gradle para incluir o Spring Boot. Para o Maven, adicione a seguinte dependência ao seu arquivo pom.xml:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <version>2.6.2</version>
</dependency>

  1. Em seguida, crie uma classe principal em seu projeto que use a anotação @SpringBootApplication. Isso é necessário para configurar automaticamente o Spring Boot e iniciar o aplicativo.
@SpringBootApplication public class MyApp { public static void main(String[] args) { SpringApplication.run(MyApp.class, args); } }

  1. Agora você pode criar seus controladores RESTful usando a anotação @RestController. Por exemplo:
@RestController public class MyController { @GetMapping("/hello") public String hello() { return "Hello, world!"; } }

  1. Para testar seu aplicativo, execute a classe principal MyApp e acesse http://localhost:8080/hello em seu navegador ou cliente REST. Você deve ver a mensagem "Hello, world!" retornada pelo seu controlador.
Esses são apenas exemplos básicos, o Spring Boot é um framework muito poderoso e flexível, e há muitas outras funcionalidades que você pode usar em seus projetos.

domingo, 9 de outubro de 2016

Groovy / Grails



Olá pessoal,

Depois de bastante tempo sem postar, resolvi escrever este post para começar a relatar um pouco da experiência que estou tendo utilizando as técnologias Groovy e Grails.

Onde tudo começou


Rencentemente, migrei de empresa e nesta nova empresa, começei a trabalhar em um projeto que utiliza Grails. Eu já conhecia a técnologia, mas nunca havia me aprofundado, e com esse projeto, mesmo que utilizando uma versão bem antiga, a 2.3.6, percebi o ganho de produtividade que podemos ter ao utilizar esse framework. Também pude observar que é preciso mudar a forma de pensar e se desapegar de velhos e maus hábitos, pois a técnologia te "força" a trabalhar utilizando suas convenções que na minha opinião e na de muitos profissionais, são boas práticas que na maioria das vezes não seguimos. Percebi também que a linguagem Groovy, na verdade é um Java melhorado, e tudo que falta no Java e que temos muito trabalho para fazer, no Groovy é extremamente simples.

Groovy


De uma maneira bem resumida, o groovy é uma linguagem de programação que roda sobre a máquina virtual Java (JVM), dinâmica, puramente orientada a objetos, possui carcateristicas funcionais, possui um vasto ecosistema, na qual o Grails faz parte, utilizada na construção de scripts e também está presente na ferramenta Gradle, hoje aparecendo como uma opção ao Maven.

Grails


Também falando resumidamente, o Grails é um framework web, fullstack, utiliza groovy como linguagem, possui influências no Ruby On Rails, ou seja, todas as suas funcionalidades praticamente também são encontradas no Ruby On Rails. Seu foco é no ganho de produtivade, trazendo ferramentas e padrões para chegar a esse objetivo, trabalha com Convention over Configuration (CoC), sendo esse um dos maiores fatores na minha opinião, para que tenhamos uma maior produtividade com o framework. Utiliza por baixo dos panos, técnologias conhecidas, tais como: Spring, Hibernate, Log4j, Tomcat, Sitemesh e outras, tornando a curva de aprendizado mais curta e fortalecendo a confiança no framework. No Brasil existe uma forte comunidade, chamada Groovy \ Grails Brasil, na qual seu fundador e na minha opinião, o maior evangelizador do Grails atua, o Henrique Lobo, mais conhecido com Kiko. Neste primeiro post, não foi a minha intenção abordar mais detalhes e no final coloco alguns links que utilizei, assim como todos os meios pelo qual aprendi e ainda uso para continuar estudando o framework e a linguagem Groovy.

Como comecei a estudar


Primeiramente, começei a buscar na internet e vi que no Brasil, existe um grupo dedicado a técnologia, o Grails Brasil, nele percebi que o seu fundador, o Kiko, havia escrito um livro falando sobre o assunto, comprei o livro e recomendo, pois o livro aborda tudo que precisamos saber para construirmos uma aplicação do zero em Grails, mesmo o livro abordando também uma versão antiga, ele apresenta pontos que mudaram na nova versão. Depois disso, começei a estudar também pela documentação oficial que sempre é atualizada e que devemos sempre recorrer em primeiro lugar.
O importante é continuar estudando e praticando bastante, pois tanto o groovy quanto o grails possuem uma infinade de novos recursos e funcionalidades talvez não utlizados pela maioria de nós e por isso, na minha opinião, a prática se torna indispensável.

Seguem os links para estudo e o link do livro


Groovy

http://www.groovy-lang.org/
http://www.groovy-lang.org/documentation.html
http://www.groovy-lang.org/ecosystem.html

Grails

https://grails.org/
https://grails.org/documentation.html

Groovy / Grails Brasil

http://www.grailsbrasil.com.br/

Palestra dada pelo Kiko na infoQ

https://www.infoq.com/br/presentations/grails-alta-produtividade-em-java

Livro Falando de Grails (Kiko)

https://www.casadocodigo.com.br/products/livro-grails

É isso pessoal, nos próximos posts, pretendo apresentar mais pontos que aprendi e demonstrar também com exemplos de código.




sábado, 19 de março de 2016

Tradução do idioma para Inglês do Netbeans no Windows




Bem, como sabemos, o Netbeans por padrão, depois de instalado, é inicializado usando a língua padrão do sistema operacional, mas, as vezes, queremos utilizar o inglês mesmo usando o sistema operacional em português, sim, estamos falando do Windows, então, para forçar o Netbeans a utilizar o inglês é muito simples. Depois de instalarmos o Netbeans no Windows, é criado um atalho na Área de trabalho (Desktop). Basta clicar com o botão direito em cima deste atalho e acessar a guia Propriedades, como mostra a imagem abaixo:


Depois basta adicionar a seguinte instrução ao final do campo Destino:
--locale en_US

Como demonstrado na imagem abaixo:



Feito isso, basta clicar em Ok e reinicializar o Netbeans IDE.


Netbeans 8.1 Release




Olá amigos, ha algum tempo a nova versão do Netbeans IDE foi lançada, trazendo novas features e melhorias de performance na ferramenta, para mais informações, seguem os links abaixo:

Para baixar a ultima versão:
https://netbeans.org/downloads/

Para saber mais sobre as novas features:
https://netbeans.org/community/releases/81/

No decorrer dos novos posts, abordarei assuntos que usarão as novas funcionalidades, até lá.

quinta-feira, 19 de março de 2015

Maven + Eclipse (Parte 1)










1 - Overview e Instalação:

Depois do post sobre como funciona o suporte ao Maven no Netbeans, resolvi acrescentar mais ao assunto Maven e falar da sua integração e utilização no nosso querido Eclipse.Vou utilizar a versão Kepler na qual vocês poderão baixar do site eclipse.org.Nesta versão, um plugin chamado m2e (Maven Integration To Eclipse) já vem instalado e pronto para usar. Para saber se a sua versão contem o plugin, basta acessar o menu Help->About Eclipse e verificar se o ícone do plugin se encontra como na imagem abaixo:


Caso não contenha o plugin, basta efetuar o download utilizando o Eclipse Marketplace. A imagem abaixo mostra o plugin encontrado e pronto para a instalação.


Basta clicar no botão install e esperar o término da instalação e configuração do plugin.

2 - Criação de um simples projeto:

 Vamos começar a utilizar de fato o suporte. Criaremos um projeto simples do tipo war (web archive) só para demonstrar a funcionalidade. Para começar, acesse a tela de criação de projetos através do menu File -> New -> Other ou simplesmente usando a combinação de teclas Ctrl + N. Depois de aberta a janela, procure por Maven Project. A imagem abaixo, demonstra a janela com o tipo de projeto selecionado.



Depois de selecionar o tipo de projeto, clique no botão Next e a tela para definir as informações básicas do projeto é exibida. Nesta tela, é possível criar seu projeto baseado em um template pré-fabricado do maven (archetype) ou com um template básico. Escolheremos o básico, marcando a opção Create a simple project. As demais configurações são relativas a localização do projeto que fica a seu critério. Depois de terminar, clique em Next novamente.


A próxima tela solicita a configuração detalhada do seu projeto. Nesta tela, as configurações específicas do seu projeto maven devem ser inseridas. Não esqueça de mudar a opção package para war, pois nosso projeto será do tipo web. Novamente, a imagem abaixo ilustra a janela já com a opção package contendo o item certo selecionado.


Terminada a configuração, clique em Finish e seu projeto será criado.

3 - O arquivo pom.xml:

Segunda a definição no site da Wikipédia, o arquivo pom (Project Object Model) representa o seguinte:

"Um Project Object Model (POM), ou em português Modelo de Projeto de Objeto, fornece todas as configurações para um único projeto. A configuração geral cobre o nome do projeto, seu proprietário e suas dependências de outros projetos. Também pode configurar fases individuais do processo de construção, que são implementados como plugins. Por exemplo, pode configurar o plugin compilador para usar a versão 1.5 do Java para compilação, ou especificar o empacotamento do projeto mesmo que algumas unidades de teste falhem.
Projetos maiores poderiam ser divididos em vários módulos, ou sub-projetos, cada um com seu próprio POM. Cada um pode então escrever um POM raiz através do qual ele pode compilar todos os módulos com um único comando. POMs também podem herdar configuração de outros POMs. Todos os POMs herdam do Super POM por padrão. O Super POM fornece configuração padrão, tal como os diretórios fonte padrões, plugins padrões e assim por diante. "

Ou seja, nesse arquivo são definidas todas as configurações do seu projeto e mesmo configurando através de janelas, essas configurações são refletidas neste arquivo.
No eclipse ao clicar no arquivo, uma janela de configuração é exibida, contendo tudo que pode ser configurado para o projeto. A imagem abaixo mostra a janela.


Desta forma, é possível configurar de forma mais produtiva o necessário para o projeto. Note que o nível de configuração é bem básico e não extende a configuração de plugins que também é muito importante, fazendo com que precisemos configurar isso manualmente, além de outras configurações.

Bem pessoal, na próxima parte irei abordar questões relativas a configurações de plugins básicos, execução de testes unitários e deploy. Até mais...