java-coding-standards
Faz seu agente seguir padrões de codificação Java para Spring Boot e Quarkus. Garante que o código seja organizado e siga as convenções específicas.
O que ela faz
Este código ajuda a garantir que seu código Java siga as melhores práticas e convenções, especialmente quando você usa os frameworks Spring Boot ou Quarkus. Ele verifica coisas como nomes de variáveis, como os dados são armazenados e como os erros são tratados.
Quando usar
- ✓Ao escrever código Java para projetos Spring Boot ou Quarkus.
- ✓Quando você quer garantir que seu código seja fácil de ler e manter.
- ✓Ao revisar o código de outra pessoa para verificar se segue as regras.
Exemplo do que pedir para a IA
“Verifique se este código Java para Spring Boot segue as convenções de nomenclatura e imutabilidade.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele analisa seu código e o compara com um conjunto de regras pré-definidas para os frameworks Spring Boot e Quarkus. Se algo não estiver de acordo, ele sugere a maneira correta.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add affaan-m/ECC --skill java-coding-standardsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/pi/core/skills/java-coding-standards/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Padrões de Código Java
Padrões para código Java (17+) legível e de fácil manutenção em serviços Spring Boot e Quarkus.
Quando Usar
- Escrevendo ou revisando código Java em projetos Spring Boot ou Quarkus
- Aplicando convenções de nomenclatura, imutabilidade ou tratamento de exceções
- Trabalhando com records, sealed classes ou pattern matching (Java 17+)
- Revisando o uso de Optional, streams ou generics
- Estruturando pacotes e layout do projeto
- [QUARKUS]: Trabalhando com escopos CDI, entidades Panache ou pipelines reativos
Como Funciona
Detecção de Framework
Antes de aplicar os padrões, determine o framework a partir do arquivo de build:
- Arquivo de build contém
quarkus→ aplique convenções [QUARKUS] - Arquivo de build contém
spring-boot→ aplique convenções [SPRING] - Nenhum detectado → aplique apenas convenções compartilhadas
Princípios Fundamentais
- Prefira clareza à esperteza
- Imutável por padrão; minimize o estado mutável compartilhado
- Falhe rapidamente com exceções significativas
- Nomenclatura e estrutura de pacotes consistentes
- [QUARKUS]: Prefira processamento em tempo de compilação em vez de em tempo de execução; evite reflexão em tempo de execução sempre que possível
Exemplos
As seções abaixo mostram exemplos concretos de Spring Boot, Quarkus e Java compartilhados para nomenclatura, imutabilidade, injeção de dependência, código reativo, exceções, layout de projeto, logging, configuração e testes.
Nomenclatura
// PASS: Classes/Records: PascalCase
public class MarketService {}
public record Money(BigDecimal amount, Currency currency) {}
// PASS: Methods/fields: camelCase
private final MarketRepository marketRepository;
public Market findBySlug(String slug) {}
// PASS: Constants: UPPER_SNAKE_CASE
private static final int MAX_PAGE_SIZE = 100;
// PASS: [QUARKUS] JAX-RS resources named as *Resource, not *Controller
public class MarketResource {}
// PASS: [SPRING] REST controllers named as *Controller
public class MarketController {}
Imutabilidade
// PASS: Favor records and final fields
public record MarketDto(Long id, String name, MarketStatus status) {}
public class Market {
private final Long id;
private final String name;
// getters only, no setters
}
// PASS: [QUARKUS] Panache active-record entities use public fields (Quarkus convention)
@Entity
public class Market extends PanacheEntity {
public String name;
public MarketStatus status;
// Panache generates accessors at build time; public fields are idiomatic here
}
// PASS: [QUARKUS] Panache MongoDB entities
@MongoEntity(collection = "markets")
public class Market extends PanacheMongoEntity {
public String name;
public MarketStatus status;
}
Uso de Optional
// PASS: Return Optional from find* methods
// [SPRING]
Optional<Market> market = marketRepository.findBySlug(slug);
// [QUARKUS] Panache
Optional<Market> market = Market.find("slug", slug).firstResultOptional();
// PASS: Map/flatMap instead of get()
return market
.map(MarketResponse::from)
.orElseThrow(() -> new EntityNotFoundException("Market not found"));
Melhores Práticas de Streams
// PASS: Use streams for transformations, keep pipelines short
List<String> names = markets.stream()
.map(Market::name)
.filter(Objects::nonNull)
.toList();
// FAIL: Avoid complex nested streams; prefer loops for clarity
Injeção de Dependência
// PASS: [SPRING] Constructor injection (preferred over @Autowired on fields)
@Service
public class MarketService {
private final MarketRepository marketRepository;
public MarketService(MarketRepository marketRepository) {
this.marketRepository = marketRepository;
}
}
// PASS: [QUARKUS] Constructor injection
@ApplicationScoped
public class MarketService {
private final MarketRepository marketRepository;
@Inject
public MarketService(MarketRepository marketRepository) {
this.marketRepository = marketRepository;
}
}
// PASS: [QUARKUS] Package-private field injection (acceptable in Quarkus — avoids proxy issues)
@ApplicationScoped
public class MarketService {
@Inject
MarketRepository marketRepository;
}
// FAIL: [SPRING] Field injection with @Autowired
@Autowired
private MarketRepository marketRepository; // use constructor injection
// FAIL: [QUARKUS] @Singleton when interception or lazy init is needed
@Singleton // non-proxyable — use @ApplicationScoped instead
public class MarketService {}
Padrões Reativos [QUARKUS]
// APROVADO: Retorna Uni/Multi de endpoints reativos
@GET
@Path("/{slug}")
…
Perguntas frequentes
O que são 'convenções de nomenclatura'?
São regras sobre como nomear variáveis, funções e classes para que o código seja mais fácil de entender. Por exemplo, em Java, nomes de classes geralmente começam com letra maiúscula.
O que é 'imutabilidade'?
Significa que um dado, uma vez criado, não pode ser alterado. Usar dados imutáveis torna o código mais seguro e previsível.
Por que ele diferencia Spring Boot e Quarkus?
Porque cada um desses frameworks tem suas próprias regras e melhores práticas específicas que precisam ser seguidas para obter o melhor desempenho e manutenibilidade.
Detalhes
Descrição original do autor
Java coding standards for Spring Boot and Quarkus services: naming, immutability, Optional usage, streams, exceptions, generics, CDI, reactive patterns, and project layout. Automatically applies framework-specific conventions. Use when writing or reviewing Java in a Spring Boot or Quarkus service.
repo: affaan-m/ECC
Popularidade
- Estrelas no GitHub
- 280 mil
- Posição no ranking
- #66
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
karpathy-guidelines
Ajuda seu agente a escrever código melhor, evitando erros comuns. É útil para garantir que o código seja simples, claro e fácil de verificar.
multica-ai/andrej-karpathy-skills
skill-creator
Permite ao agente criar, modificar e otimizar habilidades. Útil para testar o desempenho de habilidades e melhorar sua precisão.
anthropics/skills
ponytail-debt
Lista todos os atalhos de código ('shortcut:') deixados para depois. Ajuda a ver o que ainda precisa ser corrigido no projeto.
DietrichGebert/ponytail