联调从周三正式开始。
吉彤坐在工位前,打开华信那边发来的测试环境接口地址,开始逐一接入沈瑶梳理好的接口清单。他先跑通了最简单的用户信息查询,数据返回得还算顺畅,但到了角色列表这一项,返回的结构跟小张之前在会议里承诺的完全不一样——文档里写的是对象数组,键名为id和name,实际返回的却是一个嵌套了三层的结构,最外层多了一个data包裹,里面还有个permission字段,压根没在文档里出现过。
吉彤截了个图,在微信上发给小张:这个返回结构跟我们上次约定的不一致,你看一下。
小张过了二十分钟回了一条:哦那个是老接口版本,文档没更新。你按实际返回的来就行。
吉彤盯着那行字看了几秒。他想起沈瑶之前说过的话——每一处不清楚的地方都得来回问。他压住心里的那口气,把实际返回的结构解析出来,重新调整了前端的映射逻辑。但这只是个开头,接下来测验证码接口时又出现了新的问题:错误码返回了三位数,但跟文档里任何一项都对不上。
吉彤这次没有直接在微信上问小张。他打开一个Excel表格,把已经对接过的几个接口实际返回的字段结构和错误码全部列出来,在旁边标注了文档所述实际返回两栏,差异处用红色标出。做完之后他把表格发到项目群里,同时在群里@了小张和刘师傅:辛苦两位看一下这个对比表,有几个地方跟文档差异较大,需要确认以哪个为准统一一下。
群里安静了一会儿。大约十分钟后,刘师傅回了一条:抱歉,文档确实没同步。你按实际返回的来,后面我们安排人把文档补全。
沈瑶从旁边探过头来看了吉彤的屏幕一眼,没有多说什么,只是轻轻了一声,尾音微微上扬,像是某种默许。
周五下午,华信那边来人了。小张背着黑色电脑包走进蔚蓝科技的时候,吉彤正在调第三个接口的集成逻辑。他抬头看见小张在前台那边刷来访登记,雾蓝色头发的前台姑娘正耐心地教他怎么用访客系统的触屏,小张的手指悬在屏幕上方按了好几下才点准。
小张来了。沈瑶从工位上站起来,走过去迎了一下,先坐,茶水间有水有茶,你自己倒。
小张被带到一张空着的临时工位上。他放下电脑包,目光不自觉地扫了一圈周围的工位——那些绿植、手账本、加湿器、毛绒柯基、写着今天也要温柔地解决问题的便签。他的表情微微抽动了一下,像是不确定自己看到了什么。
吉彤起身去茶水间接水的时候,小张正站在旁边四处打量。看见吉彤进来,他点了下头算是打招呼,然后目光落在茶水间的那排茶叶罐上——茉莉花茶、铁观音、菊花、桂花蜜,旁边还有一罐红糖和一瓶蜂蜜。小张伸手拿起那瓶桂花蜜看了看标签,又放了回去。
你们这边……东西挺全的。小张说。
茶水间日常补给。吉彤倒了一杯茉莉花茶,你要喝什么自己倒。
有速溶咖啡吗?
没留意,好像没有。
小张了一声,最后还是倒了杯白水。
联调的技术交流在下午两点半正式开始。沈瑶拉了一张白板到小张座位旁边,把之前吉彤整理的那份接口差异对比表投影到墙上,一条一条过。小张坐在椅子上,两条胳膊交叉搭在电脑键盘两侧,每被指出一处不一致就低头在代码里翻找一下,然后解释一句那个是后来改的没更新这个我回去问一下后端同事。
吉彤坐在旁边,沈瑶每指出一处他就在自己本子上记一笔。他注意到小张的语速比上次在华信会议室里慢了,也没有那种不耐烦的甩话,也许是换了个陌生的环境,也许是蔚蓝这边空气里那股淡淡的茉莉花香本身就让人不容易上火。
过到第三个接口的时候,小张忽然停下来,转头看了吉彤一眼:你这表格做得很清楚。我们内部要是有人能把文档理成这样,我少加一半的班。
吉彤愣了一下:就是Excel列的,没什么。
列清楚就是本事。小张说完这句又转回去看代码了。
联调进行了两个小时,解决了五个接口的数据映射问题。小张走之前把吉彤那份Excel表要了去,说回去照着把文档重修一版。沈瑶送他到电梯口,转身回来的时候对吉彤说了句:他态度比上次好多了。
可能是因为来了咱们这边,不太好意思摆架子。
也可能是你那表格让他觉得咱们是认真做事的。沈瑶坐回工位,你知道华信那种公司,对接的乙方多了去了,很多人就是混着把联调跑通就完事,数据对不对、错误码全不全他们不在乎。咱们一在乎,对方反而会认真一点。
吉彤回到座位上,看着屏幕上已经跑通的三个接口,忽然有点恍惚。他在恒远科技的时候,跟外部供应商对接永远是最痛苦的一环——对方的接口乱七八糟,但没人有耐心去整理成表格,所有人都在各管各的跑通,最后上线前一周集中崩溃。而现在他花了两个小时做了一张表,反而让整个流程顺了不少。
傍晚时分,赵宇从外面抽烟回来,凑过来问联调怎么样了。吉彤简单说了一下,赵宇听完若有所思地点了点头:你说这种整理表格的活儿,在咱们以前的公司是谁干?
吉彤想了想:没人干。
对啊。赵宇靠在椅背上,没人干就烂着,烂到最后大家加班一起补。我上周改代码的时候发现沈瑶给每个接口都写了mock数据,我一开始觉得她太闲了,后来发现有了mock我前端开发根本不用等后端接口,自己跑自己的,效率高出一截。你说这事儿以前的公司有没有人做?也有人提过,但大家都是等后端好了再说,一等就等了一个月。
吉彤没接话。他看着自己Excel表格里那几行绿色的已确认标记,心里慢慢浮现出一个念头——过去他觉得没人干的原因是活儿太多干不完,现在他开始觉得,也许根本原因是没人觉得应该干。
周一上午,吉彤收到了小张发来的修订版接口文档。打开一看,字段定义、错误码清单、数据结构示例都有了,虽然格式依然不算精致,但至少每一项都写得清楚明白。文档末尾附了一句:ExcEL对照表借鉴了你们的样式,感谢。
吉彤把文档转发到项目群里,刘师傅在群里回了个收到,辛苦,沈瑶回了个竖大拇指的表情。
中午吃饭的时候,吉彤在食堂碰见了林悦。她端着一份番茄炒蛋坐下,看着吉彤的脸说:你最近气色比刚来那会儿好多了。
有吗?
刚来那几天你眉毛总拧着,现在松开了。林悦夹了一块鸡蛋,华信那边的联调怎么样了?
进度还行,接口已经对接了大半,下周估计能进入端到端测试。
有遇到什么麻烦?
吉彤想了想:麻烦倒称不上,就是他们那边的做事风格跟咱们不太一样。很多东西都是边做边定,咱们习惯先定清楚再做。
林悦嚼完嘴里的饭说:你说的是先想清楚再动手,华信那边是先动起来再说。两种方式各有利弊,但问题是,两种方式凑到一起就容易打架。她放下筷子,咱们这边已经定了的事,他们那边可能还没想好。反过来,他们觉得理所当然的东西,咱们可能认为不够周全。
那怎么办?
两个办法。林悦竖起一根手指,第一,咱们的文档做得细致一点,让他们照着做,省得他们自己琢磨。第二,定期同步,不要让问题攒着。你现在那个Excel表格就是第一种办法的实际例子,挺好的。
吉彤点了点头。林悦又夹了一筷子菜,忽然像是想起了什么:对了,下周孙姐可能要你去一趟华信,带着咱们的接口测试报告当面跟他们技术总监过一遍。你准备一下。
吉彤心里微微一紧,但嘴上说:
别紧张,林悦看出来了,你就跟上次开会一样,有什么说什么,拿数据说话。他们技术总监虽然是个五十多岁的男同志,但交流起来比你想象中讲道理。
午饭后吉彤回到工位,打开小张发来的修订文档,一条一条跟自己的Excel对照着过了一遍。确认没有遗漏之后,他新建了一份测试报告模板,把已经跑通的每个接口的测试用例、预期结果、实际结果、异常场景覆盖情况都填了进去。填到第三个接口的时候,赵宇从他身后经过,低头看了两秒,说了句你现在写文档的劲头赶上沈瑶了,然后笑着走开了。
吉彤没抬头,继续填。茶水间的门开关了一下,有人进去泡茶,带出一缕玫瑰的香气。窗外的阳光比上周烈了一点,落在键盘上时能看见细微的灰尘在光柱里浮动。他填完最后一个接口的时候把电脑推远了些,靠在椅背上伸了个懒腰,目光掠过工位左侧贴着的那张浅绿色便签——沈瑶的字迹接口文档已更新,被他夹在笔记本里一直没扔。
手机震了一下,是项目群里的消息。小张发了一张截图,是华信内部技术群的聊天记录,他截了一段自己发的消息:蔚蓝那边整理了一个接口对照表,结构很清楚,建议以后咱们对外项目的文档参考这个格式。下面有个人回了个大拇指,另一个人问能不能发我一份学习一下。
吉彤看着那张截图,不知道该怎么回。他最后只发了一个不卑不亢的有用就好过去,然后把手机扣在桌上,重新转向屏幕。
傍晚六点,沈瑶拎包下班,经过吉彤工位时停了一步:报告写得怎么样了?
差不多,明天收个尾。
行,不着急。周三之前给我看一眼就行。
沈瑶走了两步,又回头说了一句:对了,华信那个小张今天给我发消息,说他们内部下周要统一接口文档规范,提到了你那表格。你跟华信那边对接得比我想象中顺利。
吉彤抬起头:可能是因为他那次来咱们公司待了一下午,感受了一下氛围。
沈瑶笑了一声:可能吧。走了啊。
办公室渐渐安静下来。吉彤最后检查了一遍报告里的错别字,关掉电脑。他收拾背包的时候看见赵宇的工位上贴了一张新的便签,字迹是他的:本周目标:早睡三天。周一已完成0/3。旁边有人用蓝笔添了一句加油你可以的,还画了一颗小星星。
吉彤笑了一下,拉开玻璃门走出去。楼道里茉莉花的香味淡了一些,像是换季前最后的尾巴。他走进电梯的时候脑子里还在转林悦那句拿数据说话,转了两圈之后他意识到自己并没有想象中那么紧张。
电梯下行,楼层数字一格一格跳动。他低头看了一眼手机,小张又在群里发了一条新消息,是华信内部文档规范起草的初稿链接,后面写了句参考了你们那边的风格,提提意见。
吉彤点开链接看了两行,电梯门开了。他收起手机走出大堂,初夏傍晚的风裹着热气扑在脸上。
他忽然想,下周三去华信过报告的时候,也许可以顺便问一句小张,他们那边茶水间有没有茉莉花茶。