Programas e cableados de pesadelo

Lipton_Communication2
Machine Punk – Laurie Lipton

“Que pesada é a profe!” é o que debe pensar o alumnado cando insisto unha e outra vez en que se debe traballar con orde e limpeza cando se realizan traballos prácticos de calquera tipo. “Eu xa me entendo así” ou “que máis dá se funciona” son respostas habituais, e non hai maneira de convencelos. Algo de caso me fan cando digo que iso baixa a nota, pero iso non consegue mudar o procedemento, senón que só conduce a se pasen traballo extra “pasando a limpo” cando preferiría que ese tempo o dedicasen a outro tipo de traballos.

Con este artigo intentarei ilustrar como non se deben facer as cousas. Sexa o que sexa o que se faga (un programa informático, unha instalación eléctrica, unha montaxe electrónica, un circuíto pneumático, etc.) o código, montaxe ou instalación creada debe ser suficientemente intelixible, fácil de manter e de modificar, non unicamente pola persoa que a creou, senón tamén por calquera outra que se achegue a ela para revisala, manipulala, actualizala ou mantela.

Programas informáticos

Hai moitos estándares e normas obxectivas que se deben considerar, pero para empezar, unha das máis básicas é estruturar os programas de xeito que se podan diferenciar os diferentes bloques e instrucións a simple vista.

Comparade os seguintes programas. No primeiro podemos observar a estrutura a simple vista, e no segundo custa bastante máis, verdade? Os nomes das variables tamén deben ser significativos e non debe haber código repetido ou redundante.

void loop() 
{ 
  estado=digitalRead(pulsador);   
  if (estado == 1)
  {
    for (int a=0;a<5;a++)
    {
      for(int b=0;b<3;b++)
      {
        digitalWrite(led1,HIGH);  
        delay(100);             
        digitalWrite(led1,LOW);   
        delay(100);
      } 
      digitalWrite(led2,HIGH);    
      delay(200);               
      digitalWrite(led2,LOW);     
      delay(200);
    }
  }
}
void loop(){ 
cataplin=digitalRead(2);   
if (cataplin == 1){
for (int a=0;a<5;a++){
for(int b=0;b<3;b++){
digitalWrite(led1,HIGH);  
delay(100);             
digitalWrite(led1,LOW);   
delay(100);} 
digitalWrite(led2,HIGH);    
delay(200);               
digitalWrite(led2,LOW);     
delay(200);}}}

Instalacións eléctricas

Se vos pareceron caóticos os cableados que atopastes ao facerdes os traballos de instalacións eléctricas nas vosas vivendas, mirade estas imaxes e imaxinade que o voso traballo fose o mantemento destas instalacións.

cableado2 cableado3 

(Imaxes obtidas das galerías de darkroastedblend.com)

Comunicación e redes

Nas instalacións de comunicación tamén debemos ter ben ordenados e etiquetados os cables para poder facer algunha substitución, reparación ou engadir un novo rack. Observade a diferenza entre usar sempre a mesma cor e respectar un código de cores que axuda a identificar os cables.
Na primeira imaxe os cables están ben ordenados e identificados. Imaxinades a ese técnico de sistemas traballando nas instalacións que aparecen a continuación? Para volverse tolo!

rede01rede04

rede02 rede03

(Imaxes obtidas das galerías de darkroastedblend.com)

Recomendacións:

Poderiamos poñer máis exemplos doutros tipos de instalacións e montaxes, pero penso que estes exemplos chegan, aínda que sexan moi esaxerados.

En conclusión, sempre que fagades algo, pensade:

  • Se non funciona, é doado revisar o programa, montaxe ou instalación para identificar o fallo?
  • Despois de pasado un mes ou máis de facer o programa, montaxe ou instalación, serías quen de entendelo facilmente?
  • Outra persoa entendería facilmente o que fixestes?
  • Se un problema se pode resolver de varias formas, a máis simple sempre é a mellor. Se podes conectar algo con dous cables, non uses catro, ou cinco, ou seis… Se podes conseguir algo con 4 liñas de código non uses 40.

O menos importante de todo é a nota que vos vai poñer a profe, aínda que tamén conta. Se desde o inicio vos ides acostumando a traballar de forma limpa e ordenada despois todo será moito máis fácil.