architect/standards/arh/naming-projects.md

type: standard
aspect: naming
title: "Именование проектов"
version: 1.0.0
date: 2026-02-19
status: active


Именование проектов

Стандарт именования проектов, папок и идентификаторов.


ПРИНЦИП

ИМЯ = LOWERCASE + ДЕФИСЫ + БЕЗ ПРЕФИКСОВ

Простота, читаемость, универсальность.


ПРАВИЛА ИМЕНОВАНИЯ

1. Формат имени

Правило Обязательно Пример
Lowercase ✅ Да pirotehnika, не Pirotehnika
Латиница ✅ Да lideravto, не лидеравто
Дефисы ✅ Для разделения ideal-shop, не ideal_shop
Без пробелов ✅ Да my-project, не my project
Без точек ✅ Да (кроме доменов) my-app, не my.app
Короткое ⚠️ Желательно 3-15 символов

2. Что можно использовать

Разрешено:
- a-z (строчные латинские буквы)
- 0-9 (цифры, не в начале)
- - (дефис для разделения слов)

Запрещено:
- A-Z (заглавные буквы)
- _ (подчёркивание)
- пробелы
- спецсимволы (@, #, $, etc.)
- кириллица

3. Транслитерация

Русские названия → латиница по ГОСТ 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

IT-проекты

Тип Формат Пример
Приложение {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

ИМЕНОВАНИЕ ПАПОК

Структура workspace

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


ИДЕНТИФИКАТОРЫ

index.yaml

name: "pirotehnika"        # Короткое имя (lowercase)
slug: "pirotehnika"        # URL-совместимое (то же что name)
full_name: "Пиротехника"   # Полное русское название
title: "Пиротехника"       # Отображаемое имя

Git репозиторий

git@github.com:org/project-name.git

Правила:
- Lowercase
- Дефисы (не подчёркивания)
- Без пробелов

Docker контейнер

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/

CHANGELOG

2026-02-19 — v1.0.0


Версия: 1.0.0
Статус: active
Владелец: architect