关于架构设计的各方面考虑
- 尽可能利用其他库来最小化维护和调试的代码量
- 不使用web-app框架,如backbone, angular.js, ember, meteor 或 knockout.js等。Cornerstone专注于一个比这些框架低的层,不应该需要它们。不过,这些框架应该可以使用Cornerstone,并且可能包括适配器,以便在这些框架中更容易使用。
- 与大型库相比,更喜欢小型的简单库。(例如jQuery太大)
- 不要使用强制依赖库。例如,使用与cornerstone不同版本库不同版本的应用程序应该可以正常工作
- 应用程序和cornerstone都可以共享同一个库(只要cornerstone支持这个版本)
- 异步api应该利用延迟模式返回调用是否已经被正确处理或调用失败。优秀的Cujo.js 库 有关于这方面的很好的文档 (它可能会被cornerstone和其他cujo.js库一起使用,比如rest和curl)
- 该API应该提供医学成像领域的简化视图,使开发人员更容易与之合作。例如,像素数据可以以模态单位(例如CT的hounsfield)返回,因此开发人员不必处理应用重缩放斜率/截距、掩盖像素填充值、应用luts或处理像素上位的覆盖。彩色图像总是作为RGB返回。
- Cornerstone应该通过正确使用javascript模块模式避免对全局名称空间造成污染。与其他javascript模块设计(如AMD和CommonJS)的集成应该是可能的,但不是必须的。