Программирование экспериментов
-
19-09-2019 - |
Вопрос
Я часто пишу многочисленные эксперименты для проверки различных алгоритмов, библиотек или оборудования.Весь код, зависимости и результаты этих экспериментов необходимо аннотировать и сохранять, чтобы я мог вернуться к ним позже.Существуют ли хорошие общие подходы к этой проблеме?Что вы делаете со своими экспериментами после их проведения?
Решение
На предыдущей работе у нас был проект в SVN под названием Area51, где люди писали тестовый код.Правила были
- создать пространство имен пакета
- начать через публичный static void main
- добавлять комментарии через javadocs
- оставить проект в компилируемом состоянии
- проект никогда не может зависеть от другого кода
В команде из трех человек это сработало нормально.Мы могли бы поместить туда код «что если», чтобы поделиться им, и его было легко запустить через ide или командную строку.
Другие советы
Когда я это делаю, они обычно относятся к конкретному проекту, поэтому находятся в подкаталоге проекта (в моем случае обычно называемом «Расследования»).Это проверяется в системе контроля версий вместе со всем остальным.
Результаты (где это возможно) помещаются в тот же подкаталог «Расследований», что и код, используемый для получения результатов.
У меня просто есть папка, которую я называю OneOffCode.
Это папка с кодом, который я написал либо изучая новую технологию, пытаясь доказать концепцию и т. д...Это непроизводственный код.
Обычно я сохраняю резервную копию на диске и переношу ее с работы на работу или с компьютера на компьютер.
Обычно я переключаюсь между C# и C++.Итак, у меня есть тестовое консольное приложение для C# и C++ в «песочнице» под контролем версий.Оба консольных приложения настраиваются одинаково, если есть Main, который вызывает тест, который я пытаюсь выполнить в данный момент.Когда я закончу, я сохраняю старые методы и комментарии и просто очищаю Main, когда начнется следующий тест.
Я не знаю, лучший ли он, но после того, как он настроен, можно довольно быстро войти, получить ответы, выйти и сохранить все это для следующего раза.