Advertisement · 728 × 90

Posts by

Se perguntar pra galera OOP, até mesmo funções são objetos 👍🏾

1 year ago 1 0 0 0

É tudo wrapper, mas acho que são pontos de vista que tem valor em si mesmos de serem aprendidos.

1 year ago 1 0 0 0

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

1 year ago 1 0 1 0

Ninguém gosta de usar.
Como eu uso micronaut, daí usi bean introspection e gg

1 year ago 2 0 0 0

Vou me render ao javismo cultural e criar umas anotações para deixar processamento de planilhas brainless

1 year ago 1 0 0 0

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

1 year ago 1 0 0 0

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.

1 year ago 1 0 1 0
Advertisement

Morte aos ORMs

1 year ago 1 0 1 0

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

1 year ago 0 0 0 0

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.

1 year ago 0 0 1 0

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.
+

1 year ago 0 0 1 0

Otimizar performance de escrita em SQL puro é trivial. Transações + bulk insert ou COPY em pgsql.

No hibernate é bem mais complicado, pois ele exige algumas coisas.
Por exemplo, uma das exigências é o id da entidade ser do tipo Sequence.
Este tipo é suportado nativamente pelo pgsql +

1 year ago 4 1 1 1

Estrutural* reina de fato

1 year ago 0 0 0 0
Post image

A JVM so tem o melhor GC do mundo por conta de necessidade.
Pensa que todo objeto em Java pede alocação na heap.
Tu usa um array, vai para a heap, que guarda objetos, então são muitas indireções e muito overhead

1 year ago 2 0 0 0
Advertisement

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

1 year ago 2 0 0 0

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

1 year ago 2 0 0 0

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.

1 year ago 1 0 0 0

Mas esse é um dos motivos de não gostar tanto do hibernate, é um overhead Mt considerável

1 year ago 0 0 1 0

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

1 year ago 0 0 1 0

Faltou o -i

1 year ago 0 0 0 0

Hoje em dia eu não gosto de Java, mas é inegável que é cabide de emprego

1 year ago 2 0 0 0

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.

1 year ago 0 0 0 0
Preview
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/hibernate-ev...

Este artigo do vlad mihalcea é muito bom no que diz respeito a event listeners

1 year ago 1 1 0 0
Advertisement

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.

1 year ago 0 0 1 0

Você usa hibernate envers e spring data?
Tome cuidado!
O envers não captura repository.deleteById, por um motivo muito simples: cada modificação em uma entidade dispara eventos dentro do hibernate, e o que o envers faz é capturar estes eventos e produzir os registros de auditoria. +

1 year ago 0 0 1 0

Sim, combina isso com auto commit e tem a receita para o desastre.

1 year ago 0 0 0 0

Combina isso com bons meios de fazer batch insert e você tem escritas de alta performance.

Alguns outros fatores que você pode considerar para deixar as escritas mais consistentes:

- optimistic locking
- select for update
- statement grouping (um único insert com vários segmentos)

1 year ago 0 0 1 0
Preview
JDBC Batch INSERT and UPDATE example in Java with PreparedStatement Java tutorial on How to use JDBC batch INSERT and UPDATE with PreparedStatement with example. You should always use batch updates for better performance, it's one of the JDBC best practice.

javarevisited.blogspot.com/2013/01/jdbc...

Acho que o ponto mais importante e geral para o pessoal aprender sobre aceleração de escrita é agrupar todas as suas escritas em uma única transação. Todo ORM faz isso, utilizando contextos ou gerenciamento manual de transação. +

1 year ago 1 0 1 0

5. Quando falamos em contratar juniores, não é contratar para o cargo junior, mas contratar pessoas junior. Isso delimita a diferença entre contratar um profissional e cobrar dele níveis acima e contratar um profissional e cobrar dele adequadamente ao cargo

1 year ago 4 1 0 0