ConstructiCat Logo
CodeBust.
Browse section ▾

Remover Sinalizador de Controle.

Problem

Você tem uma variável booleana que atua como um sinalizador de controle para várias expressões booleanas.

Solution

Em vez da variável, use break, continue e return.

##Example

##Why Refactor

Os sinalizadores de controle remontam aos tempos antigos, quando os programadores “de verdade” sempre tinham um único ponto de entrada para suas funções (a linha de declaração da função) e um único ponto de saída (bem no final da função).

Nas linguagens de programação modernas, esse cacoete de estilo está obsoleto, já que temos operadores especiais para modificar o fluxo de controle em laços e outras construções complexas:

  • break: interrompe o laço

  • continue: interrompe a execução do ramo atual do laço e vai verificar as condições do laço na próxima iteração

  • return: interrompe a execução da função inteira e retorna seu resultado, se fornecido no operador

##Benefits

  • O código com sinalizadores de controle costuma ser muito mais pesado do que o código escrito com operadores de controle de fluxo.

##How to Refactor

  1. Encontre a atribuição de valor ao sinalizador de controle que causa a saída do laço ou da iteração atual.

  2. Substitua-a por break, se for uma saída de um laço; continue, se for uma saída de uma iteração; ou return, se você precisar retornar esse valor da função.

  3. Remova o código restante e as verificações associadas ao sinalizador de controle.