Clean Code #2: capriche em sua funções

Vinícius Alonso
Let's Grow
Published in
2 min readMar 4, 2017
Fonte: https://www.butterfly.com.au/blog/website-development/clean-high-quality-code-a-guide-on-how-to-become-a-better-programmer

No post anterior foi abordado a importância de escolher bem os nomes, nesse post o assunto trabalhado serão as funções. O Clean Code estabelece alguns conceitos para determinar se uma função está bem escrita.

As funções devem ser pequenas!

Funções com muitas linhas são difíceis de serem lidas e entendidas. Por essa razão é muito importante mantê-las pequenas, abaixo um exemplo:

Fonte: http://codetalkbr.blogspot.com.br/2014/10/formula-de-bhaskara-em-php.html

O algoritmo acima faz o cálculo da fórmula de Bhaskara, olhando para ele podemos notar que faz coisas demais e poderia ser dividido por responsabilidades para ficar menor e mais legível. Abaixo a versão refatorada da função:

A função acima ganhou mais linhas que sua versão original, então quais as vantagens?

Agora cada função faz apenas uma coisa. Essa é uma premissa do Clean Code, cada função deve fazer apenas uma coisa e fazer isso bem feito. Temos partes que podem ser reutilizadas tornando nosso código mais modular. Note que as funções, is_zero, is_greater_than_zero, entre outras, podem ser utilizadas em outras partes da aplicação seguindo o princípio do DRY (Don't Repeat Yourself).

Facilite a leitura de seu código

Observe o código abaixo:

Note que a segunda opção é mais fácil de ser lida, isso porque lê-se "se $a for zero, calcule a raiz simples".

Utilize poucos níveis de indentação

Cada função deve ter um ou dois níveis de indentação e nada mais que isso. Estabelecer esse padrão e segui-lo à risca é importante para garantir que códigos como o do Haduken não sejam mais escritos.

Fonte: http://imgur.com/gallery/FT1vYUY

Não utilize else

Pesquisando em outras regras de boas práticas, encontrei o Object Calisthenics e, uma das regras diz "não use a palavra reservada else". A parte interessante de remover o else de nossos códigos, é que diminuímos os fluxos de execução, diminuindo por sua vez a complexidade ciclomática.

Conclusão

Embora o código refatorado ainda tenha vários problemas, é possível notar uma melhora da versão original. Porém, o foco desse post era mostrar alguns detalhes voltados as funções.

Manter nossos códigos limpos e bem escritos é fundamental para que um sistema cresça sem se tornar uma bagunça. E esse cuidado começa nos pequenos detalhes.

--

--