Como programador, en más de una oportunidad he tenido que escribir módulos o librerías de funciones que he podido utilizar en más de un programa o proyecto diferente, en tanto que otras se han perdido entre tantos archivos acumulados en el computador y los he escrito de nuevo cuando los he vuelto a necesitar. Muchas de estas librerías seguro han tenido correcciones y mejoras de comportamiento con el paso del tiempo y las mejoras en los lenguajes usados (mayormente PHP), mejoras que se ven reflejadas en proyectos nuevos en tanto que los viejos quedan como estaban. Vale mencionar también esos programas pequeños escritos para resolver alguna necesidad puntual que luego quedan en desuso ya sea por obsoletos o porque simplemente no recordaba que los tenía y (en este último escenario) termino escribiéndolos otra vez cuando la necesidad se presenta de nuevo. Así las cosas, busqué un organizador de código personal, que pudiera tener en mi computador y me ayudara con este caos programático. Como no encontré uno que supliera mis expectativas, me propuse crear uno en mi “tiempo libre”. Fue así como se gestó esta que he llamado (a falta de un mejor nombre) mi Code Manager, del pseudo-ingles: Mi Organizador de Código o simplemente, miCode.
Algunas fuentes de inspiración vienen de aplicaciones populares como composer o npm, organizadores de código PHP y Javascript (node.js y similares) respectivamente. También influyeron otras aplicaciones algo más específicas como strapi.io para implementación de APIs tipo REST. Con todo esto en la cabeza, comencé a plasmar objetivos claros (al menos para una primera versión), teniendo al final los siguientes hitos por cumplir:
- Reusar los archivos de código para prevenir la proliferación de múltiples copias de un mismo archivo, lo que a su vez permite que las mejoras en ese mismo archivo beneficien a todos los proyectos que lo usan.
- Generar paquetes de distribución que contengan copias solamente de los archivos necesarios.
- Facilitar la generación de documentación, mediante la documentación en código con el modelo Javadoc.
- Proveer una interfaz de administración web amigable para su uso en un computador de escritorio principalmente (en serio, ¿alguien programa desde un móvil?).
Y unos cuantos deseables que podrían tenerse en una primer versión pero que de no ser así, podrían ser hitos para las siguientes:
- Administrar archivos de licencia.
- Control de versiones aplicado a los alcances de esta aplicación.
- Interfaz para entornos corporativos o equipos de progarmación (recuerden, esta propuesta es para uso personal originalmente).
Como mencioné antes, PHP es mi lenguaje de mayor uso y naturalmente esta aplicación iba orientada a ser usada para programas de este lenguaje, sin embargo, surgió la cuestión de “que tal si…” y con unos cuantos ajustes y nuevos objetivos, amplié su concepción para permitir la inclusión de otros tipos de lenguajes, de características similares, como Javascript, Python y de ser necesario, incluso programas en C, por citar algunos. Aunque debo aclarar que no está dentro de mi alcance original proveer la implementación para la inclusión de estos lenguajes, pero al menos queda abierta la puerta para poderlo hacer cuando la situación (o la necesidad) lo requiera.
Finalmente, es mi deseo compartir esta propuesta y la aplicación resultante con el “resto del mundo”, de la misma forma y como una especie de retribución, a todos aquellos fragmentos o incluso códigos completos, que el "resto del mundo" me ha compartido en el pasado y espero sigan compartiendo a futuro, filosofía que ha permitido que el mundo de la programación crezca libre de fronteras, prejuicios y barreras creativas. Recuerden, esta propuesta se realiza considerando que un desarrollador (particularmente aquellos freelance) puedan organizar los diferentes bloques de código funcionales (librerías con funciones y/o clases) que realizan en su trabajo, de forma que puedan reusarlos en sus diferentes proyectos sin estar copiando los archivos una y otra vez. Así mismo, las mejoras que realicen a futuro podrán beneficiar proyectos pasados.
La aplicación podrá ser consultada via github a través del siguiente enlace:
https://github.com/jjmejia/micode-manager
Espero sus comentarios, sugerencias y más que nada, los testimonios de aquellos a quienes esta aplicación pueda resultar de utilidad, sea como un todo o en alguno de sus librerías funcionales.
Quedo atento, felicidades para todos.
Comentarios
Publicar un comentario