Структура папок исследовательского проекта
Исходные данные не меняются никогда, код пересоздаёт всё остальное, результаты можно удалить и получить заново. Если временные файлы смешиваются с результатами, архив быстро превращается в свалку, а передача проекта — в переписку. Ниже — рабочая структура.
Принцип разделения
Исходные данные не меняются никогда. Код пересоздаёт всё остальное. Результаты можно удалить и получить заново. Временные файлы не должны смешиваться с результатами, иначе непонятно, что можно удалять.
Папка исходных данных
Только чтение. Никакие скрипты не должны писать в неё. Если нужно исправить данные, создайте производную папку и опишите преобразование. Это правило спасает от потери исходников.
Папка кода
Скрипты, функции, файл зависимостей. Имена по смыслу шага: подготовка, расчёт, графики. Один длинный файл труднее поддерживать, чем несколько коротких, но не дробите ради дробления.
Папка результатов
Таблицы, графики, отчёты. Внутри можно разделить по датам или версиям, но не глубже двух уровней. Глубокая вложенность усложняет поиск и ломает пути.
Временные файлы
Отдельная папка, которую можно удалить без последствий. Скрипт создаёт её при необходимости. Если временные файлы попадают в результаты, архив быстро превращается в свалку.
Описание в корне
Короткий файл: что за проект, где данные, как запустить, что получится. Он первый, который откроет коллега. Пяти-десяти строк достаточно, если структура папок понятна.
Имена
Латиница, без пробелов, с датой или версией там, где нужно. Единая схема для всех файлов проекта. Это не эстетика: разные схемы ломают сортировку и ссылки.
Что делать с большими файлами
Не хранить их в папке кода и не пересылать в переписке. Ссылка на хранилище и описание в проекте. Скрипт скачивает или читает файл по известному пути.
Перенос проекта
Если структура описана, перенос сводится к копированию папки и пересозданию окружения. Проверьте это на другой машине: скрипт не должен зависеть от путей вне проекта.
Типичные ошибки
Писать в папку с исходными данными, смешивать временные и итоговые файлы, хранить код в трёх местах, давать файлам имена с пробелами, не описывать структуру. Каждая ошибка усложняет передачу.
Итог
Структура папок отделяет исходные данные от кода и результатов, а описание в корне объясняет порядок работы.
Минимальный вариант
Для небольшого проекта достаточно трёх папок: данные, код, результаты, и файла описания в корне. Этого хватает, чтобы не путаться и передавать проект. Усложняйте структуру только тогда, когда появляются новые типы файлов, а не заранее ради порядка.
Что делать с промежуточными версиями
Не создавайте копии вида «итог», «итог2», «итог_финал». Промежуточные версии нужны редко; если нужны, храните их в отдельной папке с датами и удаляйте устаревшие. Множественные копии в корне — главный источник путаницы при передаче проекта.
Как назвать результаты
Имя результата должно включать, что это и когда получено: сводная таблица за октябрь, график по группам за первую неделю. Человек, открывший папку через год, поймёт содержимое без чтения кода. Единая схема имён важнее краткости.
Перенос без потерь
Перед переносом проверьте, что все пути относительны, а данные лежат внутри проекта. Скопируйте папку на другое устройство и запустите анализ. Если что-то не нашлось, значит, структура неполная: файл лежал вне проекта, и это нужно исправить, а не обходить.
Связь с архивом
Когда проект завершён, папка результатов и исходные данные упаковываются в архив с описанием и контрольными суммами. Временные файлы и копии окружения в архив не попадают. Такая подготовка занимает полчаса и делает набор пригодным для передачи и хранения.
Документирование структуры
Опишите назначение каждой папки в файле описания одной строкой. Это особенно помогает тем, кто впервые открывает проект. Если папка требует объяснений на полстраницы, скорее всего, её содержимое стоит разделить иначе.
Что делать с чужими файлами
Если в проект попали файлы от коллеги или из внешнего источника, положите их в отдельную папку и опишите происхождение. Не смешивайте с собственными данными: через месяц невозможно будет понять, что откуда взялось, а при проверке придётся восстанавливать историю по переписке.
Признак хорошей структуры
Человек, впервые открывший проект, без вопросов находит данные, запускает анализ и понимает, где результат. Если для этого нужна переписка с автором, структуру стоит переделать. Проверка занимает десять минут и экономит дни на передаче проекта.
Как поступить при росте проекта
Когда файлов становится много, добавляйте папки по смыслу, а не по датам: данные, код, результаты, документы. Единая схема сохраняется, а вложенность остаётся неглубокой. Если появляется третья вложенность, проверьте, не дублирует ли новая папка существующую.
Как проверить структуру на практике
Скопируйте папку проекта в другое место, удалите всё, что не должно входить в набор, и попробуйте запустить анализ. Если он работает, структура полная и самодостаточная. Если нет, вы нашли лишнюю зависимость от файлов за пределами проекта.
Чек-лист
- Исходные данные лежат отдельно и не изменяются.
- Код, результаты и временные файлы разделены.
- В корне есть описание проекта.
- Имена файлов без пробелов и с единой схемой.
- Вложенность папок не глубже трёх уровней.
- Анализ работает после копирования папки в другое место.
- Временные файлы можно удалить без потери результатов.
Частые вопросы
Можно ли писать в папку данных?
Нет, только читать.
Сколько уровней вложенности?
Не больше двух-трёх.
Что важнее всего?
Описание в корне и предсказуемые имена.
Пример
Проект передавали коллеге, но в папке были и исходники, и старые результаты, и черновики. После разделения на данные, код и результаты передача заняла один разговор вместо недели переписки.
Итог
Структура папок отделяет данные от кода и результатов, а описание в корне объясняет порядок работы.