Qual o melhor, Lombok ou Records?

  Рет қаралды 4,346

Giuliana Bezerra

Giuliana Bezerra

Күн бұрын

Пікірлер: 82
@jonatasoliveira800
@jonatasoliveira800 11 ай бұрын
Pra quem ficou em duvida de qual usar, usem os dois kkkkkk os records são muito praticos para serem usados como DTOs ou DAOs ja que irão servir meramente para transportar informações representadas da nossa Entidade, enquanto as anotações do lombok são otimas na hora de construir nossa Entidade relacional que precisa ser mais detalhada.
@pedro2001
@pedro2001 11 ай бұрын
Concordo!
@giulianabezerra
@giulianabezerra 10 ай бұрын
Boa, não sei se no vídeo ficou parecendo que é apenas um ou outro, de fato dependendo do caso os dois podem ser úteis, como sempre, depende
@jonatasoliveira800
@jonatasoliveira800 10 ай бұрын
@@giulianabezerra ficou otima a explicação no video, eu disse mais pra quem ta começando e não tem essa noção ainda.
@fernandon1626
@fernandon1626 11 ай бұрын
Abandonei o lombok e model mapper nos projetos a partir do java 17. Uso os records como DTOs de requests e response e nos DTOs para consumir outras apis pelo feign, como o codigo fica simples pode ate usar nested
@mathgomes01able
@mathgomes01able 11 ай бұрын
É para mapear oq usa?
@felipessca
@felipessca 11 ай бұрын
Muito bom, eu ainda uso lombok nos dtos entre camadas, quando tenho que mapear uma entidade para dto com mapstruct por exemplo, mas o response final estou usando sempre o record.
@abnerjosebarbosa4010
@abnerjosebarbosa4010 7 ай бұрын
Uso lombok na entidade e record no dto.
@JeffersonLuizCruz
@JeffersonLuizCruz 9 ай бұрын
Que aula!
@RicardoSantos-wl1bg
@RicardoSantos-wl1bg 11 ай бұрын
Eu gosto do Lombok, continuo utilizando
@cleverson_lira
@cleverson_lira 6 ай бұрын
Sou sempre a favor de utilizar recursos da linguagem ao invés de bibliotecas de terceiros. O Boiler Plate quem gera para nós é a IDE. Parabéns pelo vídeo!
@christhianlor
@christhianlor 8 ай бұрын
Excelente comparativo!
@hudsonlucas5049
@hudsonlucas5049 11 ай бұрын
Gulia, passando só para avisar que estou usando os seus vídeos, basicamente como referência na minha empresa e geral curtiu.
@giulianabezerra
@giulianabezerra 10 ай бұрын
Que ótimo! Vlw demais pelo apoio 🤩🙏
@vluquini
@vluquini 11 ай бұрын
ótima aula giu, você explica muito bem!!
@giulianabezerra
@giulianabezerra 10 ай бұрын
Muito obrigada 😃
@ggeraldi
@ggeraldi 11 ай бұрын
otima aula sobre o assunto.
@DavidsonEstevesNunes
@DavidsonEstevesNunes 11 ай бұрын
Excelente abordagem mostrando prós e contras. Por hora fico com o lombok :D
@marcosgarcia179
@marcosgarcia179 11 ай бұрын
Excelente vídeo...🙂 - Builder não me agrada....prefiro um construtor...🤔 - O uso de biblioteca, nesse caso o lombok, agrega a carga intrínseca para aprendizado, saber o que ele faz.🤓 - Records já me agrada 😁
@giulianabezerra
@giulianabezerra 10 ай бұрын
Tbm tendo mais pro lado dos records
@rodrigofelixdev
@rodrigofelixdev 8 ай бұрын
O problema do construtor ao invés do builder. Se você pegar uma classe com muito atributos?
@rafaelvieira9367
@rafaelvieira9367 8 ай бұрын
Muito bom o video mesmo essa comparação e explicação! vai ter time (lombok) e time (record) kkk. Eu por exemplo fico dos 2 lados, por que, atualmente na empresa que trabalho utilizo Java 8 sistema legado, então para esse caso vai ser preciso o lombok, porém o record sim é ótimo para sistema que estão com versões compatível removendo a dependência de terceiro que concordo plenamente com você que se por acaso não houver mais manutenção, pode não ser uma boa idea utilizar para um projeto de grande escala e robusto.
@mgmoura
@mgmoura 11 ай бұрын
excelente video !
@Lucas-iu8gd
@Lucas-iu8gd 10 ай бұрын
A principal desvantagem do lombok não foi falada no vídeo, entao complementando: O design da JVM foi feito para aceitar manipulação adicional de bytecode tanto em fase de runtime (usado por libs como Hibernate, Spring, etc) quanto em fase de compilação (caso do Lombok). Porém em fase de compilação, qualquer manipulação de bytecode dinamicamente deve ser feita gerando código extra, e não modificando código já existente, ou seja, o correto seria o lombok gerar uma nova classe User com os metodos implementados, o que não acontece, o lombok mexe diretamente na classe que está anotada, mas como? O lombok utiliza a fase de compilação do java para injetar código na AST da linguagem, e esse "hack" é feito no momento do processamento das annotations (annotation processing) da jvm. Isso tudo pode vir a causar uma série de problemas e incompatibilidades, seja em troca de versões do java, algo que muda no compilador, etc. Records é uma solução built-in, implementada pela propria JVM, que promove imutabilidade e reduz consideravelmente o código boilerplate, prefiram sempre Records ao Lombok,
@giulianabezerra
@giulianabezerra 10 ай бұрын
Concordo com vc! Mas já vi muita gente justificar que esse impacto não seria significativo, que uma troca de versão não seria algo traumático de fazer. De fato optar por coisas nativas diminuiu qualquer impacto e é a alternativa que deve ser priorizada, a não ser que realmente não atenda as necessidades da aplicação. O Lombok é bem robusto e está no mercado há bastante tempo, com muitos adeptos em projetos grandes, quem sabe essa implementação dele não seja melhorada no futuro.
@mrl2_bolonhini
@mrl2_bolonhini 8 ай бұрын
Estou chegando agora no Java, mas então qual a diferença para as annotations do Spring e porquê ninguém fala em abandoná-lo e fazer tudo na mão?
@Lucas-iu8gd
@Lucas-iu8gd 8 ай бұрын
@@mrl2_bolonhini Então, existe uma diferença enorme, o Spring faz as "mágicas" com suas anotações em tempo de execução, o famoso "runtime". O Lombok faz tudo em tempo de compilação, quando seu programa está sendo compilado, o código que o Spring gera dinamicamente já está lá, o do lombok ainda não, e tem outro agravante, com eu falei ali, o design da JVM foi pensado pra receber código novo de forma dinâmica e não modificar código existente, o que o lombok faz é modificar as classes que já existem através de uma injeção de código durante a compilação, resumindo: O Spring processa todas as anotações em "runtime", em tempo de execução, seguindo as "regras" do compilador, o lombok não.
@christhianlor
@christhianlor 8 ай бұрын
Como bem explicado no final, há suas particularidades na aplicabilidade de ambos.
@Leonardo55x
@Leonardo55x 11 ай бұрын
muito bom ❤
@gildocode7
@gildocode7 11 ай бұрын
Boa noite Giuliana... Acompanho seus vídeos e sou inscrito em seu canal, com tópicos sensacionais meus parabéns. Não só eu como muitos aqui que acompanha seu maravilhoso trabalho, queria dicas de como ingressar na primeira vaga. Sou formado em Análise e Desenvolvimento de Sistemas, mas como nas faculdades não formam programadores né rsrs.... Atualmente trabalho como analista de infraestrutura Jr. Olha pra ser sincero aprendi muito mais programação com alguns tutoriais e cursos de curta duração do que o tempo perdido na faculdade. Mas quero saber porque é muito difícil conseguir a primeira vaga para trabalhar com programação? Na empresa onde eu trabalho utilizam Java na parte de Backend, mas só contratam programadores Pleno e Sênior e Júnior não tem vez... Em cima disso que mencionei, gostaria de apenas uma dica, as vezes fico pensando, "Se estou na empresa certa para conseguir minha primeira vaga na área, como já sou do TI, imaginava que teria mais chance de ingressar na programação" mesmo sendo Jr.. Forte Abraço e sucesso...
@giulianabezerra
@giulianabezerra 10 ай бұрын
Com certeza trarei vídeo sobre esse assunto! De fato é difícil mesmo para iniciantes, e pra entrar numa vaga muitas vezes a pessoa precisa tentar pra pleno mesmo e continuar estudando para dar conta. Fico devendo esse vídeo, pode deixar! 😊
@hsmiranda
@hsmiranda 11 ай бұрын
Excelente vídeo! Eu particularmente evito o lombok quando é possível, gosto de evitar ter dependências na minhas aplicações sem a real necessidade delas.
@luizfelipeburgattjolo6578
@luizfelipeburgattjolo6578 7 ай бұрын
como sempre, depende 😁
@guimarin_
@guimarin_ 11 ай бұрын
Sensacional :D
@pedrolobo9835
@pedrolobo9835 10 ай бұрын
10:39 Aqui o record me deu uma bugada a primeira vez. Porque está passando os atributos como argumentos e não está declarando private. Antes de voltar o vídeo, fiquei imaginando o que o pessoal ta fazendo com o Java. Até porque tirou o get and set na hora de usar a classe. kkkk
@DaviMello
@DaviMello 11 ай бұрын
Mais um video top! Pergunta, pq largou o IntelliJ?
@giulianabezerra
@giulianabezerra 10 ай бұрын
Acho o vscode mais enxuto e tem tudo que eu preciso. Fora que já me acostumei com os atalhos de produtividade 😁
@SedracCalupeteca
@SedracCalupeteca 11 ай бұрын
Agora utilizo records deste modo evito ter dependencias externas, e acredito records chega a ser mais prático como já sobrecarrega por padrão os método toString, hashCode, e para quem já trabalho com kotlin e tentou usar o lombok as vezes o não funcionar dependendo da versão do kotlin que utilizas, mas afirma que Kotlin já interpreta Java 17 (onde foi finalizado os records mas surgio em Java 16 como previous) ainda não testei, mas acho que seria até meio inrrelevante usar records ou lombok em Kotlin. Ainda eu utilizo o lombok por causa do padrão builder que é oferecido pela anotação @Builder, @SuperBuilder.
@giulianabezerra
@giulianabezerra 10 ай бұрын
Sim, o builder é um recurso bem prático do lombok, eu confesso que não costumo usar lombok, eu evito ao máximo dependências externas no projeto
@leonardo5695627
@leonardo5695627 8 ай бұрын
Construtor compacto - uauuu!!! xD essa me pegou :c)
@SedracCalupeteca
@SedracCalupeteca 11 ай бұрын
O que eu gostaria de Java dar suporta construtor nomeado nos records
@niltonfernandes7928
@niltonfernandes7928 7 ай бұрын
boa tarde, antes de mais obrigado pelos seus conteúdos, são muitos bons mesmo. boa didática muita calma em explicar. eu queria saber os plugins estalado no VsCode para otimizar a programação em java eu estou a ver muitos autocompletes e códigos gerado parece esta a utilizar inteligência artificial para geração de codigo.
@giulianabezerra
@giulianabezerra 7 ай бұрын
Os autocompletes são do Github Copilot, vc precisa assinar a ferramenta para poder usar a extensão. Ele ajuda para criar projetinhos mais simples, mas pra quem se distrai é bom desabilitar em projetos mais complexos.
@lulinha-bolchevera
@lulinha-bolchevera 11 ай бұрын
Estou construindo um projeto de arquitetura hexagonal em spring e fazendo o isolamento do core/domain, um dia pretendo aproveitar este core numa aplicação utilizando a mesma arquitetura, porém com o quarkus. Posso utilizar lombok para reduzir o tamanho das classes nesse core/domain? Acho que muita gente tem essa dúvida.
@giulianabezerra
@giulianabezerra 10 ай бұрын
Lombok é dependência externa, então eu não usaria, até pq pode gerar alguns problemas de compatibilidade com versões do Java. Maaaass, eu já vi alguns usando justificando que o impacto em caso de mudança não seria tão grande. Então no fim depende, é uma escolha de arquitetura mesmo
@lulinha-bolchevera
@lulinha-bolchevera 10 ай бұрын
@@giulianabezerra Muito obrigado!
@LUcasDrumify
@LUcasDrumify Ай бұрын
Acredito que o Lombok também é útil para usar Logs. Não sei dizer se existe alguma maneira de evitar repetição de códigos sem usar o Lombok para Logs.
@marcelquinteiro4560
@marcelquinteiro4560 11 ай бұрын
no sentido de menos código somente o lombok é bacana, porem o record é um pouco mais que isso(pra não dizer das varias vantagens em uso como DTO), particularmente não uso classe mais como DTO me habituei a usar record e tem funcionado muito bem.
@antonioamaral2406
@antonioamaral2406 11 ай бұрын
Oi Giuliana! Qual tema é essa do VSCode e qual essa extensão de auto-complete, por favor? Obrigado!
@giulianabezerra
@giulianabezerra 10 ай бұрын
O tema é o insomnia e a extensão é o copilot, mas essa extensão é paga
@LeoKashmir
@LeoKashmir 8 ай бұрын
Legal.🤟
@alissonyoussf
@alissonyoussf 11 ай бұрын
Muito top. Parabéns. Como DTO ficou top. E no caso da Entidade? @Entity... Modelo de domínio? Uso Record ou classe com código boilerplate? Se tiver um video implementando records em camadas, com service, controle... agradeço.
@giulianabezerra
@giulianabezerra 10 ай бұрын
Pode usar em entity tbm, só vai ter uma implementação um pouco diferente por se tratar de objetos imutáveis. Na playlist de desafio de vagas do canal eu implemento alguns projetos usando records em todas as camadas, depois dá uma olhada 😉😔
@alissonyoussf
@alissonyoussf 10 ай бұрын
@@giulianabezerra Vou sim. Muito grato.
@diegorbaptista
@diegorbaptista 11 ай бұрын
Parabéns pelo vídeo Giuliana! Esse autocomplete sinistro que você está usando é extensão de algum copilot? É gratuito?
@giulianabezerra
@giulianabezerra 10 ай бұрын
Kkk, é o copilot e ele é pago, não tem gratuito infelizmente 😔
@andrebonatti5073
@andrebonatti5073 8 ай бұрын
Lombok tem mais funcionalidades que isso por exemplo nível de abstração de log pelas suas anotações e mais algumas anotações úteis. Concordo que o Record é interessante tem utilidade e facilidade, mas não é exatamente um substituto. Outra coisa, eu era complementarmente contrário ao lombok em sistemas JEE antigos, pois aumentava a complexidade e possibilidade de dar erro no build, pois além da questão de IDE interpretar em runtime através de liba terceiras, tinha a complexidade de maven também ter que ter isso e fazer gerar os códigos que não dão vistos em tempo de build e quebravam, mas isso mudou completamente em sistemas de microservice, onde casa muito a tecnologia e praticamente não tive problemas usando em springboot e quarkus.
@rodolfogoncalves286
@rodolfogoncalves286 8 ай бұрын
Quando estamos usando lombok para criarmos nossos getters and setter para todos os atributos de uma classe não estaríamos ferindo o conceito do encapsulamento ? Para este caso faria sentido termos atributos públicos já que todos poderão ser alterados? Lombok insere código em nosso código!!!
@iarlensantos3588
@iarlensantos3588 11 ай бұрын
Para uma pessoa iniciante, a Sra indica que faça da forma que era usado antes (criando manualmente getters e setters) ou usar uma das alternativas? (Lombok e Records)
@giulianabezerra
@giulianabezerra 10 ай бұрын
Pra iniciantes eu indico usar o Java e não focar em frameworks externos, fazer get e set mesmo ou já usar records
@ThiagoLimaRocks
@ThiagoLimaRocks 8 ай бұрын
Que teclado barulhento viu hahahah Boa explicação @Giuliana.
@igorsilva736
@igorsilva736 7 ай бұрын
o record do Java é equivalente ao data class do Kotlin, mas o data class dá pra ser mutável se quiser
@giulianabezerra
@giulianabezerra 7 ай бұрын
Kotlin 1 x Java 0 :P
@diegopessoa6959
@diegopessoa6959 11 ай бұрын
Muito bom o conteúdo. Já deixei meu like. Agora fica minha opnião: - Senti falta do builder para os records. - Sobre o eclipse, a configuração do lombok é tão simples quanto ao exemplo mostrado. Não percebo dificuldade como a comentada no vídeo. - E para trabalhar com injeção de dependencia via construtor, senti falta também do @RequiredArgsConstructor
@giulianabezerra
@giulianabezerra 10 ай бұрын
Obrigada pelas dicas! Talvez no eclipse seja mais fácil agora, mas em 2016 tinha que baixar um jar e configurar, e dava uns erros bem estranhos pra mim. De fato os records não tem builder, talvez seja uma melhoria futura, vamos aguardar
@BalderGibran
@BalderGibran 8 ай бұрын
Giuliana, e qdo tratamos de entidades que tem um ID que é gerado pelo Hibernate por exemplo, tem como usar o Record?
@giulianabezerra
@giulianabezerra 8 ай бұрын
Nesse caso não, quando se usa JPA não dá pra usar records como entidades. Vc pode usar o record pra mapear o resultado das queries, mas para salvar a entidade precisaria de uma classe mutável mesmo.
@rodrigofelixdev
@rodrigofelixdev 8 ай бұрын
Desculpa a ignorância por não entender muito bem sobre as classes imutáveis. Mas há como usar o Records como classe de entidade para o banco de dados?
@annarafadev
@annarafadev 8 ай бұрын
Eu gosto de utilizar record, mas quando sao dtos com um grande número de atributos as vezes fico com duvida se seria melhor utilizar ele ou lombok, o que vc acha?
@giulianabezerra
@giulianabezerra 8 ай бұрын
Eu sempre uso records pra DTOs, até em entidades quando elas não precisam ser mutáveis. O Lombok eu costumo deixar pra entidades do banco que precisam ser atualizadas.
@luuke11
@luuke11 11 ай бұрын
Depois que eu descobri o lombok uns 4-5 anos atrás nunca mais parei de usar, a função @Data e construtores são realmente muito úteis e quebram um bom galho , já o builder eu acho bem... viajado, nunca curti e definitivamente nunca usei.
@giulianabezerra
@giulianabezerra 10 ай бұрын
Builder é costume, é mais legível depois que vc acostuma, em relação a um construtor com vários parâmetros
@EdersonLCaldatto
@EdersonLCaldatto 10 ай бұрын
Não encontrei mais o outro video que você fez falando especificamente sobre record, exclui ele ?
@giulianabezerra
@giulianabezerra 10 ай бұрын
Eu não cheguei a falar sobre records exclusivamente, apenas venho usando nos vídeos, esse é o vídeo que trago mais informações sobre eles, mas pretendo fazer um pra focar nesse tema
@EdersonLCaldatto
@EdersonLCaldatto 10 ай бұрын
@@giulianabezerra Então confundi com outro vídeo, mas lembro que fez exemplos e usou o pattern with para adicionar valores record após criado, ou estou totalmente enganado e vi em outro vídeo isso
@giulianabezerra
@giulianabezerra 10 ай бұрын
@@EdersonLCaldatto ​​⁠ah, foi na playlist da arquitetura ao deploy, no vídeo sobre spring batch ou no do rest api, na playlist vc vai encontrar isso mesmo!
@Nosbielc
@Nosbielc Жыл бұрын
Caramba assunto bem complicado de se ter uma resposta, porém no meu caso continuarei usando lombok. o Record ainda nao cobre tudo que preciso.
@giulianabezerra
@giulianabezerra Жыл бұрын
Verdade, eu uso os 2, só que uso mais os records mesmo, é que tem situações que preciso do objeto mutável, aí volto pro Lombok.
@DannielCristie
@DannielCristie Жыл бұрын
Excelente aula. Mas na questão de desempenho é o mesmo? Tem algo no Record igual ao @RequiredArgsConstructor do lombok?
@giulianabezerra
@giulianabezerra Жыл бұрын
Verdade, tem um impacto em tempo de compilação que o lombok traz, que pode deixar builds mais lentos que o uso de records. E sobre o construtor para records acho que precisaria criar as variações desejadas pra ter algo parecido com essa anotação do lombok. Por ser nativo os records vão ser bem mais restritos em funcionalidade, mas aí entra o velho tradeoff 😊
@RonaldoHabibiDev
@RonaldoHabibiDev 10 ай бұрын
Entenda as diferenças entre os Modelos de Domínio Anêmico e Rico
14:43
Giuliana Bezerra
Рет қаралды 1,9 М.
Criando um projeto Spring Boot com Arquitetura Limpa
29:09
Giuliana Bezerra
Рет қаралды 21 М.
It’s all not real
00:15
V.A. show / Магика
Рет қаралды 19 МЛН
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 39 МЛН
Documente arquitetura de software com o Modelo C4!
19:33
Giuliana Bezerra
Рет қаралды 4,4 М.
You DON'T NEED LOMBOK | What is Lombok? | Why I don't use it | Java Tutorial
17:35
Microserviço em Java - Testes de Integração/Sistema com MockMvc
16:18
Renan Lessa | Panela Dev
Рет қаралды 2,8 М.
Aprenda a usar cache nos seus projetos Spring Boot!
16:01
Giuliana Bezerra
Рет қаралды 11 М.
Never Write a Getter or Setter in Java Again
10:41
Coding with John
Рет қаралды 155 М.
Introdução à Mensageria com Spring e Kafka
19:10
Giuliana Bezerra
Рет қаралды 10 М.
Não aprenda Java antes de ver este vídeo!
12:57
Victor Lima - Ciência da Computação
Рет қаралды 14 М.
Tutorial Completo sobre Threads no Java
15:58
Giuliana Bezerra
Рет қаралды 5 М.
Entrevista Técnica: Longest Substring Without Repeating Chars
19:43
Giuliana Bezerra
Рет қаралды 1 М.
What You Need to Know About Java Records
7:55
Sebastian Daschner
Рет қаралды 3,8 М.