WEB开发网
开发学院软件开发Python 一个用于 Python 的 CMIS API 库,第 1 部分: cmi... 阅读

一个用于 Python 的 CMIS API 库,第 1 部分: cmislib 简介

 2010-05-04 00:00:00 来源:WEB开发网   
核心提示: 我从一开始就建立起构建流程、文档和源代码控制,尽早建立这些内容很重要,一个用于 Python 的 CMIS API 库,第 1 部分: cmislib 简介(6),这样其他开发人员才能快速加入项目并进入角色,代码以迭代方式演变,那个特定问题已经解决(PWCs 是正确答案,如果您感到好奇的话),每

我从一开始就建立起构建流程、文档和源代码控制。尽早建立这些内容很重要,这样其他开发人员才能快速加入项目并进入角色。

代码以迭代方式演变。每次迭代都首先为新功能编写单元测试,然后是实际编码,最后是通过单元测试。我从一些基础功能开始,比如查询存储库以了解它的功能,检索对象和对象属性来验证常规方法。然后,我以此为基础继续进行,开始全面编写操作、签出/签入、关系和 ACLs。

一开始测试很困难,因为不存在参考实现(那时 Apache Chemistry 的参考实现中的 AtomPub 绑定是只读的)且供应商还在开发他们的实现。Alfresco 是 CMIS 的一个早期采用者,当时拥有最成熟的实现,因此我从那里开始。当大多数单元测试都针对 Alfresco 顺利完成后,我就开始针对已经公开发布 CMIS 实现的其他供应商进行测试。IBM 慷慨地主动公开他们的实现。添加这个实现使我大开眼界,但这对于 cmislib 和所有相关供应商都是一个极好的练习。我们在客户端和服务器端都发现了一些问题,如果没有这种互操作性测试,我们不可能那么快地发现问题。

如果您正在开发 cmislib 这样的 CMIS 工具或 APIs,重要的是要针对尽可能多的不同服务器进行测试。CMIS 规范是全新的且供应商实现还不够成熟,即使那些宣称完全遵守规范草案的供应商实现也是如此。已发现的常见问题分为以下三类:

不完整的实现。CMIS 还非常新,发现以下情况很正常:缺失的服务(ACL、关系、策略以及当时似乎最不支持的更改日志),还没有收到支持的强制特性(例如,没有提供的强制集合和链接),以及硬编码的值。

对规范的不同解释。CMIS 规范是一个编写良好、容易阅读的文档,但有些内容仍然需要解释。例如,在草案 6 之前,checkedout 集合的内容比较模糊。该集合包含的是签出对象的 Private Working Copies (PWCs) 还是签出对象本身?不同的供应商对这一点的解释都不同,并根据它们的解释来实现。那个特定问题已经解决(PWCs 是正确答案,如果您感到好奇的话),但您可以从中看出那可能会使编写一个互操作的客户端出现困难。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:一个 用于 Python

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接