标题所描述的情况,一般出现在后端进度滞后,前端又积累了一些工作量的情况下。在业务需求已经基本清晰的时候,前端的进度是很快的,UI设计出设计图,前端小兄弟切页面,到我这写页面交互逻辑。
当我把前端各个页面的功能、弹出窗口,公共方法都搞好,css,js都理顺,各页面本身的UI交互都写的差不多的时候,就该请求数据了。
而如此这时,后端还存在着技术选型的分歧的时候,就会造成进度滞后,相关接口还没有。有时会因为对需求有了新的理解,而需要换一套后端架构,重来的时候,那时间就比较长了。
一般到这种时候,要么前端就是等;要么前端就自己搞点数据,先自己写。什么后端出一份接口文档,前端按这个搞json,然后等后端有数据了再两边联调试。反正说起来也很简单,无非是一些json,前端先自己搞一下呗。道理是这样没有错。但这里的坑也不少。
但没办法呀,也不能真的前端就一直等啊,开搞吧。
后端的哥们扔给你一份接口文档,你就按这个自己搞了一些json数据,分别是登录,注册,获取列表,自定义功能什么,,等
然后你自己就一板一眼的,好吧,先来登录的json,你就想啊,我登录啊,得输入用户名,密码啊,那么先拼一个,
{
login:{
name:'a',
pass:'b'
}
}
好了,登录后,肯定得有返回啊,低头看看接口文档,喔,有登录成功和登录失败。成功了返回用户信息,失败了返回“登录失败提示并跳回首页”。
Ok,没问题,先来登录成功的,json在线编辑器走起,
{
"message": 0,
"name": "name1",
"sex": 0,
"age": 22,
"address": {
"street": "科技园路.",
"city": "江苏苏州",
"country": "中国"
},
"Interest": [
{
"name": "游戏"
{
"name": "姑娘"
},
{
"name": "吃"
}
]
}
这就是登录成功之后返回的用户信息,然后你就顺着这个json往下写,先判断信息类型。。
if( obj.message == 1 ){
return ;
}
你就这么往下写,把什么地址啊,兴趣都在相应的弹出容器里搞好了。你还美美的想着,“按我这进展,今晚6点下班没问题。小美姑娘晚上一起吃饭,等我喔。。。”
正当你口水差点流出来的时候,后端的同学猛的一封邮件发过来,你打开一看,里面是新的接口文档!我日啊,格式和之前的完全不一样。你问他Y的,这格式不对啊。那厮头也不抬的回你一句,“以此为准”。
这时,你之前写的那些按json格式生成dom,并绑定事件,添加交互的部分,肯定是全部作废的。因为现在的后端发来的json完全不一样了。不说你全白写,至少是80%白写。
这时你只能默默把之前写的js,改的改,删的删。什么小美姑娘,还是留给别人吧。至于什么他们单方面修改个什么字段名啊,把某个值换个地方啊,那都太常见了。
说到这里,我个人对于“后端数据没准备好”,让前端自己搞点假数据这种事的应对方法,就是慢点写。。。
因为他们给你的所谓接口文档,只是“当时当下”的接口文档,万一真的后端架构重来,那之前的文档肯定作废。
我个人觉得,不是不相信他们,而是慢点写,对自己对大家都好。把前端能确定的地方,好好写写,不能确定的地方就慢点写。
以后大家在工作中,万一真的遇到了我文中所写的这种情况,众前端码畜一定要明白,“他们不是为你而工作”,他们也难,他们也要加班。
在他们的心里,也有自己的“小美姑娘”。
别急,别气,都不容易。