# Стилът на кода на Total.js: имена, файлове, CSS, SQL и компоненти

> Конвенциите на общността на Total.js за JavaScript, имена, схеми, require(), CSS, добавки и компоненти на jComponent, SQL скриптове и папки, така че всеки проект да се чете еднакво, а екип или AI асистент да може да го продължи.

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

Проектите на Total.js споделят един стил и това е сила: отваряте кой да е и знаете къде са нещата и как са написани. Тази страница събира на едно място конвенциите от [Total.js guidelines](https://github.com/totaljs-es/guidelines) (прегледаната ревизия е записана в [ai-sources.json](/ai-sources.json)). Първо следвайте стила на проекта, в който работите; това са правилата по подразбиране за нов код. За страната на рамката прочетете [конвенции на Total.js 5 за асистенти за код](/en/docs/totaljs-agent-conventions/).

## JavaScript

- **Файлове:** имена с малки букви, с тирета вместо долни черти (`user-profile.js`).
- **Оформление:** табулации (ширина 4), без излишни интервали и точка и запетая в края на всеки оператор.
- **Низове:** единични кавички за късите низове.
- **Променливи:** използвайте `var` или `let` в методите и пазете `const` за началото на модула.
- **Цикли:** където е подходящо, се предпочита класически `for` пред `forEach()`.
- **Зависимости:** пазете ги минимални и следвайте кода, който вече съществува.

## Имена, които пътуват между проектите

Използвайте навсякъде едно и също име за едно и също нещо, за да може кодът да се премества между проектите и да се чете с един поглед:

| Име | Употреба |
|---|---|
| `id`, `name`, `value`, `email` | обичайният идентификатор, име, стойност и имейл |
| `items` or `arr`, `item` | списък и един от неговите елементи |
| `tmp` | временна стойност |
| `dtcreated`, `dtupdated` | дати на създаване и на обновяване |

**Схемите** имат име в множествено число, започващо с главна буква (`Contacts`), а идентификаторите се създават с `UID()`.

## Използване на require()

В началото на модул използвайте `const` и започвайте името на променливата с главна буква: `const Fs = require('fs');`.

## CSS

- Имена на файлове с малки букви и тирета.
- Пишете всяко правило за стил на един ред.
- Не пишете префиксите на браузърите на ръка: добавете коментара `/*auto*/` и Total.js ще сложи префиксите вместо вас.
- Единични кавички и обикновен CSS вместо LESS или SASS.

## Добавки и компоненти (jComponent)

- Малки букви за имената на добавки, компоненти и записите в `FUNC.`, `MAIN.` и `REPO.`, както и за променливите.
- Избягвайте долните черти, където можете, и държете влагането на две или три нива.
- Добавката се пише с `exports.`; компонентът използва `self`, `config` и `cls`.
- Проектирайте за повторна употреба.

## SQL скриптове

- Имена на таблици и полета с малки букви, табулации за отстъп и точка и запетая в края на всеки оператор.
- Премахвайте ненужните преобразувания на типове, форматирайте скрипта и пазете таблиците, изгледите, процедурите или функциите и индексите в отделни скриптове.

| Префикс | За |
|---|---|
| `tbl_` | таблици, с името в единствено число |
| `cl_` | списъци с кодове |
| `view_` | изгледи |
| `sp_` | съхранени процедури |
| `fn_` | функции |

В полетата `dt` започва дата, `is` започва булева стойност, ключовете следват модела `id` или `userid`, а вместо `varchar` се използва `text`. Използвайте `id`, `name` и `dtcreated`, където пасват, и подреждайте колоните като идентификатори, основни полета, числа, булеви стойности и дати, с ограниченията за външни ключове накрая.

## Папки

Слагайте изображенията в `/img/`, скриптовете в `/js/`, стиловете в `/css/`, шрифтовете в `/fonts/` и видеата в `/videos/`, а файловете наименувайте с тирета.

## Защо помага

Общият стил прави проекта лесен за предаване, преглед и разширяване и дава на AI асистента ясен образец за следване. Дайте на асистента си тази страница заедно с [конвенции на Total.js 5 за асистенти за код](/en/docs/totaljs-agent-conventions/) и кодът му ще пасва на останалата част от приложението ви.
