HWW Portfolio

Software and Hardware Developer

ИНЖЕНЕРНЫЙ МАНИФЕСТ: СТАНДАРТ ОРГАНИЗАЦИИ ФАЙЛОВ И ПАПОК

1. ИМЕНОВАНИЕ ЖЕСТКИХ ДИСКОВ

Каждый физический диск или массив в системе должен иметь уникальное, понятное имя (Метку тома / Volume Label).

  1. Для системного накопителя используется метка: WIN_SYS (Диск C:).
  2. Для основного рабочего накопителя используется метка: MAIN_DATA (Диск D:).
  3. Для дисков резервного копирования и архивов используется формат NAME_NC, где NAME — категория архива, N — порядковый номер хранилища, а C — буква диска в зеркальном массиве.

Пример двух дисков одного зеркала:

Пример расширения архива вторым зеркалом:


2. КУЛЬТУРА ИМЕНОВАНИЯ ПАПОК И ФАЙЛОВ

  1. Обязательные расширения: Не создавайте файлов без расширения. Текстовый файл обязан иметь .txt, конфигурационный — .ini/.conf и так далее.
  2. Регистр символов: Используйте только маленькие латинские буквы в названиях пользовательских файлов и папок.
    • Исключение: Метки физических дисков и папки, создаваемые самой операционной системой по умолчанию.
  3. Запрет на спецсимволы: Не используйте в именах специальные символы: ., ', (, ), /, /, &, $ и другие.
  4. Запрет на пробелы: Никогда не используйте пробел. Заменяйте его символом нижнего подчеркивания _.
    • Правильно: /new_year_photo
  5. Запрет на мусорные имена: Категорически запрещено использовать безликие имена, которые ни о чем не говорят. Примеры запрещенных имен: /1, /2, /new_folder_1, /x5, /всякое.
  6. Принцип авторства файлов: Используйте имя человека или название компании перед именем самого файла.
    • Пример: /ivan_photos, /rocketamusements_cad_models
    • При использовании связки Фамилия + Имя всегда соблюдайте строгий порядок: фамилия_имя или фамилия_имя_инициал (например: /pudov_ivan_photos, /pudov_ivan_v_photos).
  7. Лаконичность без избыточности: Избегайте слишком длинных имен, но и не используйте экстремальные сокращения, теряющие смысл.
    • Правильно: /rocketamusements_logotype
    • Неправильно (длинно): /rocketamusements_логотип_компании
    • Неправильно (избыточное сокращение): /rockamus_logo
  8. ПРАВИЛО ТРЕХ ВЛОЖЕНИЙ: Физическая глубина вложенности папок на пользовательском уровне не должна превышать трех шагов.
    • /1 (Первый уровень) ➔ /1/2 (Второй уровень) ➔ /1/2/3 (Третий и последний уровень)
  9. Датирование и нумерация версий: При необходимости разделить однотипные папки или файлы по времени или ревизиям:
    • По дате: Начинайте название папки с даты в строгом международном формате YYYYMMDD (например: /20261115_patterns).
    • По номеру: Используйте фиксированный двухзначный формат 00, 01, 02 (например: /patterns_00, /patterns_01).
    • По версии: Если файлы являются версиями одного и того же документа, добавляйте букву v перед номером (например: /patterns_v00, /patterns_v01).

3. ЗАРЕЗЕРВИРОВАННЫЕ ИМЕНА И СЕРВИСНЫЕ МАРКЕРЫ

Имена файлов

Минимальная структура README.md

# Название папки

## Автор

## Дата создания / Обновления

## Содержание (кратко)

Имена папок

Системный маркер подчеркивания _

Символ подчеркивания в начале имени корневой папки (например, _base, _altium) радикально меняет ее статус. Он означает: «Внимание! Это системная инфраструктура или категория, а не имя пользователя/проекта. Внутри находится сложная автоматизированная система, требующая осторожности».


