Código Limpo – Bom Código – Parte IV

Publicado por

Funções

Para que possamos ter um bom código é imprescindível que sigamos algumas regras básicas de códificação. É importante lembrar que toda regra foi criada depois de muitos anos de observação, estudo e por pessoas com muita experiência em programação. Independente de linguagem de programação, IDE e até mesmo tipo de software que você esta escrevendo, essas regras são imutáveis.

Obviamente sabemos que o Delphi é a melhor opção independente de tipo de software ou tamanho de empresa. Simple the best! Não concorda comigo? Sem problemas aceito a sua não concordância, eu falo pelos meus 25 anos de experiência e alegrias com essa IDE, tudo que tenho hoje e todas as vitórias profissionais que conquistei devo ao Delphi. Então me permitam alguns momentos de exaltação a minha IDE.

Voltando ao foco, concordamos que um código limpo é bem escrito do início ao fim, concordamos que precisamos seguir algumas regras e por fim concordamos que para que tudo isso seja possível pesquisa e estudo são necessárias. Então falando sobre funções, vamos a algumas considerações e regras.

A primeira regra para uma função é que ela seja pequena, a segunda regra é que ela deve ser menor do que isso. Eu não posso ser cínico ao ponto de dizer que sempre escrevi funções pequenas, comecei com desastrosas funções de centenas de linhas, outras menos terríveis com dezenas de linhas e algumas louváveis funções com no máximo 30 linhas.

O que aprendi em todos esses anos é que as funções devem ser pequenas. Quando comecei a programar aprendi que uma função, não deveria ser maior do que o tamanho da tela, ou seja não deveria ser necessário rolar a tela para ler uma função inteira. Contudo é importante lembrar que nessa época nos anos 90 trabalhávamos com monitores onde apareciam 30 linhas e 80 colunas. Se seguirmos a regra do tamanho dos monitores, hoje podemos ter centenas de linhas visíveis em uma função.

Funções não deveria exceder 30 linhas, alguns livros falam em no máximo 20 linhas por função, então estou dando um desconto de mais 10 linhas.

Blocos e Identação

Uma dica para refatorar grandes funções, seria criar funções em códigos que estiverem entre o begin end de declarações de if, case etc. Lembrando que o Delphi nos oferece um excelente refactor, e no caso de extrair códigos para criar funções temos o extract method, seu atalho é CTRL + SHIFT + M, selecione o bloco de código que deseja criar uma função, pressione as teclas de atalho ou acesse o menu Refactor | Extract Method e veja a mágica acontecer.

Fazer apenas uma coisa

Literamente e diretamente, uma função deve ser responsável por apenas uma coisa. Aqui podemos fazer uma analogia aos princípios do SOLID, que foi criado para classes. Em português a letra S significa princípio da responsabilidade única. Então lembre – se disso, crie funções com uma única responsabilidade.

Um nível de abstração por função

Para termos certeza que nossa função esta fazendo apenas uma coisa devemos ter certeza que nossa função possua apenas um nível de abstração. Misturar níveis de abstração dentro de uma função a torna sempre mais confusa e difícil de entender.

Para encerrarmos esse artigo sugiro analisarmos nossas funções com um senso crítico suficiente para diminuirmos o tamanho delas. Dividir uma grande função em várias pequenas funções é o primeiro passo para limparmos nosso código.

Bons códigos a todos nos vemos no próximo artigo onde falaremos sobre cases.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s