最近在进行UI层和中间层的联调,被联调折磨的欲仙欲死,写一些我的感受和建议,方便后期避免
1. 参数的传递。
在进行接口设计时,针对接口参数和返回值,只传递必要的信息,并应该针对参数和返回值的各种取值给出说明,必要情况下,给出参数和返回值的错误处理方式。中间层如果发现参数属性不够,通过新建一个类,对参数类以聚集方式扩展;同样道理,UI层也需要针对接口返回值,创建新对象扩展。
接口参数和返回值对象可以有自己的体系架构,也可以在中间层和UI层发展出自己的体系架构,只要传递给接口的对象属性相同即可。
通过这种方式可以最大限度减少因为对接口参数理解的不同,产生的代码问题。
2. 好的抓取问题方式
在联调时,不可避免的前台和中间层会有问题,那么怎么获得一个较好的问题抓取?我认为关键是建立安全边界,比如什么情况问题是由前台处理,什么问题由中间层处理,一个建议是如果前台向中间层传递了参数,那么只要在中间层接收到参数,前台就不管了; 而如果中间层返回了数据,以后的问题中间层也就不管了;如果在处理过程没有异常,前台需要根据参数和返回值,判断接口返回数据是否是自己想要的数据;而中间层在接收参数,需要判断参数是否满足自己的要求。这个问题的前提是第一点,只使用必要的属性传递数据,尽量减少灰色属性的存在(前台赋值也可以、后台赋值也可以的扩展字段)
3. 编写基于针对中间层的测试文档和测试用例
联调前,前台和中间层需要尽量保证数据的正确性,根据接口文档,中间层实现参数合法与非法状态的测试用例;前台根据接口文档,写出不同参数下的mock实现。这样虽然复杂些,但是可以减少联调时间。综合下来应该是比较合算的。
4. 将接口实现放在SVN 中一个单独的文件夹
当中间层和前台不在一个功能时,方便两个人的下载