Эффективность процесса разработки проектов зависит не только от выбранной методологии типа SCRUM, KANBAN, Waterfall и т.д, сколько от того, как быстро и просто сможет погрузиться в проект новый участник команды.
Даже если мы не масштабируем команду когда над стартапом работает один-два человека, то с каждым днём стремительно растет число рабочих документов, которые требуется изучать/редактировать/вести поиск, при такой динамике возникают сложности со структурированием рабочих документов.
Под рабочими документами понимается любой файл имеющий прямое или косвенное отношение к проектам, это может быть исходный код, рисунок, схема, бэкап, электронная таблица и т.д.
В процессе накопления личного опыта и изучения опыта единомышленников в IT индустрии, появился этот Шаблон структуры рабочих каталогов, который будет полезен любому разработчику не зависимо от того с каким стеком технологий он работает.
Он дает вам заготовку структуры каталогов под любой IT проект, который вы планируете начать, либо если у вас уже есть проект требующий наведения порядка.
/aprogrammer-developer-workspace-template
├── /docs # Документация по проектам и архитектуре
│ ├── /overview # Общее описание архитектуры и процессов
│ ├── /project_a # Документация для проекта A
│ ├── /project_b # Документация для проекта B
│ ├── /project_c # Документация для проекта C
│ ├── /common # Общая документация по разработке
│ ├── /architecture # Документация по архитектуре
│ │ ├── /components # Архитектурные компоненты системы
│ │ ├── /patterns # Архитектурные паттерны
│ │ ├── /best_practices # Лучшие практики разработки
│ │ ├── /scalability # Масштабирование и производительность
│ ├── /security # Доступы к стендам, инструментам, контурам
├── /src # Исходный код всех проектов
│ ├── /project_a # Исходный код проекта A
│ ├── /project_b # Исходный код проекта B
│ ├── /project_c # Исходный код проекта C
│ ├── /shared # Общий код и библиотеки для всех проектов
│ ├── /core # Ядро системы, переиспользуемые компоненты
├── /infra # Инфраструктура и настройки окружений
│ ├── /docker # Docker конфигурации
│ ├── /kubernetes # Kubernetes конфигурации
│ ├── /ci-cd # Конфигурации CI/CD
│ ├── /monitoring # Конфигурации мониторинга и логирования
│ ├── /distr # Дистрибутивы инструментов разработки
├── /scripts # Скрипты для автоматизации
│ ├── /migration # Скрипты миграции БД
│ ├── /deployment # Скрипты деплоя
│ ├── /data-import # Скрипты импорта данных
├── /config # Общие и проектные конфигурации
│ ├── /project_a # Конфигурации для проекта A
│ ├── /project_b # Конфигурации для проекта B
│ ├── /project_c # Конфигурации для проекта C
│ ├── /common # Общие конфигурации для всех проектов
│ ├── /environments # Конфигурации для разных окружений (dev, prod, staging)
├── /logs # Логи
│ ├── /project_a # Логи для проекта A
│ ├── /project_b # Логи для проекта B
│ ├── /project_c # Логи для проекта C
│ ├── /common # Общие логи и анализ
├── /obsidian # Хранилище базы знаний в формате Vault Obsidian
├── /jnotebooks # Jupyter-блокноты для анализа
│ ├── /project_a # Блокноты для проекта A
│ ├── /project_b # Блокноты для проекта B
│ ├── /project_c # Блокноты для проекта C
│ ├── /common # Общие блокноты
├── /tests # Общие тесты для всех проектов
│ ├── /unit # Юнит-тесты
│ ├── /integration # Интеграционные тесты
│ ├── /performance # Тесты производительности
├── /monitoring # Мониторинг и наблюдение
│ ├── /metrics # Метрики для проектов
│ ├── /alerts # Конфигурации алертов
│ └── /dashboards # Конфигурации и шаблоны дашбордов
├── /bug_tracking # Bug Tracking для всех проектов
│ ├── /project_a # Ошибки и баги для проекта A
│ ├── /project_b # Ошибки и баги для проекта B
│ ├── /project_c # Ошибки и баги для проекта C
│ └── /common # Общие ошибки и задачи