我们有一个项目,其中 UI 代码将由同一团队开发,但使用与服务层 (REST/Java) 不同的语言 (Python/Django)。每个层的代码存在于不同的代码存储库中,并且可以遵循不同的发布周期。我正在尝试从 UI 层的角度提出一个可以防止/减少服务层中的重大更改的过程。
我曾考虑在 UI 层级别编写集成测试,我们将在构建 UI 或服务层时运行(我们使用 Jenkins 作为我们的 CI 工具来构建两个 Git 存储库中的代码),如果出现故障,然后服务层中的某些内容损坏并且不接受提交。
让服务层的开发人员为 UI 层中存在的 REST 服务创建和维护一个客户端库也是一个好主意(这是一个最佳实践吗?)他们的服务 API?可以想象,我们将获得 UI 代码所依据的静态类型 API 的优势。如果客户端库 API 发生更改,则 UI 代码将无法编译(因此我们会很快知道发生了重大更改)。我还会在构建 UI 或服务层时运行集成测试,以进一步验证 UI 和服务之间的集成是否仍然有效。