"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Um nível de abstração: a chave para funções limpas

Um nível de abstração: a chave para funções limpas

Publicado em 2024-11-07
Navegar:352

One Level of Abstraction: The Key to Clean Functions

Já olhou para uma função e se sentiu perdido em sua complexidade? Vamos explorar um princípio fundamental do código limpo: as funções devem manter apenas um nível de abstração.

Aqui está um exemplo real de criação de usuário em um aplicativo da web:

// ❌ A function doing too many things at different abstraction levels
function createUser(userData) {
  // Validate data
  if (!userData.email || !userData.email.includes('@')) {
    return 'Invalid email';
  }
  if (userData.password.length 



Esta função mistura diferentes níveis de abstração:

  • Lógica de negócios de alto nível (fluxo de criação de usuários)
  • Operações de nível médio (validação de dados, formatação)
  • Detalhes de baixo nível (hash de senha)

Vamos refatorá-lo seguindo o princípio de nível único de abstração:

// ✅ Clean version with one level of abstraction
function createUser(userData) {
  const validationError = validateUserData(userData);
  if (validationError) return validationError;

  const securePassword = hashPassword(userData.password);
  const formattedUser = formatUserData(userData.email, securePassword);

  return saveUserToDatabase(formattedUser);
}

function validateUserData({ email, password }) {
  if (!email || !email.includes('@')) return 'Invalid email';
  if (password.length 



Benefícios desta abordagem

  1. Legibilidade: A função principal parece uma história, descrevendo o que acontece em alto nível
  2. Manutenção: Cada função tem uma única responsabilidade, tornando as mudanças mais seguras
  3. Testabilidade: você pode testar cada parte da lógica de forma independente
  4. Reutilização: Essas funções focadas podem ser reutilizadas em outros contextos

Principais conclusões

Ao escrever funções:

  • Mantenha-os focados em um nível de abstração
  • Extraia operações complexas em funções bem nomeadas
  • Faça com que a função principal conte uma história
  • Pense em cada função como uma única etapa do seu processo

Lembre-se: Se você estiver misturando "como" e "o quê" na mesma função, provavelmente estará lidando com vários níveis de abstração. Divida-os!

Declaração de lançamento Este artigo é reproduzido em: https://dev.to/56_kode/one-level-of-abstraction-the-key-to-clean-functions-2ekb?1 Se houver alguma violação, entre em contato com [email protected] para excluí -lo.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3