Научные вычисления: балансирование автономности и повторного использования?

Я пишу код научных исследований, в частности, в области биоинформатики. Конечно, в науке результаты должны быть воспроизводимыми. Люди, которые не участвуют в проекте на регулярной основе и не разбираются в деталях инфраструктуры, могут на законных основаниях захотеть увидеть мой код для воспроизведения результатов. Проблема в том, что создание кода, достаточно самодостаточного, чтобы легко дать / объяснить такому человеку, кажется, сильно ограничивает количество возможных повторных использований.

  • Часто удобно вынести функциональность, которая используется в нескольких связанных проектах, в личную библиотеку, но неудобно сбрасывать указанную библиотеку с 5000 строк кода (по общему признанию, плохо документированного, поскольку он не предназначен для качества производства / выпуска) которые не имеют ничего общего с проблемой того, кто хочет воспроизвести результат очень быстро.

  • Это Часто удобно иметь набор из нескольких ключевых библиотек, установленных в вашей системе и легко доступных для использования, не задумываясь, но неудобно объяснять кому-то, кто в первую очередь ученый, а не программист, как вы все это настраиваете. Это особенно актуально, если вы сами не помните некоторые детали. (Обратите внимание, однако, что рассматриваемые детали являются техническими мелочами, которые не имеют ничего общего с наукой.)

  • Часто бывает удобно хранить весь код для нескольких связанных аспектов исследовательского проекта в одной большой программе с множеством вариантов, а не чем писать полностью автономный код для каждого небольшого варианта / того, что вы пробовали, но, опять же, неудобно вываливать все это или объяснять все это тому, кто просто хочет воспроизвести результат.

Каковы способы решения этих проблем, чтобы я мог повторно использовать код, но по-прежнему позволять тому, кто хочет воспроизвести мои результаты, запустить мой код, приложив разумные усилия? Заметьте, что в основе моего вопроса лежит возможность создания повторно используемых библиотек кода, который не является очень зрелым.

10
задан carlosdc 13 March 2011 в 10:52
поделиться