Article image
Ingrid Costa
Ingrid Costa26/10/2023 14:01
Compartilhe

A Arte do Clean Code: aprenda a escrever códigos de alta qualidade

    Quer conhecer as melhores práticas de código limpo e tornar-se um programador de alta qualidade? Então você está no lugar certo. 

    “Código limpo é simples e direto. Código limpo é lido como uma prosa bem escrita”. - Grady Booch, criador da UML

    Se você já vivenciou o desenvolvimento de um software, saberá identificar a diferença de um código bem elaborado para um código ruim. O código ruim é como uma rua não pavimentada, consumida pela lama, poeira e pedras que dificultam a passagem e desgastam os veículos. De forma análoga, o código limpo é a rua pavimentada que permite a passagem de pessoas e tráfego seguro de veículos. 

    Programar é uma atividade cotidiana na vida dos desenvolvedores de software. Porém um código confuso que não apresenta claramente a sua função pode futuramente ocasionar erros, manutenção constante e mal funcionamento. Logo, o Clean Code é uma prática que surgiu com o intuito de combater esse impedimento e proporcionar organização, eficiência e clareza. 

    O que será abordado neste artigo?

    • Introdução
    • O que é “Clean Code”?
    • Princípios de um código limpo
    • Legibilidade: nomes são tudo no software
    • Eficiência
    • Simplicidade
    • Reusabilidade
    • Manter estruturas de diretórios e código-fonte organizados
    • Como utilizar clean code na prática?
    • Conclusão
    • Referências

    O que é “Clean Code” (Código Limpo)?

    O termo “Clean Code” surgiu pela primeira vez no livro “Clean Code: habilidades práticas do Agile Software” em 2008 pelo autor Robert Cecil Martin, conhecido como “Uncle Bob”.

    Clean Code é uma filosofia que descreve técnicas e convenções simples que tornam um código livre de complexidades e redundâncias, tornando-o, de fácil compreensão. Clean Code garante a manutenção simples, promove produtividade e redução de erros. Pois, quando um código é simples para manter, a base de código pode ser atualizada, o que garante a qualidade de software a longo prazo.

    Princípios de um código limpo

    A ideia fundamental para programar um código bem desenvolvido é quando a lógica atende o propósito do software, a manutenção é simples de ser implementada, o código é evidentemente organizado, todas estas são evidências de um código limpo e implementado corretamente.

    No livro “Clean Code” é possível encontrar características fundamentais que um código limpo deve atender para desenvolver softwares de alta qualidade:

    Legibilidade: nomes são tudo no software

    A definição de nomes para variáveis, métodos, classes e objetos devem revelar prontamente a intenção principal e apresentar objetividade. Dessa forma, evita-se erros, má compreensão e facilita a manutenção do software. Seguem as melhores convenções para definição de nomes:

    // Ao invés de 
       temperaturaemcelsius = 32
       sistemadetemperatura = false
        
    // Prefira:
        temp_celsius = 32
        sistema_temp = false
    

    Eficiência

    O código limpo deve ser eficiente, ou seja, o software deve executar todas as funcionalidades de forma rápida, produtiva e sem defeitos. Os programadores devem garantir que a aplicação fará o que lhe é proposto. 

    A complexidade algorítmica também influencia nestes aspectos, portanto verifique se o problema é solucionado na menor quantidade de tempo possível e ocupe menor uso de memória. Pergunte-se: “quanto tempo leva para processar este algoritmo?”. 

    Simplicidade

    Não existe nada pior que um código repleto de comentários desnecessários, redundâncias e conceitos mal explicativos sobre o bloco de código comentado. Simplificar o código, incluir apenas o necessário ou abstrair uma informação complexa permite que o desenvolvedor foque apenas no que é mais importante. Seguem alguns parâmetros que podem ser seguidos: 

    1. Em cada linha de código, está claro o que cada declaração faz?
    2. O nome da variável, classe, objeto ou método está óbvio? 
    3. Os comentários do código explicam o que é importante ou possui explicações desnecessárias? 
    4. Os comentários estão desatualizados? Elimine-os ou substitua por um comentário novo.

    Exemplo: quantidade de Ifs no código-fonte:

    function calculate (number, operation){
    if(operation == 'multiply for two'){
      console.log(`result: ${number * 2}`)
    }else if(operation == 'divide by two'){
      console.log(`result: ${number / 2}`)
    }else if(operation == 'add two'){
      console.log(`result: ${number + 2}`)
    }else if(operation == 'subtract two'){
      console.log(`result: ${number - 2}`)
    }
    }
    
    
    calculate(5, 'multiply for two')
    //Resultado:
    //result: 10
    

    Solução Simples

    const account = {
    'multiply for two': number => console.log(`result: ${number * 2}`),
    'divide by two': number => console.log(`result: ${number / 2}`),
    'add two': number => console.log(`result: ${number + 2}`),
    'subtract two': number => console.log(`result: ${number - 2}`)
    }
    
    
    function calculate(number, operation){
    return account[operation](number)
    }
    
    
    calculate(5, 'divide by two')
    //Resultado:
    //result: 2.5
    

    Reusabilidade

    Um dos conceitos fundamentais na engenharia de software, refere-se a capacidade de uso do código por múltiplas vezes sem a necessidade de modificação ou refinação constantes. A importância do reuso consiste na qualidade do código e minimizar a possibilidade de erros e bugs. Além de tornar o desenvolvimento efetivo e manter a base de código atualizada e aprimorada ao longo do tempo.

    Manter estrutura de diretórios e código fonte organizados

    Projetos bem-organizados auxiliam desenvolvedores a encontrar arquivos e modificá-los com facilidade e aprimora a escalabilidade dos projetos desenvolvidos. 

    Do contrário, arquivos espalhados por diversas pastas não estruturadas e nomes desafiadores de entender levam a confusão e erros. Portanto, segue um exemplo de uma boa estrutura de pastas e organização do código fonte.

    image

    Fonte: Alura.

    Como implementar clean code na prática?

    Após familiarizar-se com as melhores práticas de desenvolvimento com clean code. Vale aplicar estes conceitos na prática. Logo, seguem algumas dicas para aplicar clean code no seu desenvolvimento:

    • Utilize nomes explícitos a sua funcionalidade: a definição de bons nomes para classes, variáveis, métodos e objetos é fundamental para legibilidade e compreensão imediata do código.
        // Variável que expressa claramente sua funcionalidade:
            temp_celsius = 32;
            tempo_em_dias = 365;
        
        // Variáveis que não são explícitas: 
            variavelTemp = 32;
            dias_ano = 365;
    
    • Torne seu código reutilizável: esta prática permite que seus códigos possam ser repetidos em ambientes diferentes sem a necessidade de reescrevê-los.
    • Use a formatação e indentação corretos: use o recuo e indentação apropriados que destaquem a estrutura lógica dos blocos de código.
          // Sem uso de indentação e formatação:
            const minhaFunc=(numero1,numero2)=>{
            const resultado=numero1+numero2;
            return resultado;
            }
            
            
            // Uso de formatação e indentação:
            const minhaFunc = (numero1, numero2) => {
                const resultado = number1 + numero2
                return resultado
            }
    
    • Evite comentários desnecessários: atualize-os conforme a evolução do código e foque no que é importante.  
    • Seja consistente: mantenha padronizado o código fonte, se utilizar um estilo de variável como camelCase ou outros, implemente para as demais. 

    CONCLUSÃO

    Para concluir, aprendemos que a aplicas boas práticas de código limpo podem efetivamente tornar o desenvolvimento de software de alta qualidade. De modo que o software promova experiência mais que satisfatória ao usuário final.

    Um código limpo é, portanto, uma aplicação, organizada, eficiente e objetiva que seguem boas práticas e demonstram solução para alto volume de manutenções e bugs.

    Gostou das dicas de como implementar clean code na prática? Deixe seu comentário e participe da comunidade que escreve códigos de alta qualidade!

    REFERÊNCIAS

    LIMA, Victor. As 4 regras do código limpo. [S. l.], 9 out. 2018. Disponível em:

    <https://blog.schoolofnet.com/as-4-regras-do-codigo-limpo/>. Acesso em: 26 out.2023.

    MARTIN, Robert C. Código Limpo: Habilidades Práticas do Agile Software. [S. l.]: Alta

    Books, 2009.

    MARTIN, Robert C.; MARTIN, Micah. Princípios, Padrões e Práticas Ágeis em C#. São Paulo: Bookman, 2011. PDF.

    Qualidade de Software - Engenharia de Software. Devmedia, 2010. Disponível em: 

    <https://www.devmedia.com.br/qualidade-de-software-engenharia-de-software-29/18209> Acesso em: 26 out. 2023.

    ROBERTO, João.  Clean Code: O que é? Por que usar? [S. l.], 07 ago. 2018. Disponível em: &lt;https://medium.com/joaorobertopb/1-clean-code-o-que-%C3%A9-porque-usar-1e4f9f4454c6&gt;. Acesso em: 26 out. 2023.

    Compartilhe
    Comentários (0)