Правила именования
Цель: Создать предсказуемую и читаемую кодовую базу, где имена говорят сами за себя.
См. также: Сегменты - где размещать различные типы файлов.
Именование файлов и директорий
MUST
- Директории и файлы именуются в
lower-kebab-case.
✅ CORRECT
user-profile/
use-get-user-data.ts
avatar-upload.tsx
article-list.module.css
format-date.ts
❌ FORBIDDEN
UserProfile/
useGetUserData.ts
AvatarUpload.tsx
articleList.module.css
formatDate.ts
- Компоненты именуются в
UpperCamelCase(PascalCase).
// ✅ CORRECT
export function UserProfile() {}
export function ProgressIndicator() {}
export function ArticleCard() {}
// ❌ FORBIDDEN
export function userProfile() {}
export function progress_indicator() {}
export function articlecard() {}
- Файл
index.tsиспользуется только как Public API модуля.
// ✅ CORRECT
// entities/article/index.ts - Public API
export { ArticleCard } from './ui/article-card';
export { useArticle } from './model/use-article';
// ❌ FORBIDDEN
// entities/article/ui/index.tsx - анонимный компонент
export default function Article() {}
FORBIDDEN
- Использовать анонимные названия файлов (кроме
index.tsдля Public API).
❌ FORBIDDEN
styles.ts
index.module.scss
index.tsx
component.tsx
✅ CORRECT
article-card.module.scss
use-article.ts
article-card.tsx
index.ts (только для Public API)
A/HC/LC Pattern для функций и переменных
Визуальная схема паттерна
Структура паттерна
[Prefix]? + Action + HighContext + [LowContext]?
| Элемент | Обязательность | Примеры | Когда применять |
|---|---|---|---|
| Prefix (P) | Опционально | is, has, should, can | Для boolean переменных |
| Action (A) | Обязательно | get, set, fetch, handle | Всегда для функций |
| High Context (HC) | Обязательно | User, Article, Order | Основная сущность |
| Low Context (LC) | Опционально | List, Count, Error | Уточнение при необходимости |