Os benefícios de utilizar sub-rotinas

Olá, pessoal, tudo certo?
Antes de se chamar “AndreCelestino.com”, o blog foi originalmente criado com o nome “SubRotina” para fazer alusão às técnicas de programação. Bom, depois de receber algumas sugestões e dúvidas sobre este termo, decidi elaborar esse artigo para apresentar o conceito e as vantagens das sub-rotinas e a sua aplicabilidade no código-fonte. Para a maioria dos desenvolvedores não será nenhuma novidade.

Introdução

Sub-rotina é o nome dado a um conjunto de códigos destinado a cumprir uma determinada tarefa dentro do software. São métodos que realizam operações rotineiras em várias partes do sistema, evitando que o código dessas operações sejam duplicados. Normalmente uma sub-rotina é criada principalmente para permitir que a mesma tarefa seja reutilizada em vários pontos do software.

Criar sub-rotinas no sistema colabora para a redução da redundância de código e permite que este código seja reutilizado sem a necessidade de reescrevê-lo. Além disso, Sub-rotinas podem melhorar a visualização e interpretação do código-fonte, já que ele proporciona maior organização das linhas de código. Provavelmente você já usa Sub-rotinas no seu código e não sabe!

Exemplo de sub-rotina

Talvez com um exemplo fique mais claro!
Imagine um sistema para emissão de pedidos onde, para calcular o total, temos que executar um laço de repetição nos itens adicionados ao pedido:

O código acima soma o total dos itens e em seguida informa o valor total na Label1. Para que o valor exibido na Label1 seja sempre o valor total atualizado, precisamos colocar esse código em três locais diferentes do sistema: ao inserir, excluir e alterar o item, concorda? Lógico, qualquer uma dessas três operações tem influência no valor total do pedido, então é necessário executar o código acima para recalculá-lo.

Pois bem, agora imagine que o nosso cliente solicitou um campo de desconto na tela, e que o total do pedido agora deve calculado respeitando este desconto que ele informar.

Bom, basta alterar o código, certo? Porém, observe que o código terá que ser alterado três vezes: na inserção, na exclusão e na alteração de itens. Vamos supor que, por uma falha de programação, apenas os códigos de inserção e alteração de itens foram atualizados. Resultado: ao excluir um item, o valor total será calculado de forma errada, já que ele não contempla o valor do desconto! Que problemão, hein?

No entanto, se nós fizermos uma refatoração desse código em uma sub-rotina, não teremos este problema!

Para isso, criaremos um método chamado CalcularTotal e colocar todo o código para o cálculo do total do pedido dentro deste método:

A partir de agora, nos eventos de inserção, alteração e exclusão do item, ao invés de escrever todo o código para calcular o total, basta chamar o método recém-criado:

Olha só que interessante: reduzimos linhas de código, melhoramos a organização e criamos uma rotina que pode ser chamada em diferentes locais do código! Além disso, se surgir a necessidade de alterar a regra do cálculo do total, basta alterar somente na sub-rotina e o resultado será refletido automaticamente para os eventos que a chamarem.

Tipos de sub-rotina

Uma sub-rotina pode ser um procedimento ou uma função. Um procedimento apenas executa uma porção de código, sem retornar nenhum valor para o chamador. Já a função retorna um valor, muito útil para regras de validação, formatação de conteúdo e verificação de valores.

Para apresentar na prática, vamos avançar um pouco mais e alterar a nossa SubRotina. No exemplo abaixo, eu forneço o desconto como parâmetro e obtenho o valor total como retorno:

Se o cliente conceder 10% de desconto, basta chamar a SubRotina dessa forma:

 

Pois bem, pessoal, este foi apenas um breve artigo sobre essa técnica de refatoração de código que pode ajudar (e muito) no desenvolvimento de um software.

Semana que vem estou de volta!
Abraços!


André Celestino