前端开发十大坑

897 阅读6分钟

工作三年以来,历经了几个项目,一路走来,踩了不大不小的坑。最黑暗的阶段,每天都摸不清方向,不知道往哪里走,越做越错。最近一段时间,回溯了以前的工作,总结了几个问题,才这些问题不只是个人能力的问题,更多出于团队管理的问题。
首先,让我们来明确一个正常的开发流程:

1.需求会议

需求会议的目的,这一阶段在于评审需求的技术可实现性。对于现阶段无法实现的需求,应对方案有两种,第一:取消需求,放弃开发;第二种:调整项目的技术架构,实现需求。这是一个相互博弈的过程,需要领导拍板。

2.根据用户原型,了解业务逻辑。

这一阶段,产品要深入参与进入,将所有的业务讲解一遍,形成逻辑上的闭环,明晰各个业务流程的分支。这里大到主业务的每一个流向,小到支路业务的任一分支。理想情况下,是越明晰越好。

3.根据已经形成好的原型,进行技术分析,模块划分。

要在前端内部划分好模块与负责人,抽象出可重用部分,制定命名规范,协商模块接口等。

4.接口商定。

某一模块的前后端开发人员,相互对接前后端交互接口。在这一阶段,需要确定好入参,出参。确定好以后,交付结果以文档形式进行产出。

5.交互商定。

主要是排版与特效问题。这里设计的细节很多,比如:按钮是否有按下的特效,“备注”等文字在一行,两行,多行时,如何排版。

6.需求开发。

进行开发时,需要遵循代码规范,注意解耦,提升可维护性。

7.业务联调。

在“开发环境”上进行开发,串联业务上下游,完成开发。合并进行dev分支

8.测试。

将多个开发的功能,进行release,交付测试人员。不停地修复bug。

9.发布。

release分支测试完成后,合并进入master,上线。

现在我来展开说说,这里有哪些坑。

第一个坑,没有需求会议。 所有东西都是客户(产品)一句话。代码一梭子直接上,这里可能导致做到后面,发现两个问题:

  • 货不对版。结果交互之后,客户说:“我要的是那个,你怎么给我这个?”
  • 技术无法实现。比如说:“你这个上传的公文,怎么颜色那么暗?版面还是歪的。你看看‘xx’扫描王,人家上传的文档又美观又整齐!”

第二个坑,有原型,但是没有没有进行业务逻辑的分解。 开发的时候,经常发现逻辑根本走不通,或者有多个分支可以走,这个时候,来回询问产品,时间全部花在跑路上。等到开发完成,进行交付的时候,各种改,最后自己不知道自己写了什么。屎山开始诞生。

第三个坑,前端内部没有进行技术分析。 接到原型,粗略的数数页面,每人分几个就行了。这里导致的结果:

  • 丢失效率,且用户体验错乱。重复开发,明明多个页面会重用某一个业务组件,成员各自开发了一遍。在细节实现上还有所不同,结果被测试和产品吐槽“怎么这两地方不一样?瞎搞!”。
  • 业务间交互不一致,各种适配。例如,中间业务组件与多个业务组件有数据交互的需求,结果A页面要的是name,B页面要的是userName,C页面要的是nickName。中间组件需要给所有页面都都要适配一遍,累死个人。

第四个坑,前后端接口文档不规范。 目前流行的swagger,在某些后端开发人员手里简直成了毒瘤。各种数据库的对象层层嵌套,简直就是俄罗斯套娃,前端都要被你给套晕了。这种不必要的数据返回,轻点说,耗流量,重点来说,把数据库的底裤都给漏出来了,不安全。在这里,同样容易出接口入参名称不一致的问题。同样是“用户名”字段,可能从A接口拿来的时候,出参是userName,结果到了B接口,入参又变成nickName。各种适配,难受。最惨的当属于没有文档,口头约定,txt,word,电子邮件...

第五个坑,没有交互。 很多项目没有交互设计,只有平面设计。很多项目中,前端拿到的都只是一张图,。每个页面的间距不一样;没有主题色,字体不区分等级;各种宋体,雅黑,平方,都来,还美其名曰:“特色”。对齐看心情,换行自己想。有些图上,为了展现精致,按钮的大小可能只有20 20了。良心话,我在实现UI上花的时间,比写代码还多。每个人都有UI意见,每个人审美都不一样,作为前端的我,被前后夹击。

第六个坑,不注重维护性。 这里主要是团队内部协作和开发人员素质问题造就的。一个团队,如何没有规范,那么成员经常是短视的。而现阶段前端的开发模式,也容易造成大家写出不解耦的代码,没有MVC,所有的代码全部都是C。没有组件,只有页面。当你接手一个超过万行的类时,找一个变量都要大半天时,心里大概有一万头草泥马呼啸而过...

第七个坑,不区分环境。 没有测试环境,没有mock,测试阶段,各个成员随意重启/部署,时不时被打断,数据丢失,报错。咖啡喝到饱。

第八个坑,不区分bug 测试人员从来不看控制台,也不了解业务逻辑,遇到什么问题,都要给前端提个bug,前端人肉路由器和客服机器人,妥妥滴坐实。

第九个坑,代码管理混乱 没有区分master和dev分支,所有代码只有一个分支,遇到线上bug,各种copy,save,写代码就像在走钢丝。没有执行像样的代码管理规范的同学们,你们受苦了。
第十坑。 这个坑,从何而来?这个坑,可能是前面九个坑的万恶之源,也是大家996辛苦加班的一部分原因,那就是:“明天上线,倒排需求”。一些代码管理的小白团队,就会因为这个坑,导致前面九个坑,每天做需求,每天填坑,永不结束,无限恐怖。
以上十个坑,同学们,你们经历过吗?