type: standard
aspect: naming
title: "Именование проектов"
version: 1.0.0
date: 2026-02-19
status: active
Стандарт именования проектов, папок и идентификаторов.
ИМЯ = LOWERCASE + ДЕФИСЫ + БЕЗ ПРЕФИКСОВ
Простота, читаемость, универсальность.
| Правило | Обязательно | Пример |
|---|---|---|
| Lowercase | ✅ Да | pirotehnika, не Pirotehnika |
| Латиница | ✅ Да | lideravto, не лидеравто |
| Дефисы | ✅ Для разделения | ideal-shop, не ideal_shop |
| Без пробелов | ✅ Да | my-project, не my project |
| Без точек | ✅ Да (кроме доменов) | my-app, не my.app |
| Короткое | ⚠️ Желательно | 3-15 символов |
Разрешено:
- a-z (строчные латинские буквы)
- 0-9 (цифры, не в начале)
- - (дефис для разделения слов)
Запрещено:
- A-Z (заглавные буквы)
- _ (подчёркивание)
- пробелы
- спецсимволы (@, #, $, etc.)
- кириллица
Русские названия → латиница по ГОСТ 7.79-2000 (System B):
| Русский | Транслит | Проект |
|---|---|---|
| Пиротехника | pirotexnika → pirotehnika | ✅ |
| Лидер Авто | lider avto → lideravto | ✅ |
| Идеальный Магазин | ideal'nyj magazin → ideal-shop | ✅ |
Упрощения:
- х → h (не x)
- ж → zh (не j)
- ч → ch (не č)
- Объединять слова через дефис, а не пробел
[org-type]-[domain]-[name]
Примеры:
- org-pirotehnika — организация "Пиротехника"
- it-crm-module — IT-проект CRM модуль
- biz-launch-2024 — бизнес-проект запуск 2024
НО: Обычно достаточно просто name без префиксов.
{name}
Примеры:
- pirotehnika — проект Пиротехника
- lideravto — проект Лидер Авто
- ideal-shop — проект Идеальный Магазин
Префиксы только если:
- Много проектов с одинаковыми именами
- Нужна явная категоризация в списке
| Тип | Формат | Пример |
|---|---|---|
| Организация | {name} |
pirotehnika |
| Продукт | {product} |
fireworks-shop |
| Кампания | {campaign}-{year} |
summer-sale-2024 |
| Инициатива | {initiative} |
cost-reduction |
| Тип | Формат | Пример |
|---|---|---|
| Приложение | {app-name} |
crm-system |
| Модуль | {module} |
auth-module |
| Сервис | {service} |
api-gateway |
| Библиотека | {lib} |
data-parser |
| Тип | Формат | Пример |
|---|---|---|
| Сервер | {purpose}-server |
prod-server |
| База данных | {db-name} |
analytics-db |
| Конфиг | {env}-config |
staging-config |
projects/
├── org/ ← тип проекта
│ ├── pirotehnika/ ← имя проекта (lowercase)
│ └── lideravto/
├── personal/
│ └── my-blog/
└── experimental/
└── test-project/
projects/org/pirotehnika/
├── @ozon.api/ ← модуль (@ + имя + тип)
├── @nocodb.pim/
└── @telegram.bot/
Формат модуля:
@{name}.{type}/
Примеры:
- @ozon.api/ — OZON API модуль
- @parser.xml/ — XML parser
- @connector.1c/ — 1C connector
name: "pirotehnika" # Короткое имя (lowercase)
slug: "pirotehnika" # URL-совместимое (то же что name)
full_name: "Пиротехника" # Полное русское название
title: "Пиротехника" # Отображаемое имя
git@github.com:org/project-name.git
Правила:
- Lowercase
- Дефисы (не подчёркивания)
- Без пробелов
docker run {org}/{project}:{version}
Примеры:
- pirotehnika/web:latest
- lideravto/api:1.0.0
{project}_{module}_{env}
Примеры:
- pirotehnika_main_prod
- lideravto_crm_dev
Подробнее: naming-database.md
Projects/ ← Заглавная
My Project/ ← Пробелы
project_name/ ← Подчёркивания
2024-project/ ← Начинается с цифры
проект/ ← Кириллица
PRJ-001/ ← Код вместо имени
very-long-project-name-that-is-hard-to-type/ ← Слишком длинное
projects/
my-project/
project-name/
project-2024/
proekt/
prj1/
short-name/
КРИТИЧНО: Переименование проекта затрагивает:
- Папки
- Git репозиторий
- Базы данных
- Конфиги
- Документацию
- Внешние ссылки
Алгоритм:
1. Создать новую папку с правильным именем
2. Скопировать содержимое
3. Обновить все ссылки в index.yaml, CLAUDE.md
4. Обновить конфиги (БД, API)
5. Протестировать
6. Удалить старую папку
7. Обновить git remote (если нужно)
Команды:
# Переименовать папку
mv old-name new-name
# Обновить git remote
git remote set-url origin git@github.com:org/new-name.git
# Обновить базу данных
RENAME DATABASE old_db TO new_db;
| Стандарт | Связь |
|---|---|
| naming-files.md | Именование файлов внутри проекта |
| naming-database.md | Именование таблиц и БД |
| naming-variables.md | Именование переменных в коде |
| typology-project-types.md | Типы проектов |
| structure-project.md | Структура проекта |
# projects/org/pirotehnika/index.yaml
name: "pirotehnika"
slug: "pirotehnika"
full_name: "Пиротехника"
title: "Интернет-магазин пиротехники"
Структура:
projects/org/pirotehnika/
├── @ozon.api/
├── @nocodb.pim/
└── @site.opencart/
# projects/org/ideal-shop/index.yaml
name: "ideal-shop"
slug: "ideal-shop"
full_name: "Идеальный Магазин"
title: "Drupal тема для интернет-магазинов"
Структура:
projects/org/ideal-shop/
└── theme/
├── src/
├── dist/
└── drupal/
Версия: 1.0.0
Статус: active
Владелец: architect