Checklist de Regras para Projetos Node
Vinte e cinco regras que todo serviço ou worker Node.js HTTP deve satisfazer antes do tráfego de produção.
Como Usar Este Checklist
- Percorra de cima para baixo em novos serviços antes do primeiro deploy.
- Reaudite trimestralmente ou após grandes atualizações do Node/framework.
- Registre aprovação/reprovação em um apêndice de ADR ou wiki da equipe; corrija lacunas em ordem de prioridade.
- Aplique mecanicamente via CI sempre que possível (não apenas por honra no README).
Runtime e Processo
- Node 24 Active LTS fixado:
enginese DockerFROM node:24.18.0alinhados. - Desligamento gracioso: SIGTERM drena HTTP e fecha pools de DB dentro do timeout.
- Rotas de health e readiness:
/healthpara liveness;/readyverifica o DB quando aplicável. - Sem I/O síncrono em caminhos críticos:
fs.readFileSyncbanido em manipuladores de requisição. - Concorrência limitada: Workers de HTTP de saída e de fila usam limites (p-limit, tamanho do pool).
Segurança
- Validação de entrada na fronteira: Validação Zod ou de schema em toda rota mutável.
- Segredos do ambiente ou vault: Sem segredos no git;
.envignorado pelo git. - Guardas SSRF em fetch de saída: Bloqueia IPs link-local e de metadados em URLs fornecidas pelo usuário.
- Cabeçalhos de segurança e CORS explícitos: Não apenas os padrões do framework em produção.
- Portão de auditoria de dependências:
npm audit --audit-level=highaprovado em CI.
API e Dados
- Formato JSON de erro consistente:
{ error: { code, message } }em todas as rotas. - Paginação em endpoints de lista:
cursoroulimit/offsetcom limites máximos documentados. - Mutações idempotentes:
Idempotency-Keyou chaves naturais para POST que criam recursos. - Apenas logs estruturados: Logs JSON; sem
console.logbruto emsrc/. - ID de correlação em toda requisição: Propaga
X-Request-Idem logs e chamadas de saída.
Ferramentas e Qualidade
- Lockfile commitado; CI usa
npm ci. Apenas instalações reproduzíveis. - Portão de merge para typecheck:
tsc --noEmitem todo PR. - Política de lint sem avisos:
eslint --max-warnings 0. - Testes em CI: Unitários obrigatórios; integração para caminhos de DB com DB isolado.
- Limites de importação aplicados: Aplicações não importam aplicações irmãs em monorepos.
Operações e Arquitetura
- Build multi-stage do Docker: Dependências de desenvolvimento excluídas da imagem de runtime.
- Configuração validada na inicialização: Processo sai com schema de ambiente inválido.
- Timeouts em HTTP de saída: Sem
fetchilimitado para terceiros. - ADR para escolhas de framework e data store: Express/Fastify/Nest e ORM documentados.
- Runbook linkado no README: Passos de plantão para OOM, deploy ruim, outage de DB.
Aplicando o Checklist em Ordem
- Nível 1 (1-5, 6-10): Segurança e proteção - bloqueia o lançamento se falhar.
- Nível 2 (11-20): Consistência de API e portões de qualidade - corrija antes do tráfego GA.
- Nível 3 (21-25): Maturidade operacional - complete dentro do primeiro mês em produção.
FAQs
Workers precisam de rotas HTTP de health?
Workers precisam de health do processo via métricas do supervisor; health HTTP aplica-se a serviços de API. A regra 3 se adapta ao heartbeat do worker.
Podemos pular a idempotência para APIs internas?
APIs internas ainda se beneficiam da idempotência em endpoints de criação/cobrança para sobreviver a retentativas.
Como podemos impor o 'no console.log'?
ESLint no-console em src/** mais o portão de lint da CI (regra 18).
O NestJS está isento do padrão createApp?
Nest usa Test.createTestingModule para testes, mas ainda precisa de desligamento gracioso e as mesmas regras de segurança/logging.
E se a auditoria não tiver correção?
Documente exceção com tempo limitado (regra 10) com o proprietário; não falhe a CI silenciosamente permanentemente.
Quantas regras para serverless Lambda?
Regras 1-2, 6-8, 11-15, 16-19 se aplicam; Docker (21) se torna configuração de empacotamento; desligamento (2) é ciente do freeze do runtime.
Quem assina o checklist?
O tech lead ou revisor marca no ticket de release; armazene o link para o checklist completo.
Como isso se relaciona com outras páginas de regras?
Este checklist resume; mergulhos profundos ficam nos artigos de regras de Async, Segurança, API, Dependência e Logging nesta seção.
Cadência trimestral de auditoria é suficiente?
Sim para serviços estáveis; reexecute após upgrade major do Node ou itens de ação de postmortem de incidente.
As regras podem ser automatizadas?
Mire em 16-20 totalmente em CI; 21-25 precisam de documentação e revisão, mas Docker/ADR podem ser impostos por template.
Relacionados
- Regras de Async e Event Loop - detalhes das regras 4-5
- Regras de Segurança - detalhes das regras 6-10
- Regras de API - detalhes das regras 11-13
Versões da Stack: Esta página foi escrita para Node.js 24.18.0 (Active LTS), npm 10+, TypeScript 5.6+, Express 5, Fastify 5, e NestJS 11.