- JPA ou Hibernate?
- Existe um mundo onde JDBC puro é mais utilizado?
- Existe algum Query Builder no mundo Java?
- Quais as formas de gerenciar migrations usando Java?
- Existe alguma forma semelhante ao Prisma/Atlas, através de uma DSL de Schema (Database as Code)?
- Quando usar @Transactional e quando não usar?
- Além do Springboot, há alguma outra alternativa que seja utilizada pelo mercado?
- Quais as diferenças fundamentais entre os Springboot e os demais frameworks?
- Quais projetos do universo Spring (Data, Batch e afins) voce utilizada no dia a dia? Caso não utilize, pq?
- Quais as versões mais utilizadas no Mercado?
- Quais os conhecimentos fundamentais necessários, para um mid/sr?
- Migração de outra lang para Java, é um bom caminho?
- Package by layer ou Package by Feature?
- Maven ou Gradle? Pq?
- Quando é necessário usar Lombok? IDE já gera todo o código com dois cliques, pq ainda usar Lombok?
- Pensando no Springboot, qual a forma ideal para injeção de dependencias?
- Como nomear adequadamente um projeto, usando meu user do github? com.github.${username}?
- Como lidar com multiplos environments (dev, prod, stg) dentro de uma aplicação Java? Existe algum .env?
Persistence
Preferencialmente ambos, pois JPA é uma especificação Java enquanto Hibernate é a implementação mais popular e também o MELHOR framework ORM do mundo 💪🏻
Geralmente em sistemas legados, libs e frameworks de persistência, frameworks caseiros e algumas ferramentas geradoras de código;
JPA e Hibernate fornecem a API de Criteria. Mas existem MyBatis e jOOQ;
O mais popular hoje em dia no mundo Java é o Flyway. Mas existem outros. Sobre alguma DSL eu já vi algumas tentativas, mas no mundo Java são poucas e raramente usadas;
Essa talk tem alguns anos, mas comento algumas soluções de migrations da epoca.
Sempre, ou até que algo muito forte te diga o contrário (gargalos, controle fino da transação etc). Para maioria dos sistemas corporativos abrir mão de consistência deveria ser exceção e não regra.
Frameworks
Micronaut e Quarkus são os mais populares. Mas existe outra vertente de frameworks que não curtem anotações, mutabilidade nem exceptions, que são chamados de "microframeworks".
No geral todos beberam da mesma fonte: Ruby On Rails. Mas no mundo Java sem duvida o Spring é o mais antigo, maduro e popular. Micronaut por exemplo é totalmente inspirado no Spring Boot, tanto é que considero que se o Spring Boot fosse refeito do zero hoje ele seria o Micronaut 💪🏻
Geralmente o basicos para APIs REST: Web, Validator, Data, Actuator, OpenFeign e outros de acordo com a demanda.