Pular para o conteúdo

Boas práticas e padrões · Qualidade e testes · 6 min de leitura

Code review, commits e configuração (12 fatores)

Mudanças pequenas, commits que contam a história, revisão focada no que importa e configuração fora do código.

Branch → Commits1Commits → Pull request2Pull request → CI3Pull request → Revisão4Revisão → Main5Branch — feat/meta-pixBranchfeat/meta-pixCommits — pequenosCommitspequenosPull request — descrição claraPull requestdescrição claraCI — lint + testesCIlint + testesRevisão — design, bugsRevisãodesign, bugsMain — deployMaindeploy

Arraste para o lado para ver o diagrama inteiro.

O CI verifica o que máquina verifica (formatação, testes); a revisão humana fica com design, clareza e riscos.

Code review (guia do Google)

  • O padrão: aprovar quando a mudança melhora a saúde geral do código, mesmo que não esteja perfeita.
  • Olhe primeiro design, funcionalidade e complexidade; depois testes, nomes e comentários.
  • PRs pequenos são revisados melhor e mais rápido.
  • Comentários gentis, explicando o porquê; marque sugestões opcionais como "nit".

Commits

Conventional Commits padroniza mensagens (feat:, fix:, refactor:, BREAKING CHANGE) e permite gerar changelog e versão semântica automaticamente. Um commit = uma mudança lógica; a mensagem diz o porquê.

Twelve-Factor

Metodologia para apps de serviço: configuração em variáveis de ambiente (nunca segredos no repositório), dependências declaradas, build/release/run separados, processos sem estado, logs como fluxo de eventos, paridade entre desenvolvimento e produção.

No código: antes e depois

✗ AntesTypeScript
// commit: "ajustes"
const API_KEY = 'sk_live_51H...'; // segredo no repositório
const BASE_URL = 'https://api.prod.exemplo.com';
✓ DepoisTypeScript
// commit: "feat(metas): depósito via Pix com QR dinâmico"
//
// O usuário gera o QR na tela da meta; o valor entra
// quando o webhook confirma o pagamento. Closes #142.

const config = {
  apiKey: requireEnv('PAYMENTS_API_KEY'),
  baseUrl: process.env.API_BASE_URL ?? 'http://localhost:8080',
};

function requireEnv(name: string): string {
  const v = process.env[name];
  if (!v) throw new Error(`variável de ambiente ${name} ausente`);
  return v;
}

A mensagem explica o quê e o porquê; o segredo vem do ambiente e a falta dele derruba o app na largada, não em produção às 3h.

Em resumo

Referências

Continue aprendendo

Todos os temas de boas práticas e padrões →