Версия: 1.0.0
Дата: 2025-11-19
Идея: Имя должно объяснять назначение
Правильно:
- create_product() — понятно что делает
- user_authentication.py — понятно что внутри
Неправильно:
- func1() — не понятно
- utils.py — слишком общее
Идея: Одинаковые вещи называть одинаково
Правильно:
- create_product(), create_order(), create_user()
Неправильно:
- create_product(), add_order(), new_user()
Оптимально:
- Папки: 1-2 слова
- Файлы: 1-3 слова
- Функции: 2-4 слова
- Переменные: 1-2 слова
Формат: lowercase, одно слово
system/
platform/
projects/
infra/
components/
library/
templates/
scripts/
Исключения:
- platform-v2/ — с суффиксом версии
Формат: lowercase, дефисы для разделения
projects/marketplace/
projects/pim-drupal/
projects/platform-v2/
Правило: {name}/
Формат: prefix + дефис + name
infra/@infra-dev-pro/ # @ для VPS
infra/@remote-beget-kondurov/ # @ для remote
infra/infra-yandex-disk/ # без @ для облака
Префиксы:
- @infra- — VPS серверы
- @remote- — Shared hosting
- infra- — Cloud storage, services
Стандартные имена:
design/ # Проектирование
management/ # Управление
infrastructure/ # Инфра (опц)
solution/ # Решение
Не менять! Эти имена стандартны для всех проектов.
Формат: ЗАГЛАВНЫЕ
CLAUDE.md
README.md
LOCATION.md
Почему: Сразу видно важность файла
Формат: ЗАГЛАВНЫЕ или kebab-case
CONCEPT.md # ЗАГЛАВНЫЕ — важные концепции
ARCHITECTURE.md # ЗАГЛАВНЫЕ — важная архитектура
file-formats.md # kebab-case — спецификации
naming-rules.md # kebab-case — детали
Формат: snake_case
crud.py
user_auth.py
database_helper.py
Формат: kebab-case.{ext}
config.yaml
index.yaml
structure.yaml
Формат: test_{name}.py
test_products.py
test_orders.py
test_auth.py
Переменные: snake_case
user_name = "John"
product_list = []
order_count = 10
Функции: snake_case
def create_product():
pass
def get_user_by_id(user_id):
pass
Классы: PascalCase
class ProductManager:
pass
class OzonAPI:
pass
Константы: SCREAMING_SNAKE_CASE
MAX_RETRY = 3
API_BASE_URL = "https://api.example.com"
Переменные: camelCase
let userName = "John";
const productList = [];
Функции: camelCase
function createProduct() {}
function getUserById(userId) {}
Классы: PascalCase
class ProductManager {}
class OzonAPI {}
Константы: SCREAMING_SNAKE_CASE
const MAX_RETRY = 3;
const API_BASE_URL = "https://api.example.com";
Формат: {type}/{description}
feature/export-to-excel
bugfix/date-formatting
release/v1.1.0
hotfix/critical-bug
Типы:
- feature/ — новая функция
- bugfix/ — исправление бага
- release/ — релиз
- hotfix/ — критичное исправление
Формат: {type}: {description}
feat: add export to Excel
fix: correct date formatting
docs: update README
refactor: simplify auth logic
test: add product tests
chore: update dependencies
Типы:
- feat: — новая функция
- fix: — исправление бага
- docs: — документация
- refactor: — рефакторинг
- test: — тесты
- chore: — рутина (dependencies, etc.)
Формат: v{MAJOR}.{MINOR}.{PATCH}
v1.0.0
v1.1.0
v2.0.0
Использование: Для ссылок на инфраструктуру
infrastructure: "@infra-dev-pro"
В путях:
infra/@infra-dev-pro/
infra/@remote-beget-kondurov/
Использование: Приватные функции/переменные
def _internal_helper(): # приватная функция
pass
_cache = {} # приватная переменная
Использование: Name mangling в Python
class Example:
def __private_method(self): # очень приватный метод
pass
Использование: Файлы только для AI агентов
system/orchestrator.ai.md
system/claude-code.ai.md
Использование: Шаблоны для генерации
templates/project/CLAUDE.template.md
templates/project/README.template.md
Использование: Временные файлы
cache.tmp
processing.tmp
Правило: Добавить в .gitignore
Формат: {YYYY-MM-DD}-{name}-old
archive/2025-11-09-marketplace-old/
archive/2025-10-15-projector-v1/
Формат: {name}DRAFT.md или {name}_archived{date}.md
ARCHITECTURE_v2_DRAFT.md
config_archived_2025-11-09.yaml
Формат: @{version}
@latest → v2.0.0
@stable → v1.5.2
@v1 → v1.9.3
Формат: @{type}
@current → текущая версия
@previous → предыдущая версия
@next → следующая версия
projects/marketplace/
├── CLAUDE.md
├── README.md
├── index.yaml
├── design/
│ ├── PROJECT.md
│ └── spec.md
├── management/
│ └── README.md
└── solution/
└── code/
├── modules/
│ └── products/
│ └── crud.py
└── tests/
└── test_products.py
infra/@infra-dev-pro/
└── config.yaml
infra/infra-new-server/
├── config.yaml
├── CLAUDE.md
├── design/
│ └── plan.md
└── solution/
└── terraform/
├── main.tf
└── variables.tf
❌ Пробелы в именах:
my project/ # ПЛОХО
my-project/ # ХОРОШО
❌ Кириллица в именах папок/файлов:
проект/ # ПЛОХО
project/ # ХОРОШО
❌ Слишком длинные имена:
this_is_a_very_long_function_name_that_does_something_with_products() # ПЛОХО
process_products() # ХОРОШО
❌ Аббревиатуры без контекста:
usrmgr.py # ПЛОХО (что это?)
user_manager.py # ХОРОШО
❌ Смешивание стилей:
getUserName() # JavaScript style
get_user_age() # Python style
# ПЛОХО — выбрать один стиль
Назад: file-formats.md — форматы файлов
Следующий: ../reference/glossary.md — глоссарий