Регламент разработки

После долгих препирательств, обсуждений и объяснений мне, как новичку в разработке ПО, был принят следующий порядок. Или Регламент.

BSL-World — Стандарты разработки (актуальная версия, май 2026)

1. Корневая структура

Все проекты BSL-World находятся в едином монорепозитории:

D:\bsl-world\
Внутри — папки проектов:

  • bsl-core
  • bsl-mute
  • bsl-tor
  • bsl-clock, bsl-timer, bsl-counter, bsl-tracker, bsl-tasks, bsl-dl (будущие)

2. Технологический стек

Tauri — для простых утилит (Mute, Tor, Clock, Timer, DL)

Electron — для сложных систем (Counter, Tracker, Tasks)

3. Принципы разработки (обязательные)

  • Чёткое разделение: Данные ⇔ Логика ⇔ Оформление
  • Мультиязычность
  • Наличие скинов (визуальные темы)
  • Возможность выбора формата даты и времени независимо от языка интерфейса
  • Наличие музыкальных скинов и настройка кастомных звуков
  • Выбор звуковой карты для сигналов
  • Бесплатный базовый функционал + расширения по подписке

4. Стандарты именования

4.1 Папки проектов и репозитории на Gitverse

Только строчные латинские буквы, слова через дефис (kebab-case)
Формат: bsl-имяпроекта (пример: bsl-tor)

4.2 Файлы внутри проекта

Для Tauri (Rust + фронтенд):

HTML/CSS/JS: kebab-case.html, kebab-case.css, kebab-case.js
Rust: snake_case.rs

Для Electron (Node.js + фронтенд):

HTML/CSS/JS: kebab-case.html, kebab-case.css, kebab-case.js
Node.js модули (бэкенд): kebab-case.js (или .ts)
Файлы конфигурации: kebab-case.js (например, main.js, preload.js — можно оставить как есть, если это стандарт фреймворка)

Общее для всех:

Локализация: en.json, ru.json (имена языков — строчные, без дефисов)

5. Версионирование

Tauri: src-tauri/Cargo.toml (поле version)

Electron: package.json (поле "version")

Синхронизировать вручную при каждом релизе

6. Управление зависимостями (жесткое правило)

Использовать последнюю стабильную мажорную версию, не древнюю (например, zip = "8", а не 0.6.6 или 2.x).

Не гнаться за минорными и патчами — обновлять только при необходимости (критическая ошибка или совместимость).

Запрещены версии 0.x.x, если есть стабильный мажор 1.x.x или выше.

В Cargo.toml указывать только мажорную версию (например, tauri = "2").

Перед добавлением зависимости проверять актуальную версию на crates.io / npmjs.com.

7. Идентификатор приложения

Формат: ru.bsl-world.bsl-имяпроекта
Пример: ru.bsl-world.bsl-tor

8. Git и Gitverse

Монорепозиторий — все проекты в одном репозитории bsl-world на Gitverse.

Вложенных .git папок внутри проектов нет.

Коммиты из корня D:\bsl-world.

Теги релизов: bsl-имяпроекта/vX.Y.Z (пример: git tag -a
bsl-tor/v1.0.0 -m "Release").

9. Запрет кириллицы

В коде, комментариях, путях, именах файлов и любых технических файлах — только английский язык. Никакой кириллицы.

10. Документирование

Все стандарты фиксируются в файле bsl-standard.md в корне D:\bsl-world. Изменения только дополнением, ничего не удаляется.