Skip to content

KISS (Keep It Simple, Stupid)

"Mantenha as coisas simples". O princípio KISS defende que a maioria dos sistemas funciona melhor se forem mantidos simples em vez de complicados. A simplicidade deve ser um objetivo fundamental no design de software.


1. O que é Over-engineering?

Como desenvolvedores, muitas vezes somos tentados a criar soluções que resolvam "todos os problemas do mundo" de uma vez. Isso gera um código genérico demais, difícil de ler e cheio de abstrações desnecessárias.

❌ Exemplo: Over-engineering (Ruim)

Criar uma "fábrica de botões dinâmica" que aceita uma configuração JSON gigante para decidir cada pixel do componente.

tsx
const buttonConfig = {
  theme: 'dark',
  border: '1px solid red',
  padding: [10, 20],
  // ... 50 linhas de config
};

function UniversalButton({ config }) {
  return <button style={{ padding: config.padding[0] }}>...</button>;
}

✅ Exemplo: Simplicidade (Bom)

Criar componentes focados com props claras e limitadas.

tsx
function Button({ children, variant = 'primary' }) {
  return <button className={`btn-${variant}`}>{children}</button>;
}

2. Como aplicar no dia a dia

  1. Evite Condicionais Aninhados: Se você tem 4 níveis de if/else, tente usar Guard Clauses (retornos antecipados).
  2. Use Nomes Descritivos: const isUserAuthenticated = true é melhor que const auth = true.
  3. Não use a "Tecnologia do Mês": Se um useState resolve o problema, não instale uma biblioteca de gerenciamento de estado complexa.

3. KISS no CSS e Layout

Evite cálculos matemáticos complexos no estilo. Use os componentes de layout do Design System (Stack, Box) que já resolveram essa complexidade para você.

❌ Ruim

css
margin-left: calc(100% - 20px / 2);

✅ Bom

tsx
<Stack space="medium">
  <ComponentA />
  <ComponentB />
</Stack>

4. O Cuidado com o "Código Inteligente"

Muitas vezes escrevemos um código em uma única linha usando múltiplos encadeamentos de funções (map, filter, reduce, find) para parecer "inteligente". Se outro desenvolvedor demorar mais de 5 segundos para entender o que aquela linha faz, ela não é simples.

Regra de Ouro: O código deve ser escrito para seres humanos lerem, e apenas incidentalmente para computadores executarem.