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.
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.
function Button({ children, variant = 'primary' }) {
return <button className={`btn-${variant}`}>{children}</button>;
}2. Como aplicar no dia a dia
- Evite Condicionais Aninhados: Se você tem 4 níveis de
if/else, tente usar Guard Clauses (retornos antecipados). - Use Nomes Descritivos:
const isUserAuthenticated = trueé melhor queconst auth = true. - Não use a "Tecnologia do Mês": Se um
useStateresolve 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
margin-left: calc(100% - 20px / 2);✅ Bom
<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.