Перейти к содержимому

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

Соглашения об именовании едины для всего семейства и согласованы с docs/project/development-guide.md репозитория plus.

top.lhgb (перевёрнутое www.lhgb.top) — корень именования для всех репозиториев семейства lh-ui.

  • Сторона JS / npm: имя пакета сохраняет scope @lh-ui/* — точки в именах npm-пакетов не допускаются, поэтому top.lhgb нельзя использовать как имя пакета напрямую. Обратный домен ложится на уровень метаданных: homepage / repository / author в package.json единообразно используют lhgb.top.
  • Сторона нативных платформ: applicationId / bundleId / package в lh-ui-android / lh-ui-ios / lh-ui-harmony / lh-ui-c уже используют форму top.lhgb.* (это не относится к данному репозиторию).

Все символы, не относящиеся к сторонним библиотекам, должны иметь префикс LH. При добавлении новых констант / типов / интерфейсов соблюдайте это сразу, не оставляя на потом:

Уровень Форма Примеры
Константы LH_XXX (верхний регистр, подчёркивания) LH_SIZE_DEFAULT, LH_LANGUAGE_DEFAULT, LH_THEME_PRESETS
Типы / интерфейсы LhXxx (UpperCamelCase) LhThemePreset, LhSxProps, LhVirtualRange
Модульные синглтоны / объекты в lowerCamelCase lhXxx lhlocale
BEM-классы / name компонентов lh-xxx / LhXxx .lh-button--primary, name: 'LhButton'

Структура имени константы — LH_<модуль>_<понятие>; константа со значением по умолчанию получает суффикс DEFAULT:

  • LH_DRAWER_DIRECTION_DEFAULT (а не LH_DEFAULT_DRAWER_DIRECTION)
  • LH_DROPDOWN_PLACEMENT_DEFAULT, LH_POPCONFIRM_TYPE_DEFAULT

Это согласуется с уже существующими LH_SIZE_DEFAULT / LH_LANGUAGE_DEFAULT.

Символы, ставшие стандартом по договорённости, префикс получать не обязаны. Перед изменением сначала зафиксируйте здесь причину:

Символ Причина
Экспорт языковых пакетов zhCN / enUS Стандартные имена locale; к тому же реэкспортируются как публичный API библиотеками @lh-ui/vue3 / @lh-ui/vue2 / uniapp — переименование затронуло бы слишком многое
Строковые значения имён пресетов темы (name: 'cerblue' и др.) Это конфигурационные значения, которые пользователи пишут в theme ConfigProvider; изменение сломает конфигурации всех downstream-пользователей. Соответствующий TS-идентификатор всё же получает префикс (LhCerblue)
Экспортируемые символы сторонних зависимостей (например, утилиты, импортируемые помимо deepMerge) Не форсируется

До 0.4.0 этот репозиторий не следовал семейным правилам префиксов; в этот раз недостающее было добавлено. Везде производится механическая замена на уровне идентификаторов; таблица соответствий — в Руководстве по миграции на 0.4.0.

Copyright © 2024-2026 FengMo WenXue