开放科学项目的 7 条经验法则

还没有读者喜欢这个。
open source work experience

Opensource.com

以下经验法则是在实证格拉米安框架 (emgr) 开发过程中产生的,这是一个年轻的开源软件项目,位于明斯特大学数值分析与科学计算工作组,该工作组隶属于明斯特大学,目标是用于控制系统的算法模型降阶emgr 是用经常被——而且是被错误地——轻视的MATLAB 编程语言编写的,该语言以其几乎伪代码般的语法,易于理解且性能良好。以下指南,其中许多与科学代码宣言相关,是从 MATLAB 的角度给出的,但它们也适用于其他编程语言和环境。

 

查看开放政府周文章的完整合集

 

1. 保持兼容性

emgr 与 MATLAB 编程语言的两个主要解释器兼容:Mathworks MATLABGNU Octave,并且使用额外的实用程序脚本,也与 Freemat 兼容。虽然 MATLAB 在许多情况下性能更好,但 Octave 提供了开源替代方案,因此可以在完全开源的堆栈(例如 Linux 上的 Octave)上运行 emgr。就我个人而言,我认为 MATLAB 编程语言受益于这种专有与开源的竞争。Octave 让 Mathworks 保持警惕。

2. 保持可用性

当然,emgr 代码可以从项目网站获得,也可以从 GitHub 存储库、ZenodoMATLAB Central Fileexchange 获得。这曾经为每次发布创造了一些工作,但随着 Fileexchange 和 Zenodo 的 GitHub 集成,它变得越来越容易。除了这些便利功能之外,所有应该可维护的代码都应该受到某种版本控制,例如 git

3. 保持可重现性

通过提供源代码以及结果,更容易展示这些结果。一个促进可重现性的平台是 runmycode,可以将随出版物一起发布的代码存放在该平台上。此外,人们无需担心确保此特定代码的可用性。

4. 保持简洁

总的来说,emgr 源代码大约有 400 行长,并且不应该增长太多。emgr 的设计类似于 应用程序,专注于一项特定任务。由于其精简的代码库,在两个小时内,就可以向一位经验丰富的程序员解释整个程序和所有功能。

5. 保持快速

盲目地“调整”代码很少能加快计算时间。对于 emgr,如果没有事先咨询统计或仪器分析器,就不会进行性能优化;MATLABOctave 都提供了这样的工具。此外,许多性能泄漏已经通过像 mlint 这样的静态代码分析器暴露出来。

6. 保持信息丰富

文件或函数标头可以密集地 packed with documentation 和 元信息。除了必要的作者、许可证、版本和项目网站链接外,关于参数和返回类型、其他选项、相关文档或函数、引用提示和关键字的信息都可以放在标头内。

7. 保持可引用性

最后,科学中的一个重要因素是被引用。与 GitHub 一起,Figshare 和 Zenodo 最近 开始为学术软件项目提供 DOI,从而使软件可引用。此外,为了充分引用项目网站,应该参考已注明日期的快照,例如使用像 archive.today 这样的存档服务制作的快照。

查看开放科学周故事的完整合集。

标签
User profile image.
明斯特大学科学计算和数值分析工作组的研究助理。研究兴趣是“模型降阶”、“大规模贝叶斯反演”和“动态因果建模”。开源和开放科学的倡导者。

评论已关闭。

© . All rights reserved.