我编写科学研究代码,特别是在生物信息学方面。当然,在科学中,结果应该是可重复的。不定期参与项目并且不详细了解基础架构的人可能会合法地希望查看我的代码以重现结果。问题在于,使代码自包含足以轻松地向这样的人提供/解释似乎严重限制了可能的重用量。
将多个相关项目中使用的功能分解到个人库中通常很方便,但是将所述库与 5,000 行(诚然记录不佳,因为它不打算成为生产/发布质量)代码转储是不方便的与想要快速重现结果的人手头的问题有关。
在您的系统上安装一组关键库并且无需三思而后即可使用通常很方便,但是向主要是科学家而不是程序员的人解释您如何设置所有这些东西并不方便。如果您自己不记得某些细节,则尤其如此。(请注意,尽管所讨论的细节是与科学无关的技术细节。)
将研究项目的几个相关方面的所有代码保存在一个有大量选项的大程序中通常很方便,而不是为您尝试的每个细微变化/事物编写完全独立的代码,但同样,转储所有代码并不方便这个,或者向那些只想重现结果的人解释这一切。
有哪些方法可以处理这些问题,以便我可以重用代码,但仍然允许想要重现我的结果的人通过合理的努力来启动和运行我的代码?请注意,我的问题的核心是创建不太成熟的可重用代码库的可能性。