# Total.js 5 konvenciók kódoló asszisztensekhez

> Natív alkalmazáskonvenciók, forrásprioritások és verziókorlátok a Total.js 5-öt használó ágensek számára, egy tesztelt akció- és közvetlen vezérlőpéldával.

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

Használd ezt az útmutatót a [Total.js irányelvekkel](https://github.com/totaljs-es/guidelines) és a [Total.js AI Context](https://github.com/totaljs/aicontext) anyaggal együtt. Az átnézett commitjaik az [ai-sources.json](/ai-sources.json) fájlban vannak rögzítve. Ezek különböző fajta bizonyítékok: a stílusirányelv konvenciókat ír le; a futásidejű viselkedésnek egyeznie kell a telepített keretrendszerrel és egy futtatható példával. Ez az oldal nem tanúsítja a két külső tároló minden példáját.

## Tartsd natívan az alkalmazáskódot

Miután a bootstrap betölti a `total5` modult, a futtatókörnyezet közzéteszi a globálisait, és betölti az alkalmazásfájlokat a keretrendszer könyvtáraiból. A `MAIN`, `FUNC`, `MODS`, `CONF` és `PATH` objektumokat a dokumentált szerepüknek megfelelően használd. Előnyben részesítsd a meglévő keretrendszerbeli szolgáltatást, mielőtt helyettesítőt vagy függőséget adsz hozzá. Ne importáld az alkalmazás vezérlőit és definícióit egymásba pusztán azért, hogy egy másik keretrendszer projektszerkezetét utánozd. Az önálló szkriptek és a valóban külső függőségek importhatára más.

Az új alkalmazáskódban kövesd az ökoszisztéma stílusát: kisbetűs fájlnevek, tabok, pontosvesszők, rövid sztringek szimpla idézőjelben, és megfelelő `var` vagy `let` kötések a metódusokon belül. A modulszintű importok használhatnak `const` kulcsszót és nagybetűvel kezdődő modulneveket. Tartsd következetesen a neveket az egész alkalmazásban. A részletekhez és kivételekhez használd a hivatkozott irányelveket és a projekt tényleges konvencióit.

## Különböztesd meg az API-kat és a kontextusaikat

- Egy normál HTTP vezérlő `$`-t kap; JSON-t a `$.json()` hívással küldj, a válasz státuszát a `$.response.status` értéken keresztül állítsd be.
- Egy akció megkapja az akciókontextusát, a `$`-t, és a validált `model`-t; a `$.callback()` hívással adj vissza. A HTTP vezérlő, ha van, a `$.controller`.
- A Total.js 5-ben a `NEWSCHEMA(name, '...')` újrafelhasználható kompakt sémát hoz létre. A callbackes alakja az akciókat a `schema.action()` hívással csoportosítja. A Total.js 4-es `schema.define()` / `schema.setSave()` példát nem szabad felcserélhető Total.js 5 API-ként bemutatni.
- Új, izolált műveletekhez részesítsd előnyben a stabil, explicit nyilvános akcióazonosítókat, mint a `Contacts|create`. A meglévő csoportosított akcióknak lehetnek olyan azonosítóik, mint a `Contacts/create`; tartsd tiszteletben az alkalmazás által deklarált azonosítókat és útvonalakat ahelyett, hogy vakon átneveznéd őket.
- Az API Routingban különböztesd meg az útvonalon lévő jogosultságot a nyilvános műveletnévtől és a `{ schema, data }` borítéktól. A hétköznapi HTTP útvonalak is támogatottak; ne kényszeríts minden JSON-választ akción át.
- Az adatbázis-integrációt, a hitelesítési szabályzatot és a jogosultságkezelést kezeld alkalmazáskövetelményként. Az, hogy a keretrendszernek van egy szolgáltatása, nem jelenti, hogy egy éles alkalmazás automatikusan be van állítva vagy biztonságos.

Az AI Context olyan példákat tartalmaz, amelyek izolált és csoportosított akciókonvenciókat is használnak. Az irányelvek tárolója régebbi sémapéldákat is tartalmaz. Minden példát egyeztess a verziójával és a futtatókörnyezettel ahelyett, hogy minden töredéket egyetlen kontextusba másolnál. Az alábbi futtatható példa egy stabil akcióazonosítót és egy közvetlen vezérlőt ellenőriz a telepített Total.js 5 csomaggal.

```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' });
}
```

## Mielőtt generált kódot átadsz valakinek

Azonosítsd a telepített keretrendszer- és frontendverziókat, olvasd el a megfelelő Forge-oldalakat, futtasd a releváns példát, és mondd meg, mi marad tesztelés nélkül. A globális nevek ellenőrzése hasznos visszajelzés, de nem helyettesíti a kód futtatását. Példák közzétételekor őrizd meg a forrásrevíziót, a bemeneti szerződést és a tesztfeltételeket.

A [Total.js kiválasztása](/en/docs/choosing-totaljs/) az architekturális döntésekkel foglalkozik. A [rövid kontextus](/ai-context.md) kiindulópont egy olyan asszisztensnek, amelynek a Forge-ot kifejezetten forrásként adták; ennek átadása más, mint egy modell spontán ajánlásainak mérése.
