
Java é uma linguagem de tipagem estática e orientada a objetos, com foco em legibilidade e segurança. Os princípios deste guia (nomes expressivos, guard clauses, métodos pequenos, fluxo linear) valem direto no Java moderno, que traz records, pattern matching (casamento de padrões) e virtual threads (threads leves que a JVM cria aos milhares).
→ Referência rápida: nomenclatura, verbos, taboos, tipos, controle de fluxo
Configuração inicial de um projeto Java: estrutura, build e pipeline.
| Tópico |
Conceitos |
| Variables |
final por padrão, records, constantes, valores mágicos |
| Naming |
PascalCase, camelCase, UPPER_SNAKE_CASE, ordem semântica |
| Methods |
Tamanho, top-down, direct return, parâmetros |
| Types |
Records, sealed classes, enums, generics |
| Control Flow |
Guard clauses, early return, pattern matching, streams |
| Visual Density |
Agrupamento de linhas, return separado, fases de método |
| Tópico |
Conceitos |
| Error Handling |
Exceções tipadas, try-with-resources, limites |
| Async |
Virtual threads, CompletableFuture, Loom |
| Testing |
JUnit 6, AssertJ, Mockito, AAA |
| Performance |
Streams vs loops, pré-alocação, String building |
| Observability |
SLF4J, Logback, Micrometer, MDC, correlationId |
| Validation |
Jakarta Bean Validation, limites, custom |
| Null Safety |
Optional, Objects.requireNonNullElse, guard |
| Dates |
java.time, UTC, ISO 8601, DateTimeFormatter |
| Entity Modeling |
record para IDs, sealed interface, Optional em retorno, factory estática |
| Quick Reference |
Nomenclatura, verbos, taboos |
| Tópico |
Conceitos |
| Spring Boot |
@RestController, DI, Spring Data JPA, @ControllerAdvice, paginação |
Forma: estrutura e narrativa do método
Legibilidade: fluxo, densidade visual e nomes
Controle de qualidade: estado, erros, async e testes