eronalves.bsky.social
@eronalves.bsky.social
Se perguntar pra galera OOP, até mesmo funções são objetos 👍🏾
October 14, 2024 at 3:13 PM
É tudo wrapper, mas acho que são pontos de vista que tem valor em si mesmos de serem aprendidos.
October 14, 2024 at 3:10 PM
Proxy e também Decorator né?
Proxies são bastante úteis em caching.
Você coloca o proxy na frente e deixa bem transparente a fonte do objeto, se do disco ou de caching
October 14, 2024 at 3:03 PM
Ninguém gosta de usar.
Como eu uso micronaut, daí usi bean introspection e gg
October 9, 2024 at 1:13 AM
Pior que já encarei situação que o Gson não funciona dessa forma e sim sempre com reflexão.
Foi triste. Resolvi de outro jeito
October 8, 2024 at 4:12 PM
Acho que hoje em dia é MT inútil isso.
Hoje em dia é tudo via reflection/bytecode generation.
O hibernate não usa mais getter e setter, nem o Gson, e acho que nem mesmo o Jackson.

Só encontro o micronaut que ainda usa.
October 8, 2024 at 4:03 PM
Morte aos ORMs
October 8, 2024 at 3:35 PM
Junta isso tudo com o próprio overhead do hibernate, e vc tem o pior framework para inserções em massa de hoje em dia
October 8, 2024 at 3:35 PM
Outro ponto importante é o modelo de write behind do hibernate, então corre um risco da aplicação sofrer out of memory enquanto faz as inserções, exceto se você fechar o ciclo de limpeza do cachê a partir de certos inserts.
October 8, 2024 at 3:34 PM
Mas não no MySQL. Teria que utilizar uma tabela a mais para prover a sequência.
Dependendo, vc ainda corre o risco de bulk inserts serem mais lentos do que inserts normais, o que relega ao tuning do batch size.
+
October 8, 2024 at 3:33 PM
Estrutural* reina de fato
October 8, 2024 at 11:34 AM
Eu acho isso muito dureza, mas fazer o que né?
Mais avançado do que isso é abusar da API do compilador para injetar métodos nas classes
October 7, 2024 at 12:33 PM
O que são tipos lineares?
São tipos que podem ser "evoluídos" ou transformação de um dado em outro com withX?
Ou nenhum deles?

Lombok builders resolve um problema sério (ou pseudo problema) do próprio Java, que é a falta de argumentos nomeados e/ou struct literals
October 5, 2024 at 7:45 PM
Ainda sim, vale (que surpresa né?)
Eu uso principalmente o @AllArgsConstructor e @RequiredArgsConstructor, ou quando um campo só precisa ser acessado msm, um @Getter simples ate eu perceber uma abstração melhor pra ele.
October 5, 2024 at 7:43 PM
Mas esse é um dos motivos de não gostar tanto do hibernate, é um overhead Mt considerável
October 5, 2024 at 7:37 PM
Tô com um serviço na mão que o hibernate é o ofensor.
Semana que vem testo umas otimizações (usar multipart ao invés de base64, trocar LinkedList por ArrayList, usar o entityManager direto ao invés de Micronaut Data), e vejo se deixo menos pior
October 5, 2024 at 7:37 PM
Faltou o -i
October 5, 2024 at 7:22 PM
Hoje em dia eu não gosto de Java, mas é inegável que é cabide de emprego
October 5, 2024 at 7:18 PM
Prefiro usar var.
Mais simples.
Hoje todo mundo usa IDE, se não sabe o tipo da variável, só colocar o mouse em cima.
October 2, 2024 at 3:55 PM
vladmihalcea.com/hibernate-ev...

Este artigo do vlad mihalcea é muito bom no que diz respeito a event listeners
How to intercept entity changes with Hibernate event listeners - Vlad Mihalcea
Learn how to intercept entity changes (persist, merge, remove) using Hibernate event listeners and replicate changes to other database tables
vladmihalcea.com
September 23, 2024 at 11:41 PM
Ao usar o método deleteById, a entidade em si é deletada com uma chamada JPQL diretamente ao banco de dados, sem carregar a entidade e sem disparar qualquer evento, fazendo com que não haja registro algum de exclusão.
September 23, 2024 at 11:39 PM