JudgePole/Public/md/ai-dev-rules.md
2026-09-20 17:12:09 +02:00

2.7 KiB

El proyecto tiene un raíz privado con los archivos LICENSE, README.md y .gitignore; luego tiene un lado público el cual es /Public. Dentro de éste un index.html y los directorios data y ecma. En el directorio data se meterá todo lo que no se meta en el repositorio de Git, como configuraciones personalizadas, la base de datos, etc. Mientras que los archivos de Script se meten dentro de ecma el cual tiene la estructura Application para los archivos que funcionen sobre el proyecto de forma diferente o independiente; Utils para archivos totalmente autónomos; Managers para gestores como SettingsManager o I18NManager; Views para las vistas; y Models para los modelos si hicieren falta.

Las reglas de desarrollo son:

  • La sangría es de 4 espacios.
  • Las variables y nombres de funciones, métodos y atributos son Snake Lower Case; el nombre de las clases es en Pascal Case; las constantes de clase o constantes sueltas estarán en Snake Upper Case.
  • El GUI HTML se basa en un sistema que simula DPIs a partir de la unidad de medida em, el cual divide el lado más estrecho del GUI en 40 celdas por defecto. 1em es equivalente a una celda. Cada celda es cuadrada.
  • Todas las clases que se generen han de ser Funciones Constructoras. Los métodos y atributos estáticos tienen que ir vinculados al nombre sin prototype.
  • Todo valor susceptible de ser de configuración ha de estar integrado en el archivo /Public/ecma/Utils/Settings.ecma.js.
  • En HTML, todos los elementos que contengan textos internacionalizados han de llevar el atributo data-i18n con la clave del texto, y en caso de ser campos sin contenido como input, textarea, etc. Han de llevar a mayores el atributo data-i18n-without="true" para indicar que no se añada la traducción a su contenido, sólo a los atributos, si los tuviere, como title, placeholder, etc.
  • Las vistas estará en el directorio /Public/ecma/Views y tendrán como nombre NombreDeVistaView.ecma.js y nombre de clase función constructora NombreDeVistaView y se implementarán en el objeto judge_pole.views con el nombre nombre_de_vista. Cada vista ha de tener un método go para construir y visualizar dicha vista cada vez que se realiza la acción de ir a dicha vista. Cada texto que se muestre tiene que recogerse del método judge_pole.i18n.get y sus claves y valores en el archivo /Public/ecma/Utils/I18N.ecma.js en cada uno de los idiomas deseados.
  • Cualquier HTML que se haga, salvo que no se pueda realizar por dicho método, ha de estar hecho con el método judge_pole.html.
  • Los estilos han de agregarse por bloques que se deseen al archivo /Public/ecma/Utils/Styles.ecma.js en formato del método Common.SCSS.