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