HIX Style - The standard way
Hoy es un dia especial. Hoy he publicado la primera parte de HIX Style en el repo de HIX y para mi significa un gran paso.
Despues de mas de un mes de trabajo finalmente se pudo crear el módulo de vistas. Pero... ¿que es HIX Style ?
Indepedientemente de que podamos usar HIX como cada uno desee, HIX Style es el objetivo final. Poder crear una manera de programar web con Harbour que todos podamos compartir. Se ha de acabar que cada uno siga su propia manera de desarrollar una aplicación.
HIX Style (The Standard Way)
Es
la joya de la corona del proyecto y el núcleo de este documento. Basado en el
concepto de "Convención sobre Configuración", HIX-Style busca
estandarizar el desarrollo web en Harbour.
- Un lenguaje común: Al seguir una metodología unificada, inspirada en varios sistemas, cualquier programador HIX puede abrir el proyecto de otro y entenderlo al instante. Se acaba el "cada uno a su manera". Creo que este ha sido uno de los grandes males de la comunidad, que cada uno pudiera hacer sus programas sin seguir unas normas y convenciones, que de alguna manera ayudaria a “hablar” a todos de la misma manera. Ver el proyecto de otro programador y saber donde tenemos de mirar, no tiene precio y es la manera correcta de hacerlo.
- Legibilidad y Mantenibilidad: La estructura MVC bien definida asegura que el código sea limpio, escalable y profesional.
- Colaboración Comunitaria: Facilita la creación de librerías y módulos intercambiables, potenciando el crecimiento de una comunidad que comparte soluciones en lugar de reinventar la rueda.
Básicamente, y asi iremos haciéndolo, hemos entre otras cosas de aprender a separar la lógica de nuestras aplicaciones de las vistas. Por un lado la lógica se basará en la ejecucion de un proceso que lo realizaremos con Harbour y es allá donde la mayoria se desenvuelve perfectamente. Una vez hemos conseguido el objetivo en ese controlador, simplemente enviaremos el resultado a las vistas para que "pinten" estos datos.
Separando la logica de la vista tendremos 2 entornos separados, cada uno hace lo suyo y nos ayudará perfectamente a integrarlo a nuestras IA. No deseo que una IA de momento toque mi logica (de momento) mas bien pintar esos resultados. Y es aqui donde le diremos, modifica, crea, cambia,... el fichero de la vista. Yo te pasaré los datos y tu espabila, solo te dejo tocar el fichero resultado. No nos podrá tocar la logica para nada en principio, asi que por este lado de momento estaremos cubiertos de que no nos altere nada 😀.
Para llega a este punto hemos de empezar a trabajar en seste sentido. 1 fichero de logica, 1 fichero de vista.
Basicamente HIX tendrá la funcion UView( <cFile>, ... ) que es la que construirá nuestra vista. Llanaremos a un fichero <cFile> y le pasaremos tantos parámetros como necesitemos.
He puesto en la wiki todo lo relativo a este punto de las vistas y allá se ira publicando poco a poco los demas avances.
https://github.com/carles9000/hix/wiki/readme
Un fichero de vista ahora en HIX podria tener una vista parecida a esta:
@args aItems
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test HixStyle</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<div class="container py-5">
<div class="text-center mb-5">
<h1 class="display-6 fw-semibold text-secondary">Popular places this holiday</h1>
<p class="lead text-muted">Example of handling view directives with HIX</p>
</div>
@foreach oItem in aItems
@if oItem[2]
<div class="alert alert-success" role="alert">
<b>{{ oItem[1]}}</b><br>
Popular {{ Stars( oItem[3] ) }}
</div>
@else
<div class="alert alert-dark" role="alert">
<b>{{ oItem[1]}}</b><br>
Popular {{ Stars( oItem[3] ) }}
</div>
@endif
@endforeach
<hr>
</div>
@prg
function Stars( n )
// Your proc...
retu Replicate( '⭐', n )
@endprg
</head>
</html>
Podeis observar como mezclamos directivas en clave Harbour que fácilmente podemos entender y que nos ayuda a manejar el flujo de pintar la pantalla.
Técnicamente ha sido un reto crear el método de las views, ya que se trata de varios procesos que se trabajan para poder obtener una view: parsear unas directivas, scopes, transpilación, compilación. El resultado un fichero hrb que estará listo para ejecutar en la siguiente llamada. Con lo facil que era llamar un simple html... 😅.
Quizás cuando se termine este proyecto podamos compartir toda la parte de técnica, realmente compleja, pero de momento hemos de concentrarnos en encajar bien todas las piezas del puzle, de momento una de las mas duras ya esta funcionando y muy bien, por esto he empezado diciendo que hoy es un dia especial, porque esta parte compleja ya es una realidad.
De momento ya esta disponible y quien quiera ya empezar a abordar esta parte, la tiene a su disposicion para poder practicar. Esta parte formará del proceso final de ensamblado correcto de nuestra aplicación. La ayuda de la IA para que nos ayude a crear las vistas siguiendo nuestras directivas va a ser muy mágico, ya vereis... 😉.
HIX Style ya está aqui
Seguimos!
C.
Great !
ResponderEliminarSin palabras Chaly. Simplemente Gracias.
ResponderEliminarExcelente trabajo Charly, gracias!
ResponderEliminar