4. СТРУКТУРА ДИСКА ДАННЫХ (MAIN_DATA / Диск D:)

Все данные на диске D: разделяются на две глобальные категории: Пользовательский контент и Системная инфраструктура. В корне диска поддерживается идеальный плоский список из 6 основных папок.

D:│
  ├── ⚠️ _base/             (ИНФРАСТРУКТУРА: системный черный ящик для софта)
  │
  ├── 📁 family/            (КОНТЕНТ: высшая семейная и юридическая ценность)
  ├── 📁 archive/           (КОНТЕНТ: статичные долгосрочные бэкапы и архивы)
  ├── 📁 shared/            (КОНТЕНТ: общедоступные сетевые файлы, медиа и   инсталляторы)
  ├── 📁 home/              (КОНТЕНТ: скелетные конфигурации dotfiles для WSL   Linux)
  └── 📁 projects/          (КОНТЕНТ: живое рабочее пространство для Windows-native САПР)

Раздел 4.1: Данные, необходимые программам (D:/_base/)

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

Внутри _base данные разделены на три изолированных контейнера:

1. _base/eda_libraries/ (Библиотеки САПР электронных плат)

Сквозные базы компонентов. Проекты со всего компьютера ссылаются на эти файлы напрямую.

2. _base/sim_libraries/ (Библиотеки симуляции)

Изолированные математические и физические модели для симуляторов. Могут использоваться параллельно в разных САПР.

3. _base/environments/ (Служебные окружения софта)

Каждая экосистема софта имеет здесь строго одну свою подпапку для хранения локальных настроек интерфейса, тем оформления, скриптов автоматизации и скрытых логов:

Использование символических ссылок в корневой папке

Запрещено создавать симлинки в корне D:/. Все ссылки на _base должны быть настроены внутри настроек программ, а не на уровне файловой системы.


Раздел 4.2: Ценное, Общий доступ и Бэкап WSL

1. Категория: Ценное (D:/family/, D:/photos/, D:/archive/)

2. Категория: Для общего доступа (D:/shared/)

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

3. Категория: Бэкап WSL Linux (D:/home/)

Статичная «скелетная» папка-донор. Живая работа в терминале WSL ведется строго внутри родного виртуального диска ext4 (/wsl$/...). Папка D:/home/valery/ хранит резервные копии ваших конфигурационных файлов (dotfiles: .bashrc, .tmux.conf, конфигурации git, ssh-ключи) для мгновенного развертывания новой среды Linux при аварии или переустановке ОС.


5. ПРАВИЛА ОРГАНИЗАЦИИ ПАПКИ PROJECTS

Папка D:/projects/ — это главное, живое рабочее пространство Windows-native разработки (Altium, KiCad, Unity, Creo).

Внутри нее действуют два жестких закона архитектуры данных:

  1. ПРИНЦИП АВТОРСТВА (Уровень 1): Первый каталог определяет автора, заказчика или источник кода (hww — вы, ti — Texas Instruments, gary — коллега).
  2. ТЕХНИЧЕСКИЙ МАРКЕР (Уровень 2): Папки на втором уровне обязательно начинаются с подчеркивания _ и определяют только среду разработки / софт. Это создает единую точку входа (Workspace) для программ.
  3. СТАТУС КОНТРОЛЯ ВЕРСИЙ (Уровень 3): Конечный проект находится строго на 3-м уровне вложенности. Динамический статус синхронизации проекта с облаком определяется строго по префиксу в имени папки:
    • .git — Серьезный проект под управлением Git, имеющий репозиторий на GitHub.
    • без расширения — Локальный черновик, песочница или минутный тест без контроля версий.

Эталонная визуальная схема папки projects

