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