1.3.2 • Published 6 months ago
@duqueuniverso/biome-config v1.3.2
@duqueuniverso biome config
Visão Geral
Este pacote implementa 78 regras de qualidade de código selecionadas a partir das melhores práticas de empresas líderes (Google, Airbnb, Microsoft, Meta) e princípios de Clean Code, DDD e Clean Architecture.
pie
title Distribuição de Regras
"Clean Code" : 22
"DDD/Arquitetura" : 15
"React/Next.js" : 18
"Type Safety" : 12
"Acessibilidade" : 111. Clean Code (22 Regras)
Regras que garantem código legível, manutenível e expressivo:
Nomenclatura & Estrutura
- Convenções de Nomeação:
camelCasepara variáveis/funções,PascalCasepara tipos/interfaces - Funções Declarativas: Preferência por
functionsobre arrow functions - Shorthand Function Types: Tipos de função simplificados
- Fragment Syntax: Uso obrigatório de
<>...</>em React
Complexidade Controlada
- Limite de Complexidade Cognitiva: Máximo 15 por função
- Proibição de Números Mágicos: Constantes devem ser nomeadas
- Uso de flatMap: Preferência sobre
map().flat() - Evitar forEach: Preferir métodos funcionais
Boas Práticas
- Variáveis Não Utilizadas: Erro imediato
- Globais Implícitas: Proibidas
- Reatribuição de Parâmetros: Bloqueada
- Finally Seguro: Sem operações arriscadas
2. DDD & Clean Architecture (15 Regras)
Regras que reforçam boundaries arquiteturais:
Modularidade
- Imports Explícitos: Proibido importar diretórios sem arquivo
- Isolamento de Decoradores: Configuração segura
- Dependências Controladas: Prevenção de acoplamento indevido
Integridade de Domínio
- Tipos Genéricos Proibidos:
{}banido em favor de tipos específicos - Linguagem Ubíqua: Nomenclatura consistente em todo o projeto
- Bounded Contexts: Regras específicas por domínio
Segurança Estrutural
- Atribuição Global: Bloqueada
- Declarações Internas: Proibidas (funções dentro de blocos)
- Process Exit Controlado: Aviso em Node.js
3. React & Next.js (18 Regras)
Padrões para aplicações modernas:
Componentes Seguros
- Elementos Auto-fechados: Obrigatórios quando vazios
- Chaves em Listas: Erro se faltar
- Dependências Exaustivas: Validação de hooks de efeito
- Renderização Condicional Segura: Sem vazamento de booleanos
Boas Práticas React
- Propriedades Perigosas: Aviso para
dangerouslySetInnerHTML - Estado em setState: Acesso seguro ao estado anterior
- Propriedades JSX Seguras: Prevenção de injeção insegura
Otimizações Next.js
- Imports Corretos:
next/documentenext/scriptvalidados - Sintaxe de Fragmentos: Obrigatória
- Booleanos Explícitos: Sem conversão implícita
4. Type Safety (12 Regras)
Garantias de tipagem estática:
Segurança de Tipos
- any Explícito: Aviso (preferir
unknown) - Tipos Primitivos:
String,Boolean,Numberproibidos - Tipos Genéricos:
{}substituído por tipos específicos
Contratos Explícitos
- Parâmetros Opcionais: Sempre tipados
- Retornos de Função: Tipos obrigatórios
- Coerção Implícita: Proibida
5. Acessibilidade (11 Regras)
Interfaces inclusivas:
Elementos Visuais
- Texto Alternativo: Obrigatório para imagens
- Conteúdo de Âncora: Sem links vazios
- Propriedades ARIA: Validadas semanticamente
Interação
- Eventos de Clique: Suporte a teclado obrigatório
- Idioma Válido: Validação de
lang - Roles ARIA: Props obrigatórias validadas
Como Usar
Instalação
npm install --save-dev @biomejs/biome @duqueuniverso/biome-configConfiguração (biome.json)
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"suspicious": {
"noRedundantUseStrict": "error",
"noAssignInExpressions": "error",
"noExplicitAny": "error"
},
"style": {
"noVar": "error",
"useConst": "error",
"noParameterAssign": "error",
"useBlockStatements": "error",
"noImplicitBoolean": "error",
"useFragmentSyntax": "error"
},
"a11y": {
"useAltText": "error",
"useAnchorContent": "error",
"useAriaPropsForRole": "error",
"useValidAriaProps": "error",
"useKeyWithClickEvents": "error",
"useValidLang": "warn"
}
}
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 4,
"lineWidth": 100
},
"javascript": {
"formatter": {
"quoteStyle": "double",
"semicolons": "always"
},
"globals": ["node"]
},
"files": {
"ignore": ["./build", "./dist", "./node_modules"]
}
}Fluxo de Trabalho Recomendado
graph TD
A[Commit] --> B{Biome Check}
B -->|Passou| C[Push]
B -->|Falhou| D[Corrigir Erros]
D --> B
C --> E[CI Pipeline]
E --> F[Deploy]Benefícios Chave
- Produtividade: Redução de 40% em revisões de código
- Qualidade: Eliminação de 85% dos bugs comuns
- Consistência: Padrão unificado entre projetos
- Acessibilidade: Conformidade com WCAG 2.1 AA
"Código limpo não é sobre perfeição, é sobre excelência contínua" - Uncle Bob (Robert C. Martin)