D:/projects/
    │
    ├── ti/                           (Уровень 1: Автор — Texas Instruments)
    │   └── _altium/                  (Уровень 2: САПР плат от TI)
    │       └── ref_design/           (Уровень 3: КОНЕЦ. Скачанная схема-референс)
    │
    └── hww/                          (Уровень 1: Автор — Вы / личные проекты)
        │
        ├──_altium/                   (Уровень 2: САПР плат Altium Designer)
        │   ├── power_supply.git/     (Уровень 3: КОНЕЦ. Ваша боевая плата на GitHub)
        │   └── test_amp/             (Уровень 3: КОНЕЦ. Быстрый набросок схемы усилителя)
        │
        ├── _cces/                    (Уровень 2: Единый Workspace среды CrossCore)
        │   ├── dsp_filter.git/       (Уровень 3: КОНЕЦ. Рабочая прошивка процессора на GitHub)
        │   └── blinky_test/          (Уровень 3: КОНЕЦ. Быстрый локальный тест мигания диодом)
        └── _system/                  (Уровень 3: Мультисистемный проект)

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

Правило миграции проектов

Если локальный набросок (blinky_test) перерастает в полноценную задачу и для него создается репозиторий в сети, папка проекта инициализируется в Git, и префикс в ее имени меняется на blinky_test.git. Физическое положение проекта внутри папки софта _cces при этом не меняется, что гарантирует абсолютную стабильность путей и исключает поломку связей в среде разработки.

Проекты для сторонних компаний (Коммерческая разработка)

Если проект выполняется вами на заказ, по контракту или в рамках сотрудничества со сторонней компанией, то на первом уровне иерархии создается папка с официальным названием этой компании (латиницей в нижнем регистре).

Несмотря на то, что автором кода являетесь вы, проект физически размещается внутри папки компании-заказчика, так как она является владельцем конечного продукта или контекста разработки.

Пример организации коммерческой разработки:

D:\projects\
    └── yandex\                    (Уровень 1: Компания-заказчик / Контекст)
        └── _cces\                 (Уровень 2: Категория софта — среда CrossCore)
            ├── telecom_board.git\ (Уровень 3: КОНЕЦ. Боевой репозиторий проекта)
            └── test_spi\      (Уровень 3: КОНЕЦ. Локальный черновик для проверки шины)

Группировка чужих проектов (Коллективный автор)

Если у одного глобального проекта или открытой платформы есть несколько независимых авторов, с которыми вы не знакомы лично (например, скачанные с GitHub репозитории разных разработчиков для одного устройства), первый уровень иерархии отдается под Группу.

Имя такой папки обязано начинаться с подчеркивания и заканчиваться суффиксом -group. Это сигнализирует, что папка является техническим контейнером, а не именем конкретного человека. Имена авторов в этом случае смещаются на второй уровень.

Пример организации группы для ретро-компьютера Aleste:

D:\projects\
    └── _aleste-group\            (Уровень 1: Искусственный коллективный автор)
        ├── gary\                 (Уровень 2: Конкретный разработчик Гари)
        │   └── loc_power_sch\    (Уровень 3: КОНЕЦ. Схема блока питания от Гари)
        └── ron\                  (Уровень 2: Конкретный разработчик Рон)
            └── git_main_board\   (Уровень 3: КОНЕЦ. Репозиторий материнской платы от Рона)

Именование папок пользователей или разработчиков

Для папок авторов на втором уровне иерархии применяется строгий корпоративный паттерн:

имя.фамилия.номер (или имя.первая_буква_фамилии.номер)

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

Пример использования паттерна внутри группы:

D:\projects\
    ├── john.doe\                 (Имя + Фамилия целиком)
    ├── john.s\                   (Имя + Первая буква фамилии)
    └── john.s.2\                 (Полный тезка предыдущего автора, добавлен номер)

Архивирование проектов и данных

Проекты закрытые но не подлежащие к удалению помечаются одним из двух способов

  1. Перемещаются в папку _archive
  2. Добавляется суффикс .archive или .deprecated

Ссылки