Lombok deixa seu Java mais limpo, mas esconde mais do que parece
Leia. Curta. Comente. Compartilhe.
...
Entenda como o Lombok reduz aquele código repetitivo no Java e o que anotações como @Getter, @Setter, @Data e @Builder realmente fazem por você.
...
LOMBOK
Quando você começa a programar em Java, algumas coisas se repetem tanto que quase viram parte da decoração:
Getter.
Setter.
Construtor.
Mais Getter.
Mais Setter.
Outro construtor...
Até que aparece o Lombok e diz:
“Deixa essa parte comigo.”
Parece ótimo. E realmente pode ser.
Mas é importante entender o que ele está fazendo enquanto você aproveita a mágica.
Pense em uma máquina de lavar louça
Você coloca os pratos, aperta um botão e pronto.
Não precisa lavar cada garfo manualmente.
O Lombok funciona de um jeito parecido.
Imagine esta classe:
public class Cliente {
private String nome;
private String email;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Funciona.
Mas só olhando já dá aquela vontade de perguntar:
“Eu realmente preciso escrever tudo isso toda vez?”
Com Lombok:
@Getter
@Setter
public class Cliente {
private String nome;
private String email;
}
Pronto.
Os getters e setters continuam existindo. Você só não precisou escrever cada um manualmente.
E aquelas anotações todas?
O Lombok possui várias, mas algumas aparecem bastante.
@Getter cria getters.
@Setter cria setters.
@NoArgsConstructor cria um construtor sem argumentos.
@AllArgsConstructor cria um construtor com os campos.
E existe o famoso:
@Data
Ele reúne várias coisas automaticamente, como getters, setters, toString(), equals() e hashCode().
Parece aquele botão:
“Resolve tudo aí para mim.”
Só que justamente por fazer bastante coisa, vale entender se você realmente precisa de tudo aquilo.
O @Builder também facilita bastante
Imagine criar um objeto assim:
Cliente cliente = Cliente.builder()
.nome("Ana")
.email("ana@email.com")
.build();
O @Builder permite construir objetos dessa forma.
Além de ficar mais fácil de ler, você consegue identificar rapidamente qual valor pertence a cada campo.
É quase como preencher uma ficha:
Nome: Ana
E-mail: ana@email.com
Em vez de jogar vários valores dentro de um construtor e depois tentar lembrar quem é quem.
Mas cuidado com o piloto automático
O problema não é usar Lombok.
O problema é sair colocando:
@Data
em todas as classes sem pensar.
Às vezes você não quer permitir que determinado campo tenha um setter.
Em outras situações, a forma como equals() e hashCode() são gerados pode importar.
Por isso:
Lombok economiza código, mas não elimina a necessidade de entender o código que está sendo gerado.
A máquina lava a louça.
Mas ainda é bom saber que não dá para colocar qualquer coisa lá dentro.
3 coisas para lembrar ao usar Lombok
1. Saiba o que cada anotação gera
Antes de usar @Data, por exemplo, entenda quais métodos estão sendo criados.
Não precisa decorar tudo. Só não use no escuro.
2. Use apenas o que você precisa
Se você só precisa de getters:
@Getter
Talvez não exista motivo para liberar setters para todos os campos também.
3. Menos código não significa menos responsabilidade
O código ficou menor.
Ótimo.
Mas as decisões sobre como aquele objeto deve funcionar continuam sendo suas.
Lombok não é mágica
Quando você entende o que acontece por trás das anotações, Lombok deixa de parecer mágica e passa a ser o que realmente é:
Uma ferramenta para eliminar bastante código repetitivo.
Ele pode deixar suas classes menores, mais fáceis de ler e evitar aquele festival de getters e setters.
Só não vale cair na armadilha:
“Não sei exatamente o que essa anotação faz, mas o projeto compilou, então deixa aí.”
Seu código merece um pouquinho mais de carinho.
>> Qual anotação do Lombok você mais usa: @Data, @Getter, @Setter ou @Builder?
__
Indicação de livro
Effective Java
Autor: Joshua Bloch
Não é um livro sobre Lombok, mas ajuda muito a entender como objetos Java devem ser construídos e quais decisões existem por trás de coisas que ferramentas como Lombok acabam automatizando. É uma ótima referência para ir consultando conforme você evolui no Java.



