martes, 27 de diciembre de 2011

My Way Of Programming

En este post les hablare un poco sobre mi forma de programar, o las cosas que lo integran. KISS  + Funciones + un poco de XP + Refactorizacion Sip, esa es mi mezcla mágica, sin tener que seguir de forma rigurosa nada, solo tomando lo que me parece mas útil y cómodo.
Aprovecho para aclarar algo, algunos podrían decir que KISS viene incorporado con XP, sin embargo no es completamente cierto, antes de conocer XP yo aplicaba KISS con funciones, realizaba funciones simples, sin embargo el código que quedaba por fuera no era precisamente simple ni sencillo y todo estaba en un solo archivo =P.
Para trabajar con esta forma, primero se debe visualizar el proyecto en un todo, saber que se quiere y tener una idea, aunque sea vaga, de como se realizara, luego se debe intentar separar (de forma lógica) en partes mas pequeñas y trabajar en base a ellas, esto da la ventaja de una mayor flexibilidad en el proyecto y permite enfrentar de una forma mas fácil y efectiva los cambios que se tengan que realizar sobre la marcha, sin embargo, la idea no es hacer todo sobre la marcha, se debe tener una especie de plan y una idea general de lo que se desea lograr, lo que se busca con esta forma de programación es la agilidad no el librarse del proceso pre-programación.

Luego de la etapa de planeación se comienza con una serie de “pasos”.



  • Mantener todo sencillo y simple, intentando escribir la menor cantidad de código posible, que sea fácil de entender y que funcione, ademas el código resultante debe realizar alguna acción detectable, tangible, al cual se le pueda realizar algún tipo de prueba para comprobar su funcionamiento. Para poder avanzar se debe comprobar que que no tenga ningún error lo que se realizo, la meta de esta forma de programación es asegurar que el código que vayas terminando este libre de errores (o lo mas posible) así cada vez que avanzas lo haces confiado de que lo que llevas funciona.

  • Utilizar Funciones para de esta forma separar el código, el como se separe esta de parte del programador, y también en parte del lenguaje, el mismo puede contener todo el código de comprobación y de validación en una zona o archivo aparte, para de esa forma mantener mas despejada la vista de el código principal y apreciar mejor lo que se esta haciendo, o separarlo inclusive mas, todo dependerá del tamaño del proyecto y de la visión del programador (a algunos les gusta poder ver en todo momento las funciones que están utilizando).



  •  Ir agregando funcionalidad al código, al ya saber que funciona, se puede comenzar a arreglarlo o mejorarlo, comprimiendolo un poco por aquí, agregándole funciones propias del lenguaje por acá, identandolo, mejorando la documentacion y agregandole detallitos que nos parezcan útiles, recordando que cada detalle que se agregue se debe testear para comprobar que se mantenga la estabilidad del sistema, en el peor caso de que se logre que la función no funcione, un simple roll back arreglaria todo (ya que estaríamos trabajando sobre una funcion especifica y no sobre todo el sistema esto no debería preocuparnos mucho).


  • Se debe recordar que la idea es terminar el proyecto, no podemos intentar llegar a la perfeccion, y mucho menos avanzar cuando el sistema no este trabajando de forma idonea, lo ideal es asegurar que no de errores a travez de pruebas continuas e ir agregando funciones paso a paso hasta completar la meta final, luego si queda tiempo se puede comenzar con una refactorizacion mas profunda.

    Pero a la final deben recordar que lo importante de la programación no es tener una formula ganadora, si no el no temerle al cambio, el poder adaptarse a la situación y el probar nuevas herramientas sin prejuicios y siempre de forma optimista, quizás descubran nuevas y mejores formas de programar que se adapten a su estilo, o en el peor de los casos al menos les servirá de experiencia.

    No hay comentarios:

    Publicar un comentario