Infelizmente é muito comum encontrar códigos complicados de entender, não pela complexidade do algoritmo, mas sim, porque o código é tão bagunçado que fica difícil de entender o que acontece.
O código deve ser human-readable, ou seja, que possa ler lido por seres humanos, é vital, na construção de um software, se preocupar com a manutenibilidade do software, capacidade de manutenção que o código possui.
Para isso é importante que estruturemos nosso código de forma que posamos compilá-lo e ao mesmo tempo que outro programador (ou nós mesmo daqui a 2 anos) possamos entender o que ocorre. Dedica uns minutos a mais para tornar o código o mais legível possível, isso poupara dinheiro para empresa e tempo para o programador.
Umas das práticas mais erradas de se fazer é usar o CTRL+C CTRL+V, se você esta fazendo isto é porque algo esta muito errado em seu código, faço-o compilar, ser legível e evite replicar código de forma desnecessária.
Segue um exemplo de como NÃO fazer um radio button usando html e php:
if ( $a->object->myName == 't' ) { $b .= "<Input type= 'Radio' id='myVarTrue' name='myName' value= 't' checked> Sim"; $b .= "<Input type= 'Radio' id='myVarFalse' name='myName' value= 'f'> Não"; } elseif ( $a->object->myName == 'f' ) { $b .= "<Input type= 'Radio' id='myVarTrue' name='myName' value= 't'> Sim"; $b .= "<Input type= 'Radio' id='myVarFalse' name='myName' value= 'f' checked> Não"; } else { $b .= "<Input type= 'Radio' id='myVarTrue' name='myName' value= 't'> Sim"; $b .= "<Input type= 'Radio' id='myVarFalse' name='myName' value= 'f'> Não"; }
Analisem o código acima, reparem quantas vezes o código é replicado, e se existir um erro nesse código?
Poderíamos facilmente resolver isso com 3 linhas de código.
Vamos sair catando todos locais onde este trecho de código existir no sistema e corrigir ele mil vezes??
Imaginem como é agradável fazer manutenção de um software inteiramente construído desta forma.
Uma boa solução alternativa para este trecho seria a seguinte:
<input type='radio' id='isHighSchoolTrue' name='isHighSchool' value= 't' <?php if ( $this->isHighSchool == 't') echo "checked='checked' "?>>Sim <input type='radio' id='isHighSchoolFalse' name='isHighSchool' value= 'f'<?php if ( $this->isHighSchool == 'f') echo "checked='checked' "?>>Não
Resolvemos o mesmo problema em 2 únicas linhas.
Ainda vale notar que neste caso estamos gerando os radios um a um, poderiamos criar uma função, ou classe, para criar todos os radios de nosso sistema, evitando assim erro na criação de html, mas isto é conteúdo de outro post.
0sem comentários ainda