Uno de los proyectos personales que he realizado ha sido ISValidator. Fue a finales del año 2001, así que ha llovido mucho desde entonces.
Mi intención era muy simple. En todas las aplicaciones típicas CRUD lo primero que realizas es coger los datos y validarlos. Así que me propuse hacer una librería para ello. Le dediqué mucho tiempo a pensarla, ha hacer algo modular, etc. No la típica situación «quick and dirty» que suele haber en los proyectos.
No me quedó mal, pero por decirlo de alguna manera me empecé a emocionar y a contemplar más casuísticas. Así que se fue complicando todo, hasta un punto en el que casi yo mismo me perdía en el código.
También es cierto que por aquel entonces era un programador.
Para lo que si me sirvió es para aprender algunas cosas.
- Los componentes tienen que estar muy bien pensados para que sean buenos, y a veces aun a pesar de estar muy pensados no son del todo buenos. Se necesitan personas con muchos conocimientos de diseño.
- Un componente no es un código con muchos parámetros, que es lo que suele pasar cuando se hacen las cosas con prisas.
- Hay que ser humilde y no pretender abarcar mucho, ya que puede que si abarcas demasiado acabes generando un monstruo que no controles.
Recuerdo una empresa en la que trabajé en la que tenían desarrollado un framework para hacer las cosas más rápidas, habían invertido mucho tiempo, pero por ejemplo para hacer un simple combo había que tocar en 7 sitios. ¡7 sitios! . Si era super flexible, flexibilidad que dudo mucho que nunca se llegase a usar, pero lo que si era cierto es que costaba un huevo y parte del otro sacar adelante cualquier mantenimiento.