viernes, 18 de enero de 2013

El principio KISS

 Artículo perteneciente a la sección de calidad del código 

Hola a todos,

Hay una cosa muy curiosa entre los programadores y es que cuando aprenden algo nuevo se dedican a sobreutilizarlo hasta la saciedad, nunca mejor dicho.

Es muy típico que cuando un programador  de Java o C++  aprende lo que son las clases y la herencia lo usen para todo, incluso para que lo que no es necesario. Así pues , es bastante normal leer código de alguien novatín que tenga cosas del estilo de tener una clase Ferrari que hereda de la clase deportivo que hereda de la clase coche que hereda de la clase vehículo que hereda de la clase movil que hereda de la clase objeto que hereda de la clase...etc etc etc.  Esto no quiere decir que el uso de clase y de herencia sea malo, ni muchísimo menos, pero que hemos de usar la tecnologia en la justa medida de las necesidades de nuestro proyecto.

No es más mantenible un código cuantas más clases tiene, ni cuanta más abstracción soporta, un código es mantenible, cuando es corto, sencillo y fácil de entender y testear (a ser posible mediante tests automáticos). En esto se basa la filosofía KISS.

La palabra KISS es un acrónimo inglés que tiene dos acepciones:
 - Keep It Simple, Stupid! : Mantenlo sencillo, persona de pocas luces :D
 - Keep It Short and Simple : Mantenlo corto y sencillo.

KISS , como algunos piensan, no es una excusa para trabajar menos, o trabajar peor. Muy al contrario, en muchas ocasiones cuesta más hacer un código sencillo y corto que no un código largo y liado. El objetivo principal de esta filosofia es la mantenibilidad del código y por tanto, disminuir los costes de mantenimiento y ampliación del proyecto.

Como programo siguiendo la filosofia KISS??? Sencillo, ponte en la piel de un niño de 10 años. Lee el código.
Lo puedes entender??   Perfecto, otras personas que no sean tu, lo podrán entender.
No puedes entenderlo???  Vaya, aquí tenemos (o tendremos) un problema

La idea es hacerlo todo sencillo y claro sin miedo al futuro o a tener que tocar código después  Una de las excusas principales para no implementar KISS es: "Si lo hago todo  sencillo le faltarán funcionalidades futuras que seguro que harán falta y entonces será un embrollo volver a tocar código para implementarlo".  Las personas que dan esta excusa acaban comprendiendo más tarde o más temprano que si solo programan lo mínimo imprescindible para cumplir con la funcionalidad deseada obtienen un código funcional, sencillo y testeable, mientras que de la otra forma obtienen un código más difícil de testear, seguramente más ineficiente y con el añadido que gran parte de sus lineas de código no harán más que molestar ya que no se podrán haber testeado al no formar parte de los requisitos de la aplicación.

Conclusión, programar de una manera diferente a KISS es llevar a cuestas una gran bolsa con "porsiacasos" que cuando llega el momento de la verdad lo más seguro es que se tengan que volver a codificar ya que no cumplirán exactamente con los requisitos que se pidan en ese momento (si es que se llegan a pedir)


Espero que os haya gustado

Nos vemos
LordPakusBlog

0 comentarios :

Publicar un comentario

Entradas populares