# Lo stile di codice di Total.js: nomi, file, CSS, SQL e componenti

> Le convenzioni della comunità Total.js per JavaScript, nomi, schemi, require(), CSS, plugin e componenti di jComponent, script SQL e cartelle, perché tutti i progetti si leggano allo stesso modo e un team o un assistente IA possa proseguirli.

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

I progetti Total.js condividono uno stesso stile, ed è un punto di forza: ne apri uno qualsiasi e sai dove sono le cose e come sono scritte. Questa pagina raccoglie in un unico posto le convenzioni delle [Total.js guidelines](https://github.com/totaljs-es/guidelines) (la revisione consultata è registrata in [ai-sources.json](/ai-sources.json)). Segui prima lo stile del progetto in cui lavori; queste sono le regole predefinite per il codice nuovo. Per il lato framework, leggi le [convenzioni di Total.js 5 per gli assistenti di codice](/en/docs/totaljs-agent-conventions/).

## JavaScript

- **File:** nomi in minuscolo, con trattini al posto dei trattini bassi (`user-profile.js`).
- **Formato:** tabulazioni (larghezza 4), nessuno spazio in più e un punto e virgola alla fine di ogni istruzione.
- **Stringhe:** apici singoli per le stringhe brevi.
- **Variabili:** usa `var` o `let` dentro i metodi e riserva `const` alla parte alta di un modulo.
- **Cicli:** dove si adatta, si preferisce un `for` classico a `forEach()`.
- **Dipendenze:** tienile al minimo e segui il codice già presente.

## Nomi che viaggiano tra i progetti

Usa ovunque lo stesso nome per la stessa cosa, così il codice si può spostare tra i progetti e leggere a colpo d’occhio:

| Nome | Uso |
|---|---|
| `id`, `name`, `value`, `email` | l’identificatore, il nome, il valore e l’e-mail consueti |
| `items` or `arr`, `item` | un elenco e uno dei suoi elementi |
| `tmp` | un valore temporaneo |
| `dtcreated`, `dtupdated` | date di creazione e di aggiornamento |

Gli **schemi** hanno un nome al plurale che inizia con la maiuscola (`Contacts`), e gli identificatori si creano con `UID()`.

## Usare require()

In cima a un modulo usa `const` e fai iniziare il nome della variabile con la maiuscola: `const Fs = require('fs');`.

## CSS

- Nomi di file in minuscolo con trattini.
- Scrivi ogni regola di stile su una sola riga.
- Non scrivere a mano i prefissi dei browser: aggiungi il commento `/*auto*/` e Total.js prefissa le regole per te.
- Apici singoli, e CSS semplice invece di LESS o SASS.

## Plugin e componenti (jComponent)

- Nomi in minuscolo per plugin, componenti e voci di `FUNC.`, `MAIN.` e `REPO.`, e variabili in minuscolo.
- Evita i trattini bassi dove puoi e mantieni l’annidamento a due o tre livelli.
- Un plugin si scrive con `exports.`; un componente usa `self`, `config` e `cls`.
- Progetta per il riuso.

## Script SQL

- Nomi di tabelle e campi in minuscolo, tabulazioni per l’indentazione e punto e virgola alla fine di ogni istruzione.
- Rimuovi i cast non necessari, formatta lo script e tieni tabelle, viste, procedure o funzioni e indici in script separati.

| Prefisso | Per |
|---|---|
| `tbl_` | tabelle, con il nome al singolare |
| `cl_` | liste di codici |
| `view_` | viste |
| `sp_` | stored procedure |
| `fn_` | funzioni |

Nei campi, `dt` inizia una data, `is` inizia un booleano, le chiavi seguono lo schema `id` o `userid` e si usa `text` al posto di `varchar`. Usa `id`, `name` e `dtcreated` dove si adattano e ordina le colonne come identificatori, campi principali, numeri, booleani e date, con i vincoli di chiave esterna alla fine.

## Cartelle

Metti le immagini in `/img/`, gli script in `/js/`, gli stili in `/css/`, i font in `/fonts/` e i video in `/videos/`, e nomina i file con i trattini.

## Perché aiuta

Uno stile condiviso rende un progetto facile da consegnare, rivedere ed estendere, e dà a un assistente IA uno schema chiaro da seguire. Dai al tuo assistente questa pagina insieme alle [convenzioni di Total.js 5 per gli assistenti di codice](/en/docs/totaljs-agent-conventions/) e il suo codice si accorderà con il resto della tua applicazione.
