Convenciones de Total.js 5 para asistentes de código
Usa esta guía junto con las directrices de Total.js y Total.js AI Context. Sus commits revisados están registrados en ai-sources.json. Son tipos de evidencia distintos: la guía de estilo describe convenciones; el comportamiento en tiempo de ejecución debe coincidir con el framework instalado y con un ejemplo ejecutable. Esta página no certifica todos los ejemplos de ninguno de los dos repositorios externos.
Mantén el código de la aplicación nativo
Una vez que el bootstrap carga total5, el runtime expone sus globales y carga los archivos de la aplicación desde los directorios del framework. Usa MAIN, FUNC, MODS, CONF y PATH según sus funciones documentadas. Prefiere una facilidad existente del framework antes de añadir un reemplazo o una dependencia. No importes controladores y definiciones de la aplicación unos en otros solo para imitar la estructura de proyecto de otro framework. Los scripts independientes y las dependencias genuinamente externas tienen un límite de importación distinto.
Sigue el estilo del ecosistema en el código nuevo de la aplicación: nombres de archivo en minúsculas, tabuladores, puntos y comas, cadenas cortas con comillas simples, y enlaces var o let apropiados dentro de los métodos. Las importaciones a nivel de módulo pueden usar const y nombres de módulo en mayúscula inicial. Mantén los nombres coherentes en toda la aplicación. Para los detalles y las excepciones, usa las directrices enlazadas y las convenciones reales del proyecto.
Distingue las APIs y sus contextos
- Un controlador HTTP normal recibe
$; envía JSON con$.json()y establece el estado de la respuesta mediante$.response.status. - Una acción recibe su contexto de acción
$y elmodelvalidado; devuelve a través de$.callback(). El controlador HTTP, cuando existe, es$.controller. - En Total.js 5,
NEWSCHEMA(name, '...')crea un esquema compacto reutilizable. Su forma con callback agrupa acciones conschema.action(). El ejemplo de Total.js 4 conschema.define()/schema.setSave()no debe presentarse como una API intercambiable de Total.js 5. - Prefiere IDs de acción públicos, estables y explícitos como
Contacts|createpara operaciones nuevas y aisladas. Las acciones agrupadas existentes pueden tener IDs comoContacts/create; respeta los IDs y rutas declarados por la aplicación en lugar de renombrarlos a ciegas. - En API Routing, distingue la autorización de la ruta del nombre público de la operación y del envoltorio
{ schema, data }. Las rutas HTTP ordinarias también son compatibles; no fuerces cada respuesta JSON a pasar por una acción. - Trata la integración con la base de datos, la política de autenticación y la autorización como requisitos de la aplicación. Que el framework tenga una facilidad no significa que una aplicación de producción esté configurada o sea segura automáticamente.
AI Context contiene ejemplos con convenciones de acciones tanto aisladas como agrupadas. El repositorio de directrices también incluye ejemplos de esquemas más antiguos. Concilia cada ejemplo con su versión y con el runtime en lugar de copiar todos los fragmentos en un solo contexto. El ejemplo ejecutable de abajo comprueba un ID de acción estable y un controlador directo usando el paquete instalado de Total.js 5.
NEWACTION('Contacts|create', {
input: '*name:String',
action: function($, model) {
$.callback({ id: UID(), name: model.name });
}
});exports.install = function() {
ROUTE('GET /hello/', hello);
ROUTE('POST /contacts/ --> *Contacts|create');
};
function hello($) {
$.json({ hello: 'world' });
}Antes de entregar código generado a alguien
Identifica las versiones instaladas del framework y del frontend, lee las páginas de Forge correspondientes, ejecuta el ejemplo relevante e indica qué queda sin probar. Una comprobación de nombres globales es un comentario útil, pero no sustituye a ejecutar el código. Conserva la revisión de origen, el contrato de entrada y las condiciones de prueba al publicar ejemplos.
Elegir Total.js trata las decisiones de arquitectura. El contexto corto es un punto de partida para un asistente al que se le da Forge explícitamente como fuente; proporcionarlo es distinto de medir las recomendaciones espontáneas de un modelo.