后端开发完接口才给接口定义, 是常规操作吗?

2019-04-18 22:36:53 +08:00
 Chingim

最近加入了一个 1000 多人的中型公司, 在做项目的过程中, 后端不愿意先协商接口定义, 坚持等他开发完后才给接口文档, 理由是先给接口文档, 实现的过程中难免有变动, 改动起来很麻烦.

而作为前端, 我的理由是, 产品需求文档以及设计稿已经具备的情况下, 先约定接口定义, 前后端可以并行开发, 提高效率.

几番交涉之后还是没有达成一致, 现在是他开发一个接口, 给一个接口的文档.

之前就职的小公司是开发前给接口定义, 所有人评审接口之后再开发的. 我觉得效率很高, 定义好的接口, 开发过程中的改动也只是简单的增减, 不会有很大的变化.

是公司规模造成的开发流程差异吗? 请朋友们说说

17856 次点击
所在节点    程序员
143 条回复
guyujiezi
2019-04-19 10:26:06 +08:00
那个开发没有听说过 TDD 么?

开发完再给接口,也太随心所欲了
ryonanamizu
2019-04-19 10:45:24 +08:00
@kevinlm 我宁可这样
Alex5467
2019-04-19 10:45:44 +08:00
@reus 能说出这种话的你怕是也是一种坑货吧,那你咋不说需求改了,产品也是坑货呢
Gea
2019-04-19 10:46:18 +08:00
小公司,小业务,当然可以先出文档了,如果业务足够简单,不需要看之前的代码,不需要调用其他服务,评审会上都能给出接口定义,如果你现在的公司是这样的,那喷一下后端我觉得有理。

大公司,复杂业务,前端状态复杂,后端也要多服务调用,你一开始给出接口定义,到最后开发出来可能完全不一样,或者很大一部分不一样,再调再改的话,接口定义很没意义也很蛋疼。

其次,写一个接口给一个接口文档提供给前端,你自己都不觉得很打乱开发节奏吗,后端要做的是: 看之前的代码=>结合需求,做业务 balabalabala=>提供文档,再循环往复。需要反复的思维转换,我觉得很影响开发效率。

最后我觉得还是看业务的情况,公司规模大小。一个前端转后端,小公司大公司都待过的我是这么觉得的
Alex5467
2019-04-19 10:46:55 +08:00
@AngryMagikarp 同意加一
AngryMagikarp
2019-04-19 10:48:33 +08:00
在某些人眼里,产品需求明确了,接口文档下一秒就应该出了,不出就是能力不行。

在实际中,只要不影响开发进度,我并不关心他什么时候出。很多时候都是可以先作页面的,大部分简单的接口后端也能在前端需要之前就给出。一个项目的开发是多方面的合作,而不是谁要顺着谁。如果后端接口开发真的慢,也应该反应到上级,才能让他们调整开发流程。

互相理解互相帮助,及时沟通才是正解。当然这是理想情况下。
DavidNineRoc
2019-04-19 10:50:01 +08:00
我感觉楼上是不是理解错了? >>>前端不得骂死你?一个展示页面需要调用三个接口来组装数据?>>>
一个页面只给一个接口的真是神人, 我只能这样说.
我司的做法:
UI 出设计图 => 前端画页面 && 后端写接口 ==> 后端给接口文档 && 前端渲染数据 ====> 稍后不同步, 前端做其他模块的页面, 后端开发其他模块的接口.
reus
2019-04-19 10:52:49 +08:00
@Alex5467 瞎鸡巴改需求,当然也是坑啊,有什么问题?
AngryMagikarp
2019-04-19 10:53:21 +08:00
@DavidNineRoc 我随便举了个例子,说一个页面三个接口的情况,你的理解就是一个页面必须一个接口?你的阅读理解才是神。
reus
2019-04-19 11:08:16 +08:00
@AngryMagikarp 我可没有说完全不顾,像一个页面需要三个接口的数据,那一起发过来,一起返回,甚至做更复杂一些的处理,都不是什么大问题。一次请求对应多个接口调用,这个可以实现成通用的机制。

内部调用和外部调用的方式可以有不同,但基本的参数和返回字段,难不成还用不同的?总得提前决定吧,后端之间也等实现了,才来改字段名或者加适配层?

接口可以有通用的,就是一堆 CRUD 的,可以有非通用的,例如只给某些页面或者终端用的。通用的,在初期就给出文档,不难吧?非通用的,可以在后面根据需求增加。至于前端还是后端写,需不需要讨论,这些都不是重点。楼主说的是后端在“实现”了接口之后才给文档,你真的觉得这样合适?

要加个格式化的时间字段,也不是大问题。注意是“加”,不是“改”,后端加了,你想用就用不想用就不用,不影响协作。

这一套流程不是我发明的,这里其他人一样有使用同样流程的。我们用得轻松愉快,不然楼主也不会发帖了对吧?
reus
2019-04-19 11:09:17 +08:00
@ety001 就事论事,连设计稿都出了的情况下,如果谁还说需求不明确,那这个团队的开发能力,绝对有大问题。
Gea
2019-04-19 11:10:12 +08:00
还有让返回 xx 前的?数据完全不复用?完全不能二次使用,只用来渲染?客户端性能全部用来渲染,不做一点计算,全部交给服务端计算?
atonku
2019-04-19 11:19:32 +08:00
@Sparetire 你这明显不是套路啊,应该是这样的:
后端花个一天设计接口,前后端再一起花一天过一遍接口,定好接口文档,然后第三天上线。
DavidNineRoc
2019-04-19 11:20:09 +08:00
@AngryMagikarp 说话不能好好说, 动不动就阅读理解有问题, 自己阅读理解有问题吧? 自己把 三个大于号之间的文字复制,搜索. 看我是和你说还是和另外的人说. 这是理解障碍?
reus
2019-04-19 11:21:42 +08:00
@AngryMagikarp “大部分简单的接口后端也能在前端需要之前就给出”,这不就是楼主想要的吗??问题就在于楼主连这个都拿不到,完全等后端开发完接口了,才有!
reus
2019-04-19 11:34:29 +08:00
@AngryMagikarp 我希望你能理解“能写出来”和“下一秒就应该出”的区别。
siteshen
2019-04-19 11:43:51 +08:00
@kevinlm 我是后端开发,也遇到过这样的后端,也想拍死这种不负责任的后端。
aa1072551507
2019-04-19 12:01:13 +08:00
在我的小公司 都是我前端写先完页面 然后我把需要的接口格式写文档给后台人员 最后后天才开始写接口哈哈....
IvanLi127
2019-04-19 12:04:22 +08:00
这人数。。直接怼,没文档你没办法开发。或者你约定 api 文档,重新调整人员分配。编码明显是在这些东西之后的,他反驳你,你就质疑他专业能力
947211232
2019-04-19 12:17:02 +08:00
理应新定好接口再开发

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/556593

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX