# Total.js 5-konventioner för kodningsassistenter

> Konventioner för inbyggda applikationer, källprioriteringar och versionsgränser för agenter som använder Total.js 5, med ett testat exempel på åtgärd och direkt kontroller.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: sv
Content-SHA256: d41681ec2d9fc94ebe4cd6a40c4df76e29ceb42d7b54e92de10d499b709303d4
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

Använd den här guiden tillsammans med [Total.js-riktlinjerna](https://github.com/totaljs-es/guidelines) och [Total.js AI Context](https://github.com/totaljs/aicontext). Deras granskade commits finns i [ai-sources.json](/ai-sources.json). Det är olika slags belägg: stilriktlinjer beskriver konventioner; körtidsbeteendet måste stämma med det installerade ramverket och ett körbart exempel. Den här sidan intygar inte varje exempel i något av de externa förråden.

## Håll applikationskoden inbyggd

När bootstrap har laddat `total5` exponerar körtiden sina globaler och laddar applikationsfiler från ramverkets kataloger. Använd `MAIN`, `FUNC`, `MODS`, `CONF` och `PATH` enligt deras dokumenterade roller. Föredra en befintlig funktion i ramverket innan du lägger till en ersättning eller ett beroende. Importera inte applikationens kontrollrar och definitioner i varandra bara för att efterlikna ett annat ramverks projektstruktur. Fristående skript och verkligt externa beroenden har en annan importgräns.

Följ ekosystemets stil i ny applikationskod: gemena filnamn, tabbar, semikolon, korta strängar inom enkla citattecken och lämpliga `var`- eller `let`-bindningar inuti metoder. Importer på modulnivå kan använda `const` och modulnamn med stor bokstav. Håll namnen konsekventa i hela appen. För detaljer och undantag, använd de länkade riktlinjerna och projektets faktiska konventioner.

## Skilj på API:erna och deras kontexter

- En vanlig HTTP-kontroller får `$`; skicka JSON med `$.json()` och sätt en svarsstatus via `$.response.status`.
- En åtgärd får sin åtgärdskontext `$` och den validerade `model`; returnera via `$.callback()`. HTTP-kontrollern, när den finns, är `$.controller`.
- I Total.js 5 skapar `NEWSCHEMA(name, '...')` ett återanvändbart kompakt schema. Dess callback-form grupperar åtgärder med `schema.action()`. Exemplet från Total.js 4 med `schema.define()` / `schema.setSave()` får inte presenteras som ett utbytbart Total.js 5-API.
- Föredra stabila, explicita publika åtgärds-ID:n som `Contacts|create` för nya isolerade operationer. Befintliga grupperade åtgärder kan ha ID:n som `Contacts/create`; respektera applikationens deklarerade ID:n och rutter i stället för att blint byta namn på dem.
- Skilj i API Routing på auktorisering på rutten, det publika operationsnamnet och `{ schema, data }`-höljet. Vanliga HTTP-rutter stöds också; tvinga inte varje JSON-svar genom en åtgärd.
- Behandla databasintegration, autentiseringspolicy och auktorisering som applikationskrav. Att ramverket har en funktion betyder inte att en produktionsapplikation automatiskt är konfigurerad eller säker.

AI Context innehåller exempel med både isolerade och grupperade åtgärdskonventioner. Riktlinjeförrådet innehåller också äldre schemaexempel. Stäm av varje exempel mot dess version och körtid i stället för att kopiera varje kodsnutt till ett enda sammanhang. Det körbara exemplet nedan kontrollerar ett stabilt åtgärds-ID och en direkt kontroller med det installerade Total.js 5-paketet.

```js definitions/contacts.js
NEWACTION('Contacts|create', {
	input: '*name:String',
	action: function($, model) {
		$.callback({ id: UID(), name: model.name });
	}
});
```

```js controllers/contacts.js
exports.install = function() {
	ROUTE('GET /hello/', hello);
	ROUTE('POST /contacts/ --> *Contacts|create');
};

function hello($) {
	$.json({ hello: 'world' });
}
```

## Innan du lämnar över genererad kod till någon

Identifiera de installerade versionerna av ramverk och frontend, läs motsvarande Forge-sidor, kör det relevanta exemplet och ange vad som förblir otestat. En kontroll av globala namn är användbar återkoppling men ersätter inte att köra kod. Bevara källrevisionen, indatakontraktet och testförhållandena när du publicerar exempel.

[Att välja Total.js](/en/docs/choosing-totaljs/) behandlar arkitekturbeslut. Det [korta sammanhanget](/ai-context.md) är en startpunkt för en assistent som uttryckligen fått Forge som källa; att tillhandahålla det är något annat än att mäta en modells spontana rekommendationer.
