HIX 2.0

HIX 2.0
 
Por fin conseguí mi objetivo, que era la de poder disponer una versión de HIX completamente refactorizada y con una diseño y arquitectura moderna.
 
https://raw.githubusercontent.com/carles9000/hix/refs/heads/main/resources/images/logo240.png
 

Historia 

Sobre marzo de 2026 estuve a las puertas de lanzar la versión 1.5 de HIX con un montón de  funcionalidades. Fue cuando todos empezábamos ya a disponer de las herramientas de IA de tipo CLI y podíamos ya exprimir todos los códigos. Justo antes de lanzar esa versión, en un fin de semana lluvioso y le pedí a mi IA que "destrozase" un programa con HIX 1.5 y el resultado fue para mi... desastroso.
 
Habian muchos agujeros que incluso yo los desconocía, carencia de muchas funcionalidades que no disponíamos y en consecuencia el resultado se traducía no en un sistema que no funcionase, sino que habían muchos temas que tratar y de las que el servidor carecía.
 
Fue cuando paré el lanzamiento de la 1.5 y miré con la IA de solucionar todas esas carencias, pero de alguna manera la IA me miró y me dijo mirando a los ojos: "No podemos!" 
 
El problema general era la arquitectura de ese servidor que como muchos sabréis fue una evolución del escrito por Mindaugas y que durante muchos años sirvió para muchos para poder crear sus soluciones web/ws pero que hoy en día no se adapta a nuestros escenarios. 
 
Fui durante poco mas de un año estudiando como funcionaba ese servidor e iba añadiendo las carencias que iba viendo y fue poco a poco como también iba asimilando como funcionaba un servidor. 
 
Objetivo
 
Ante esta solución y viendo que no podíamos "parchear" las nuevas carencias o posibles bugs tomé la decisión de volver a crear un server, con todo lo aprendido y con todo lo que debía de tener. Con la ayuda de CC planificamos el diseño y empezamos a recodificar todo un server web con harbour que nos diera potencia, seguridad y se adaptara a nuestras necesidades.
 
Quería que ademas pudiera  adaptarse a la filosofía HIX que empezamos, si bien sabia que seria incompatible con la vieja versión, la funcionalidad y el objetivo debería ser el mismo: Ofrecer una manera fácil y ágil para los programadores harbour de crear sus soluciones web. 
 
El objetivo principal es dar una buena herramienta de programación web que la puedas usar de manera libre (como cada uno quiera) o usando un standard basado en MVC (HixStyle) de una manera muy transparente.  Este es el objetivo inicial al que por supuesto hemos de añadir una herramienta potente, fiable, robusta,.. y por supuesto hecho en Harbour.
 
 
Diseño 
 
El nuevo HIX explota aun mas toda la configuración en ficheros externos de tipo json que ayudan al diseño de la aplicación si necesidad de tocar el código: parámetros de aplicación, rutas, middlewares, loaders,... el concepto de programación data-driven adaptado al mundo web ! 
 
Este tipo de diseño tiene una doble estrategia y es la de una vez estabilizada esta versión 2.0, poder empezar a trabajar con la IA para crear diferentes agentes, tools, skills,... que ayuden rápidamente a generar los módulos de una aplicación.  
 
A esto se le suma que si optamos por trabajar con HIX usando HIXStyle (entorno MVC) todo seguirá un mimo patrón y estructura de aplicación, por ejemplo nosotros definiremos una carpeta de aplicación (por defecto /www) y dentro tendrá sus carpeta pre-definidas.
www/
 ├── public/         ← the only directory served directly to the browser
 ├── routes/         ← route definitions in JSON
 ├── controllers/    ← endpoint logic (.prg)
 ├── views/          ← templates .view.html
 ├── models/         ← data access (UDbf, SQL, external APIs)
 ├── middlewares/    ← interceptors (auth, csrf, rate-limit, ...)
 ├── errors/         ← error pages
 └── loaders/        ← auto-load on startup (routes, MW, helpers)
 
La gran ventaja es la de aprender a estructurar nuestra aplicación siguiendo un estilo y que cualquiera que coja un proyecto sepa donde buscar el diferente código 
 
Resultado

Una herramienta común para todos, que permita trabajar libremente como queramos o usando una arquitectura de aplicación común para todos usada en muchos sistemas web actuales.
 
El código esta ya disponible  en https://github.com/carles9000/hix y ya tiene listos los scripts de compilación en: 
  • mingw64 (win)
  • msvc64 (win)
  • gcc (linux)  
Y quien no quiera compilar el servidor, dispondrá de una versión en binario ya preparada para iniciar el servidor al primer click, esta fue la primera premisa cuando empeze con HIX.  Recuerdo que un par de personas me dijeron que ellos no querían compilar el servidor, sino solo usarlo y quizás tenían razón, por que limitar a programadores que tengan de instalar compiladores, entornos, librerías,... para poder disponer de HIX ?
 
 
Ejemplos
 
En el repositorio hay una carpeta de /examples 
 
/examples
    +-- api
         +-- api.class        Ejemplo webservices con clases
         +-- api.function    ← Ejemplo webservices con funciones
 
    +-- server               ← Ejemplo servidor
 
    +-- web                  
         +-- crud            ← Ejemplo completo crud
         +-- hi              ← Ejemplo test hix functions
 
 
Resumen
 
Pienso que ahora ya disponemos de un buen servidor, con mucha potencia, fiabilidad, robustez, ... que sigue con la filosofía harbour, hacer fácil lo difícil. 
 
Creo que esta etapa está ya casi cerrada, a disposición de todos en el repositorio y lista para ser usada. 
 
Ahora mirando siguiente reto... ¿Como podemos que la IA coja nuestro servidor base y ayudarnos a crear aplicaciones de manera mas rápida?
 
 
 
 
 

Comentarios

Publicar un comentario