SSPS - Единый стандарт для структуры проекта

SSPS - Единый стандарт для структуры проекта

95

2 мин.

Стандарт SSPS определяет требования к структуре и наименованию файлов и папок в проекте.

Везде kebab-case

Использование нижнего регистра и дефиса является обязательным для всех папок и файлов проекта. Это обеспечивает согласованность и гарантирует отсутствие проблем. Такой подход предотвращает конфликты в разных операционных системах и системах контроля версий (Git), где чувствительность к регистру может отличаться, вызывая ошибки.

Использование kebab-case решает следующие проблемы:

  • Исключает хаос вида getPrice.ts, Price.tsx и Name.test.ts в одной директории.
  • Сложные названия вроде CuteIDKOKReader преобразуются в читаемый cute-id-kok-reader.ts.
  • Защищает от багов Case Sensitive FS.

Почему не snake_case:

  • Требует избыточного использования клавиши Shift.
  • Плохо читается в вебе (например, если файл отображается как ссылка с подчеркиванием, _ сливается с линией).
  • Google официально не рекомендует использовать нижнее подчеркивание.

Единственное допустимое отступление это системные файлы в корне репозитория, такие как README или CONTRIBUTING, поскольку их верхний регистр продиктован общепринятыми стандартами документации.

Контекст через вложенность

Название файла не должно дублировать информацию, которую уже предоставляет структура папок. Контекст определяется местоположением, то-есть если файл находится в features/auth, то именование auth-login-form.tsx избыточно. Правильно, login-form.tsx.

Переход от названий вроде HeaderUserMenuAvatar к структуре widgets/header/ui/user-menu/avatar позволит сохранить имена файлов краткими и точными.

Архитектурные принципы FSD

Проект выстраивается по слоям с четкой зоной ответственности. Глобальные группы (entities, features, widgets) всегда именуются во множественном числе. Конкретные модули (слайсы) внутри них, в единственном. Внутренние сегменты (ui, model, api) остаются стандартными.

Это создает предсказуемую архитектуру, задача по изменению корзины всегда приведет в features/add-to-cart, где интерфейс и логика четко разделены. Использование единого регистра (kebab-case) делает проекты однообразными, что поможет быстрее ориентироваться и решать задачи.

Статья будет дополнятся

Похожие статьи

  • SSA - Единый стандарт для аккордеона

    Стандарт SSA определяет требования к семантике, доступности и логике работы аккордеона

    200

    2 мин.

  • Bad Practices для сайтов

    Разбор критических ошибок веб-дизайна. Почему слайдеры, автоплей и тяжёлые страницы снижают конверсию и позиции в Google и Yandex

    45

    1 мин.

  • SSP - Единый стандарт для пагинации

    Стандарт SSP определяет требования к семантике, доступности и логике работы постраничной навигации

    146

    1 мин.

  • SSV - Единый стандарт для видео

    Стандарт SSV определяет требования к семантике, настройке фоновых и интерактивных видео, атрибутам для Safari, правил доступности и весу видео

    140

    3 мин.

  • Как использовать Vite при включённом VPN, быстрое решение

    Решение проблемы с работой Vite при включённом VPN, настройка соединения, для избежания перенаправления локального трафика в VPN-туннель

    185

    2 мин.

Свяжитесь со мной

Тип проекта*