科学计算:平衡自我包容和重用?

dsi*_*cha 10 maintenance readability scientific-computing self-contained libraries

我写了科学研究代码,特别是生物信息学.当然,在科学中,结果应该是可重复的.那些没有定期参与项目并且不详细了解基础设施的人可能合法地希望看到我的代码来重现结果.问题在于,使代码自足以容易地给这样的人提供/解释似乎严重限制了可能的重用量.

  • 将几个相关项目中使用的功能分解为个人库通常很方便,但是将这些库转储5000行(不可否认的文档很少,因为它不是生产/发布质量)代码没有任何帮助是不方便的.处理那些想要快速重现结果的人手头的问题.

  • 在您的系统上安装一组几个密钥库并且可以随时使用而不必考虑两次通常很方便,但向主要是科学家的人解释并不方便,而不是程序员如何设置所有这些东西.如果您自己不记得某些细节,尤其如此.(注意,虽然有问题的细节是与科学无关的技术细节.)

  • 将研究项目的几个相关方面的所有代码保存在一个大型程序中通常很方便,而不是为您尝试的每个轻微变化/事物编写完全自包含的代码,但同样,转储所有代码并不方便这个,或解释所有这些,只是想要重现结果的人.

有哪些方法可以解决这些问题,以便我可以重用代码,但是仍然允许想要重现我的结果的人以合理的努力来启动和运行代码?请注意,我的问题的核心是创建可重用的代码库的可能性,这些代码库不是很成熟.