0

我们有一个项目,其中 UI 代码将由同一团队开发,但使用与服务层 (REST/Java) 不同的语言 (Python/Django)。每个层的代码存在于不同的代码存储库中,并且可以遵循不同的发布周期。我正在尝试从 UI 层的角度提出一个可以防止/减少服务层中的重大更改的过程。

我曾考虑在 UI 层级别编写集成测试,我们将在构建 UI 或服务层时运行(我们使用 Jenkins 作为我们的 CI 工具来构建两个 Git 存储库中的代码),如果出现故障,然后服务层中的某些内容损坏并且不接受提交。

让服务层的开发人员为 UI 层中存在的 REST 服务创建和维护一个客户端库也是一个好主意(这是一个最佳实践吗?)他们的服务 API?可以想象,我们将获得 UI 代码所依据的静态类型 API 的优势。如果客户端库 API 发生更改,则 UI 代码将无法编译(因此我们会很快知道发生了重大更改)。我还会在构建 UI 或服务层时运行集成测试,以进一步验证 UI 和服务之间的集成是否仍然有效。

4

1 回答 1

1

我相信客户端层是一个非常好的主意,不仅可以管理界面,而且可以方便可能没有正确构建客户端层技能的客户端开发人员。我不同意构建客户端层的人必须是 RESTful 服务器 API 的开发人员。您应该找到具有适当技能的开发人员并将任务分配给他/她。

将成功测试作为提交条件的想法是一个很好的想法,尽管如果您使用 maven,您可以对在整个过程中何时执行这些测试更有选择性。

我对你提出的唯一建议是,你考虑一个轻量级的、基于模板的代码生成器,用于构建服务器、客户端和测试层的任务。M2T Eclipse 项目中的 EMFT JET 是一个非常好的解决方案。您可能喜欢其他代码生成技术。

于 2012-08-06T01:45:51.590 回答