4

在为特定学科的科学家设计软件库时,有哪些好的原则?我的意思是化学、物理学、材料科学、显微镜、生物测定、天文学等领域。我不包括涵盖一系列学科或专门数学或用于数据分析。(目前我们中的一些人正在参与建立化学领域的开源库,了解其他领域的经验会很有价值)。

我很欣赏这是一项雄心勃勃的任务,获得资金并不容易,但它对于可重复和可验证的科学变得越来越重要。

4

4 回答 4

4
  1. 它应该允许它的用户——科学家——在那个领域做科学而不是编程。纯编程概念的吸引力越小,如“处理程序”、“控制器”、“指针”、“内存泄漏”等,它就越适合您的最终用户;

  2. 它应该允许那些发现你的 lib 有趣的人在你放弃它之后维护它。简而言之,它不应该被开发为“一次性代码”,或者应该以“好”的方式完成。在这件事上看到你自己的问题

  3. 要设计 API,应该让使用该库的专家参与其中。他应该知道,通常的问题解决程序需要您编写的库并定义您要实现的主要概念。按照专家的说法设计你的 API,而不是你看到的方式。如果您也是专家,那么无论如何,请邀请另一个参与开发的人。原因是开发人员倾向于以他们认为自然的方式设计 API,也就是实现的自然方式。而它所涉及的问题应该是自然的。

于 2009-09-05T15:39:53.603 回答
2

“在为特定学科的科学家设计软件库时,有哪些好的原则?” - 首先是成为领域专家,IMO。通常在这些领域取得成功的软件包类型是由化学家、物理学家、生物学家等编写的。

您必须问自己,对于其中一个领域的科学家来说学习编程或程序员学习一门科学学科是否更容易。

从我在 21 天内看到的用于学习语言 X 的书籍数量与声称在同一时间框架内掌握化学、生物学或物理学的书籍数量相比,我猜科学家更有可能编写自己的解决方案。

于 2009-09-05T15:14:29.760 回答
1

很好地考虑良好的通用 API 设计,不管它是多么特定于域,所以看看这个谷歌技术谈话。(约书亚街区)

于 2009-09-05T14:18:36.633 回答
0

我的建议是:衡量你想要达到的科学界的通用编程技能(很可能是你的!)并开发他们可以使用的东西(或者只需要一点学习,但不要太多)。保持简单,或将复杂性隐藏在内部深处。科学家不是专业的程序员。

于 2009-10-08T19:09:07.033 回答