设计软件库以供特定学科的科学家使用时,有哪些好的原则?这里指的是化学、物理、材料科学、显微镜技术、生物测定、天文学等领域。排除涵盖多个领域或专门用于数学或数据分析的通用库,如SciPy、R、Matlab、JAMA等。(目前我们中的一些人正在建立开源的化学库,了解其他领域的经验将非常有价值。)
我知道这是一个宏伟的任务,而且很难获得资金,但对于可重复和可验证的科学越来越重要。
我知道这是一个宏伟的任务,而且很难获得资金,但对于可重复和可验证的科学越来越重要。
它应该允许其用户——科学家——在该领域内进行科学研究,而不是编程。纯编程概念如“处理程序”,“控制器”,“指针”,“内存泄漏”等的影响越小,它就越适合你的最终用户;
它应该允许那些发现你的库有趣的人在你放弃之后维护它。简短地说,它不应该被开发为“一次性代码”,或者应该以“良好”的方式完成。请参见你自己的问题。
要设计一个API,需要涉及到将使用这个库的专家。他应该知道通常的问题解决程序从你编写的库中需要什么,并定义你要实现的主要概念。根据专家的建议设计你的API,而不是按照你自己的想法。如果你也是专家,那么无论如何,请邀请另一个与开发无关的人。原因是开发人员往往倾向于以他们认为自然的方式来设计API,即对于实现而言自然的方式。而它应该对它所涉及的问题自然。