Lombok na COP de Qualidade do Sicredi

Tempo de leitura: 5 minutos

Em fevereiro, Diego Liska Rodrigues foi o convidado do 3º episódio da Comunidade de Prática de Qualidade do Sicredi-CAS Porto Alegre. O desenvolvedor da SoftDesign, que atua junto a instituição financeira, falou sobre o Lombok, biblioteca Java que facilita o desenvolvimento e os testes de software pois foca-se em produtividade e redução de código boilerplate – seções de código repetitivos que devem ser incluídas diversas vezes sem pouca ou nenhuma alteração.

Fácil instalação

De acordo com Diego, o Lombok pode ser adicionado ao projeto por meio dos frameworks Apache Maven ou Gradle. No primeiro, a configuração é simples visto que não é necessário distribuí-lo junto ao servidor: “O scope é definido como provided pois só precisaremos da biblioteca durante o tempo de desenvolvimento e compilação. O Lombok gerará tudo o que iremos precisar de anotação e também criará o código compilado já com o código fonte pronto”.

Já com o Gradle, a instalação acontece da mesma forma mas existe um detalhe importante. “Para quem usa o Selenium, por exemplo, é preciso inserir mais duas anotações para que o Lombok também, em execução, realize as anotações quando o código fonte for compilado”, explicou o desenvolvedor.

Getter and Setter

Diego seguiu sua fala explicando alguns dos principais recursos do Lombok, que contribuem para que o código da aplicação seja enxuto. Os @Getter e @Settersão um exemplo, usados para encapsular classes específicas e controlar os acessos aos atributos dessas classes.

Em execução, o Lombok gerará também os gets e sets da aplicação, o que torna desnecessária a geração dos mesmos de forma manual. “Por padrão, a biblioteca sempre gera métodos publics, então se a gente quer que determinado get ou set seja protegido, basta utilizar o nível de acesso – conseguimos colocar entre parênteses nas anotações”.

Constructor

Os construtores com argumentos são outro exemplo, pois eles aceitam um parâmetro para determinados campos e simplesmente atribuem esse parâmetro ao campo. As anotações possíveis são três: @NoArgsConstructor@AllArgsConstructor e @RequiredArgsConstructor.

@NoArgsConstructor irá gerar um construtor sem parâmetros; @RequiredArgsConstructor gerará um construtor com um parâmetro para cada campo que requer tratamento especial; e @AllArgsConstructor irá gerar um construtor com um parâmetro para cada campo em sua classe. Cada uma dessas anotações permite uma forma alternativa, onde o construtor gerado é sempre public.

EqualsandHashCode and ToString

Da mesma forma, qualquer definição de classe pode ser anotada com o recurso @EqualsAndHashCode para permitir que o Lombok gere implementações dos métodos equals (Object other) e hashCode (). “A forma como essa anotação será usada vai determinar se serão gerados todos os atributos que temos na classe, ou somente de determinadas e específicas anotações”, destacou o desenvolvedor.

É importante lembrar que qualquer definição de classe pode ser anotada com @ToString para permitir que o Lombok gere uma implementação do método toString () – ele imprimirá o nome da sua classe, juntamente com cada campo, em ordem.

Data and Builder

Antes de terminar sua fala, Diego ainda citou mais dois recursos do Lombok que facilitam o desenvolvimento e os testes de diversas aplicações.

Para agrupar os recursos já citados (@ToString, @EqualsAndHashCode, @Getter / @Setter e @RequiredArgsConstructor), é possível utilizar o @Data, que tem todas as anotações embutidas nele, ou seja, gera um padrão de todas as anotações anteriores. Já o @Builder produz APIs complexas de constructors para suas classes, permitindo a produção automática do código necessário para que sua classe seja instanciada com o código.

Esses são alguns dos principais recursos do Lombok utilizados pelos times de TI do Sicredi-CAS. Diego finalizou afirmando que existem outras anotações importantes da biblioteca, mas que essas são as básicas para que seja possível iniciar o trabalho. “Com o Lombok, além da limpeza do código, ganhamos em orientação e na facilidade de acessar os elementos”, concluiu.

Se você quer saber mais sobre o Lombok, clique aqui.