Facebook pixel
>Blog>Programação
Programação

Código Limpo: Boas práticas de programação e suas principais regras

Se você é programador ou programadora, provavelmente já teve que dar manutenção naquele código legado, de difícil entendimento, com baixa coesão, não testável e com efeitos colaterais que trazem pensamentos como: “Hmm, e se eu mexer aqui, será que impacta em quais partes do código?” Pois é… Portanto, hoje vamos falar sobre Código Limpo que […].

Se você é programador ou programadora, provavelmente já teve que dar manutenção naquele código legado, de difícil entendimento, com baixa coesão, não testável e com efeitos colaterais que trazem pensamentos como: “Hmm, e se eu mexer aqui, será que impacta em quais partes do código?” Pois é… Portanto, hoje vamos falar sobre Código Limpo que é um conjunto de técnicas para escrever um bom código e evitar esse tipo de situação.

Mas o que é Código Limpo?

Código Limpo ou Clean Code é uma terminologia que surgiu em 2008 e foi cunhada pelo nosso querido Uncle Bob.

O Código Limpo oferece uma série de boas práticas que auxiliam no desenvolvimento de software, visando o ganho de manutenibilidade, testabilidade e legibilidade do código. Com isso, aquela preocupação sobre os efeitos colaterais das alterações no código acaba sendo minimizada, visto que o processo de alterações futuras ganha muito mais confiabilidade.

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada

O intuito por trás dessa técnica vai muito além apenas de ter um código de fácil manutenibilidade. Quando falamos de código limpo estamos falando sobre alta coesão, baixo acoplamento, aplicação dos princípios do SOLID, além de maximizar o uso de funções puras e minimizar ao máximo efeitos colaterais – isso de fato diz muito sobre manutenções futuras, porém ainda precisamos de mais elementos para que nosso código de fato seja limpo. 

Testabilidade

No que diz respeito à confiança do sistema e a confiança no processo de refatoração e adição de novas features, testes são praticamente obrigatórios. Sem eles qualquer alteração pode acabar apresentando algum problema que o teste manual provavelmente não vai conseguir identificar – e por via manuais a confiança vai lá embaixo. Claro que o fato de ter testes não garante 100% que não teremos problemas, porém além de minimizar bastante e ser uma boa prática, é possível obter fluxos muito mais automatizados de verificação e até mesmo rollbacks automáticos – ou seja, voltar para a última versão mais estável do sistema.

Testes unitários, aceitação, carga/estresse, integração e regressão são alguns exemplos de tipos de testes que podemos ter, cada um cuidando de uma parte específica da aplicação. Quanto mais tipos de testes você conseguir agregar dentro do seu código, mais confiança você terá no processo de alteração.

Legibilidade

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada

A legibilidade do seu código é de extrema importância. Sem ela podemos afirmar que o seu código não é limpo, considerando que futuras manutenções ou refatorações são prejudicadas por conta desse não entendimento do código. Portanto, é sempre muito bom se atentar a esse detalhe. A legibilidade é muito valiosa e o seu eu do futuro com certeza vai te agradecer por ter deixado o código mais legível. Pequenos detalhes como fazer distinção entre nomes e usar nomes que sejam pronunciáveis e que revelem a intenção da variável e/ou classe, fazem muita diferença na análise do código.

Um pouco sobre SOLID

SOLID é um acrônimo de cinco letras, onde cada uma representa uma boa prática a ser seguida dentro do código. Quando falamos de Clean Code é muito comum que falemos também do SOLID. Vamos entender um pouco sobre os cinco princípios:

  • Single Responsibility Principle: Diz respeito à mudança de uma classe. Ela deve ter apenas um motivo para mudar e apenas uma responsabilidade. Quando estamos falando de testes e legibilidade, o fato de segregar as responsabilidades ajuda bastante nesse entendimento e até mesmo a pensar na arquitetura e abordagem dos testes.
  • Open-Closed Principle: Fala sobre a extensibilidade da classe, ou seja, a sua classe deve estar aberta para extensão e fechada para mudanças.
  • Liskov Substitution Principle: Criado por Barbara Liskov em 1987 – daí a origem do nome, fala que classes derivadas devem poder ser substituídas por qualquer uma de suas subclasses.
  • Interface Segregation Principle: Esse princípio diz que é melhor ter uma interface que atenda um propósito específico do que ter uma interface macro que agregue diversos cenários.
  • Dependency Inversion Principle: A ideia desse princípio é deixar o código desacoplado. De acordo com o próprio Uncle Bob, módulos de alto nível não devem depender de módulos de baixo nível e ambos devem depender de abstrações. Além disso, as abstrações não podem depender de detalhes, e sim os detalhes que devem depender de abstrações.

Escrevendo um bom código e regras do Código Limpo

  • DRY, KISS e YAGNI: Don’t repeat yourself, Keep It Simple Stupid e You aren’t gonna need it falam respectivamente sobre manter um código não ambíguo, com o mínimo de complexidade possível e fazer a coisa mais simples que poderia funcionar.
  • Comentários: Comente somente o necessário. Eu costumo dizer que se a função ficou muito complexa ao fato de ter que inserir um comentário muito longo, é melhor gastar um tempo na refatoração dessa função do que colocar o comentário em si. O seu eu do futuro ou a pessoa da equipe pode não lembrar ou não entender o comentário.
  • Tratamento de erros: Extremamente necessário tratar todas as falhas da aplicação, caso as mesmas ocorram.
  • Formatação: Cuidar da formatação e da indentação do código ajuda muito na legibilidade. Existem mecanismos que fazem isso de forma automatizada, mas é muito importante estipular um padrão.
  • SOLID: O uso do SOLID citado no tópico anterior é quase intrínseco ao Código Limpo, e por isso é muito importante seguir os seus princípios para obter uma boa legibilidade, testabilidade e refatorações futuras.

A importância do Código Limpo

É importante saber que o código está em constante evolução: as necessidades negociais e do usuário mudam e você precisará eventualmente alterar seu código. Portanto é de suma importância que, além de manter o sistema funcionando e entregando valor, você também mantenha o código limpo. Assim, você irá facilitar futuras manutenções, além de contribuir para melhorar sua própria produtividade.

Para saber mais sobre programação, clique aqui!

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada

Sobre o autor

A melhor plataforma para aprender tecnologia no Brasil

A Awari é a melhor maneira de aprender tecnologia no Brasil.
Faça parte e tenha acesso a cursos com aulas ao vivo e mentorias individuais com os melhores profissionais do mercado.