# Styl kodu Total.js: nazwy, pliki, CSS, SQL i komponenty

> Konwencje społeczności Total.js dla JavaScript, nazw, schematów, require(), CSS, wtyczek i komponentów jComponent, skryptów SQL i folderów, aby wszystkie projekty czytało się tak samo, a zespół lub asystent AI mógł je kontynuować.

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

Projekty Total.js mają wspólny styl i to jest ich siła: otwierasz dowolny i wiesz, gdzie co jest i jak jest napisane. Ta strona zbiera w jednym miejscu konwencje z [Total.js guidelines](https://github.com/totaljs-es/guidelines) (sprawdzona rewizja jest zapisana w [ai-sources.json](/ai-sources.json)). Najpierw stosuj styl projektu, w którym pracujesz; to są domyślne zasady dla nowego kodu. Od strony frameworka przeczytaj [konwencje Total.js 5 dla asystentów kodowania](/en/docs/totaljs-agent-conventions/).

## JavaScript

- **Pliki:** nazwy małymi literami, z myślnikami zamiast podkreślników (`user-profile.js`).
- **Układ:** tabulatory (szerokość 4), bez zbędnych spacji i ze średnikiem na końcu każdej instrukcji.
- **Ciągi:** pojedyncze cudzysłowy dla krótkich ciągów.
- **Zmienne:** w metodach używaj `var` lub `let`, a `const` zostaw na początek modułu.
- **Pętle:** tam, gdzie pasuje, woli się klasyczne `for` od `forEach()`.
- **Zależności:** trzymaj je na minimum i stosuj się do istniejącego kodu.

## Nazwy, które podróżują między projektami

Używaj wszędzie tej samej nazwy dla tej samej rzeczy, aby kod można było przenosić między projektami i czytać na pierwszy rzut oka:

| Nazwa | Użycie |
|---|---|
| `id`, `name`, `value`, `email` | zwykły identyfikator, nazwa, wartość i e-mail |
| `items` or `arr`, `item` | lista i jeden z jej elementów |
| `tmp` | wartość tymczasowa |
| `dtcreated`, `dtupdated` | daty utworzenia i aktualizacji |

**Schematy** mają nazwę w liczbie mnogiej, zaczynającą się wielką literą (`Contacts`), a identyfikatory tworzy się przez `UID()`.

## Używanie require()

Na początku modułu użyj `const` i zacznij nazwę zmiennej wielką literą: `const Fs = require('fs');`.

## CSS

- Nazwy plików małymi literami z myślnikami.
- Zapisuj każdą regułę stylu w jednej linii.
- Nie pisz prefiksów przeglądarek ręcznie: dodaj komentarz `/*auto*/`, a Total.js doda prefiksy za Ciebie.
- Pojedyncze cudzysłowy i zwykły CSS zamiast LESS lub SASS.

## Wtyczki i komponenty (jComponent)

- Małe litery w nazwach wtyczek, komponentów i wpisów `FUNC.`, `MAIN.` i `REPO.` oraz w zmiennych.
- Unikaj podkreślników, gdy się da, i trzymaj zagnieżdżenie na dwóch lub trzech poziomach.
- Wtyczkę pisze się z `exports.`; komponent używa `self`, `config` i `cls`.
- Projektuj z myślą o ponownym użyciu.

## Skrypty SQL

- Nazwy tabel i pól małymi literami, tabulatory do wcięć i średnik na końcu każdej instrukcji.
- Usuń zbędne rzutowania, sformatuj skrypt i trzymaj tabele, widoki, procedury lub funkcje oraz indeksy w osobnych skryptach.

| Prefiks | Dla |
|---|---|
| `tbl_` | tabele, z nazwą w liczbie pojedynczej |
| `cl_` | listy kodów |
| `view_` | widoki |
| `sp_` | procedury składowane |
| `fn_` | funkcje |

W polach `dt` zaczyna datę, `is` zaczyna wartość logiczną, klucze mają postać `id` lub `userid`, a zamiast `varchar` używa się `text`. Używaj `id`, `name` i `dtcreated` tam, gdzie pasują, i porządkuj kolumny jako identyfikatory, pola główne, liczby, wartości logiczne i daty, z ograniczeniami kluczy obcych na końcu.

## Foldery

Obrazy trzymaj w `/img/`, skrypty w `/js/`, style w `/css/`, czcionki w `/fonts/`, a wideo w `/videos/` i nazywaj pliki z myślnikami.

## Dlaczego to pomaga

Wspólny styl ułatwia przekazanie, przegląd i rozwijanie projektu oraz daje asystentowi AI jasny wzór do naśladowania. Daj asystentowi tę stronę razem z [konwencje Total.js 5 dla asystentów kodowania](/en/docs/totaljs-agent-conventions/), a jego kod będzie pasował do reszty Twojej aplikacji.
