Burdjia

Etiqueta Programación KISS, 3 entrada(s)

Feed Rss, Atom

Ágora 2.2.1

Pues sí, al final me decido y subo un nuevo paquete del proyecto Ágora.  Se trata de una modificación menor, ya que los cambios apenas son visibles.  Sólo cambian tres cosas:

Agora es una clase PHP muy simple pero que incluye aspectos básicos necesarios para la programación web, incluyendo parámetros, huellas (cookies), filtrado XSS, gestión de errores, plantillas y carga de módulos.  Puedes descargar el paquete, con documentación completa y ejemplo de uso, en la su página de proyecto.

Ágora 2.2

Después de un tiempo sin noticias, anuncio la publicación de la versión 2.2 del proyecto Ágora.

Como veréis, el nuevo paquete es mucho más pequeño que los anteriores.  Esto es porque, al ya familiar KISS, le he aplicado el YAGNI por lo que ha desaparecido una buena cantidad de morralla.  Además, se han corregido algunos errores.  Espero que sea útil.

Como véis, doy poca guerra pero sigo al pie del cañón.  Si sois pacientes, habrá más.

No lo vas a necesitar

Esto es algo que tengo en mente desde hace tiempo, pero hace poco lo he visto plasmado en un libro sobre programación, concretamente en Game Programming Patterns, que trata el tema de los patrones de programación.  Este es el texto concreto:

Some folks coined the term “YAGNI” — You aren’t gonna need it — as a mantra to use to fight this urge to speculate about what your future self may want.

Game Programming Patterns - Bob Nystrom

La verdad es que es muy simple.  Cuando trabajas en un proyecto, cualquiera, estás solucionando problemas, muchas veces futuros problemas que no te has encontrado.  Es en estos "futuros problemas" donde aparecen los ysis y los porsiacas, así que según vas diseñando y programando pasas una buena parte del tiempo analizándolos y buscando soluciones que no sabes si vas a necesitar algún día, porque no es lo que necesitas ahora.  Y la experiencia, no sólo mía sino la de miles de programadores en todo el Mundo, dicta que estos ysis y porsiacas rara vez se convierten en problemas reales.  Así que al final casi siempre terminas con una obra maestra que está plagada de funciones y estructuras que rara vez, si no nunca, van a ser utilizadas por alguien.

Aquí es donde aparece ese YAGNI (o NLVAN - No lo vas a necesitar).  Este mantra, como lo llama Nystrom, nos recuerda el párrafo anterior, y que por lo tanto la mayoría de las veces no merece la pena perder el tiempo en ello.  Si el problema es real, y lo necesitamos ya, entonces sí hay que programarlo, pero si no, pues no.

Precisamente los proyectos que tenemos ahora en marcha son lo suficientemente complejos como para ser caldo de cultivo ideal para ysis y porsiacas.  Es más, uno de ellos, xMAP, está siendo reescritos porque la complejidad creció más de lo necesario y me vi atrapado en mi propia creación sin poder hacer lo que realmente quería.  Por eso os recomiendo que vosotros también hagáis vuestro el YAGNI, no sólo en programación, sino en cualquier proyecto.