Platform
    • Naming & Linter Rules
    • Styling Standards
    • Theme
    • Zod & Typing
    • Internationalization
Projects
  • API Connections & Tools
  1. Documentation
  2. Coding Standards

Нейминг и правила линтера

Строгие семантические соглашения, предназначенные для устранения двусмысленности и технического долга через статический анализ.

Стандарты кодирования проекта

Преимущества: Единообразие имен упрощает навигацию, а автоматические проверки линтера предотвращают накопление архитектурного долга.

Пример структуры файлов проекта

01Соглашения о наименовании

Повсеместно используется kebab-case. Исключения: хуки (префикс use), служебные файлы (формат entity.type.ts) и стандартные файлы Next.js.

File Naming Examples
1// kebab-case и семантические расширения 2src/entities/tour/schema/finance-info.schema.ts 3src/entities/tour/api/tour.service.ts 4src/entities/tour/converters/tour.converters.ts 5src/entities/tour/handlers/tour.handlers.ts 6src/entities/tour/mock/tour-finance.mock.ts 7src/entities/tour/constants/tour-status.config.ts

02Типизация и Код:

Интерфейсы — префикс I, типы — префикс T, перечисления — префикс ENUM_. Компоненты — PascalCase.

Typing Conventions
1// Префиксы для типов и интерфейсов 2interface IEntity { ... } 3type TResponse = { ... } 4const ENUM_STATUS = { ... } as const;

03Архитектура импортов FSD

Классическая иерархия слоев: shared — самый нижний, app — самый верхний. Импорты 'снизу вверх' или между элементами одного слоя (кроме shared) строго запрещены.

FSD Import Rules
1// FSD Import Boundaries (Classic) 2app -> [pages, widgets, features, entities, shared] 3pages -> [widgets, features, entities, shared] 4widgets -> [features, entities, shared] 5features -> [entities, shared] 6entities -> [shared] 7shared -> []

04Технические послабления (Relaxations)

Специфические исключения для внешних библиотек (shadcn-ui), деклараций типов (.d.ts) и системных конфигураций, где строгий нейминг может мешать работе.

Project Relaxations
1// Проектные послабления (Relaxations) 2// 1. Shared UI (shadcn-ui/custom): любые имена, разрешен any 3src/shared/ui/shadcn-ui/Button.tsx 4 5// 2. Декларации (.d.ts): именование не контролируется 6src/shared/types/api.d.ts 7 8// 3. Конфиги (*.config.ts): разрешены require и console 9tailwind.config.ts