Web BizarroWeb Bizarro

Suscríbete a nuestro Newsletter

X

Únete a nuestra lista de correos para recibir semanalmente actualizaciones de nuestro contenido.

Programación defensiva

Programación defensiva 31.JUL.15

Alvaro José Rios Ch
Fundador WebBizarro

Es común entre los desarrolladores encontrar problemas que no están esperando, pero si algo puede salir mal, saldrá mal. La programación defensiva se trata de eso específicamente, pensar mal de todo y de todos, de esta forma podremos evitar problemas a futuro o al menos podremos controlarlos. Así que veamos algunas cosas que podemos hacer.

 

Condicionales

Imagine este punto donde usted solo espera tres estados posibles para una variable y los tiene controlados en un bloque condicional como este:

if($var == a){ }
else if($var == b){ }
else if($var == c){ }

Pues bien, como dije antes usted solo espera esos 3 estados, pero las cosas pasan por eso es mejor tener una condición extra en la que evalué el resto de los casos y pueda generar un log de errores para después poder saber en donde falló el programa y poderlo solucionar rápidamente.

 

Nunca confié en la entrada del usuario

Entre menos cosas deban escribir los usuarios mejor será para su programa, pero no piense que todos los usuarios tienen malas intenciones y quieren explotar su aplicación, eso sería un poco paranoico, pero los usuarios no conocen su código, no saben que tipo de dato espera usted, incluso cuando se lo dice, por eso debe mantener validadas todas las entradas de usuario, incluso pensar que alguno de esos usuarios puede ser un bot o un hacker que quiere hacer mal.

Por eso nunca confié en la entrada de datos de los usuarios.

 

Asumir acerca de su código.

Nunca asuma nada, si ha aprendido algo sobre los dos puntos anteriores entonces entenderá que no debe suponer nada. Es muy común entre los desarrolladores que pasado un tiempo comiencen a pensar que los usuarios conocen cosas sobre el funcionamiento de la aplicación y que por eso pueden pasar cosas por alto, no lo haga, los usuarios no saben nada sobre su aplicación.

También tenga en cuenta que en algún tiempo pueden haber cambios en el lenguaje o los servicios que usa por eso tenga en cuenta la documentación, es muy importante dejar todo claro para que en el futuro pueda hacer arreglos rápidamente.

 

Cuidado con la visión de túnel

Es fácil olvidarse de las normas cuando entras en ese punto conocido como visión de túnel, ese punto donde te concentras en tu trabajo, solo escuchas la música en tus audífonos y cuando te das cuenta han pasado dos horas en un abrir y cerrar eso ojos. Lo importante aquí es no olvidar lo que ya hemos puesto claro actualmente.

 

Consistencia en la sintaxis y los nombres

La consistencia es un punto un poco complicado, es difícil seguir las normas y generalmente cada persona establece sus propias normas. Cada lenguaje tiene una serie de recomendaciones de como debe escribirse el código por lo que es bueno estar enterado de estas mejores practicas y ponerlo en practica, de esta forma podrá mantener no solo un código ordenado y legible sino además evitara confusiones y posibles errores al tratar de hacer actualizaciones o corregir bugs sobre ese código.

 

Como pueden ver nada es perfecto, todos podemos cometer errores y hacer que un programa falle, lo importante no es hacer un código perfecto sino tolerante a fallos y que además te de la posibilidad de seguir lo que ocasionó el problema para poder corregirlo.