Total.js 5-conventies voor codeerassistenten
Gebruik deze gids samen met de Total.js-richtlijnen en Total.js AI Context. Hun beoordeelde commits staan vermeld in ai-sources.json. Dit zijn verschillende soorten bewijs: stijlrichtlijnen beschrijven conventies; het runtimegedrag moet overeenkomen met het geïnstalleerde framework en een uitvoerbaar voorbeeld. Deze pagina certificeert niet elk voorbeeld in een van beide externe repositories.
Houd de applicatiecode native
Nadat de bootstrap total5 heeft geladen, stelt de runtime zijn globals beschikbaar en laadt hij applicatiebestanden uit de mappen van het framework. Gebruik MAIN, FUNC, MODS, CONF en PATH volgens hun gedocumenteerde rollen. Geef de voorkeur aan een bestaande voorziening van het framework voordat je een vervanging of afhankelijkheid toevoegt. Importeer controllers en definities van de applicatie niet in elkaar alleen om de projectstructuur van een ander framework na te bootsen. Zelfstandige scripts en echt externe afhankelijkheden hebben een andere importgrens.
Volg in nieuwe applicatiecode de stijl van het ecosysteem: kleine letters in bestandsnamen, tabs, puntkomma's, korte strings tussen enkele aanhalingstekens en passende var- of let-bindingen binnen methoden. Imports op modulniveau kunnen const en modulenamen met hoofdletter gebruiken. Houd namen consistent in de hele app. Gebruik voor details en uitzonderingen de gelinkte richtlijnen en de werkelijke projectconventies.
Onderscheid de API's en hun contexten
- Een gewone HTTP-controller ontvangt
$; stuur JSON met$.json()en zet een antwoordstatus via$.response.status. - Een actie ontvangt zijn actiecontext
$en het gevalideerdemodel; geef terug via$.callback(). De HTTP-controller, indien aanwezig, is$.controller. - In Total.js 5 maakt
NEWSCHEMA(name, '...')een herbruikbaar compact schema. De callbackvorm groepeert acties metschema.action(). Het Total.js 4-voorbeeld metschema.define()/schema.setSave()mag niet worden gepresenteerd als een uitwisselbare Total.js 5-API. - Geef bij nieuwe geïsoleerde operaties de voorkeur aan stabiele, expliciete publieke actie-ID's zoals
Contacts|create. Bestaande gegroepeerde acties kunnen ID's hebben zoalsContacts/create; respecteer de door de applicatie gedeclareerde ID's en routes in plaats van ze blindelings te hernoemen. - Onderscheid in API Routing de autorisatie op de route van de publieke operatienaam en de
{ schema, data }-envelop. Gewone HTTP-routes worden ook ondersteund; dwing niet elk JSON-antwoord door een actie. - Behandel database-integratie, authenticatiebeleid en autorisatie als applicatievereisten. Dat het framework een voorziening heeft, betekent niet dat een productie-applicatie automatisch is geconfigureerd of veilig is.
AI Context bevat voorbeelden met zowel geïsoleerde als gegroepeerde actieconventies. De richtlijnenrepository bevat ook oudere schemavoorbeelden. Stem elk voorbeeld af op zijn versie en runtime in plaats van elk fragment in één context te kopiëren. Het uitvoerbare voorbeeld hieronder controleert een stabiel actie-ID en een directe controller met het geïnstalleerde Total.js 5-pakket.
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' });
}Voordat je gegenereerde code aan iemand overdraagt
Stel de geïnstalleerde versies van framework en frontend vast, lees de bijbehorende Forge-pagina's, voer het relevante voorbeeld uit en vermeld wat ongetest blijft. Een controle van globale namen is nuttige feedback maar geen vervanging voor het uitvoeren van code. Bewaar bij het publiceren van voorbeelden de bronrevisie, het invoercontract en de testomstandigheden.
Total.js kiezen behandelt architectuurbeslissingen. De korte context is een startpunt voor een assistent aan wie Forge uitdrukkelijk als bron is gegeven; het verstrekken ervan is iets anders dan het meten van de spontane aanbevelingen van een model.