最近做了一个项目,只负责前端部分,总结一下做项目中的坑。

首先是定位问题,我之前接到的通知是分析一下前端的工作量,进行一下人力安排排期,天真的我没有了解项目架构,仅仅是算了一下页面开发工作量和联调时间。事实证明,这个想法误导了我,后期吃亏了很多。在一个项目中,不管负责的内容多少,都要对项目的架构等有个整体的了解,对接多少项目组,什么样的架构,如何提测发版等对后期的开发很重要。

 

1.开发之前:

  1.需求文档:接到需求之前需要仔细阅读,首先确定逻辑是否通,提出疑问。其次看一下处理流程,对需要对接的项目组心中有了解,分别去问这些项目组如何调用。第三,要确定接入方式,是外网接入还是内网接入。外网接入要确定开墙,前后端调用方式。

  问题点:没有预估接入方式的问题,导致在开发环境前后端直接调用时可以的,测试环境以为外网接入,必须前端先调用app项目,app项目去调用后台接口。这样导致之前的代码都需要重新改动,重新测试。

  2.接口文档:拿到接口文档,第一,和后端同时确定每个字段的含义和格式。第二,模拟全流程,确定字段是否齐全,是否否合逻辑。第三,确定出所有需要放在配置文件的字段,分别确定其生产,测试,开发阶段分别对应什么值。

  问题点:特别注意需要写死传的值,一定要问清楚是否是测试生产及开发是否一致。切忌开发阶段写死联调,开发量大了,后期忘记修改,开发环境和测试环境如果是同一个值,导致生产环境不一致出现问题,影响发版流程。

  3.联调方式:通过需求文档,确定前端要与几个后端项目联调。每个项目是如何的调用方式,参数加密方式(是否需要加密加签,如何加密加签,公私密钥分别是什么(一定要要在发版前让运营验证公私密钥是否匹配)),前段后台写在那个项目组,有哪些是公共参数,公共参数参考上一条。

  问题点:1.这次的开发没有确定有几个后端项目,如何调用。导致联调两个不一样的后端项目,需要用不一样的方式,浪费了时间。2.公私密钥没有让运营去验证是否成对,用了项目中已有的公私密钥,测试环境的公私密钥是正常的,生产的是不成对的,导致生产验密失败发版失败。经验:一定要将密钥问清楚并且发出来让后端确定,并且让运营同事确定是否成对。

  4.架构方式:架构不明确,整体架构不同步是我这次犯的最大错喔,耽误项目中很多问题。项目开始前一定要向架构组确定项目的工程放在哪里,测试工程放在哪里,如何部署如何发版(发版流程,发版方式)等。

 

前端注意点:

1.日期问题一定要复查。项目中有一个获取当前日期传给后台的参数,格式是“yyyy-mm-dd”,前端在js页面处理,但是在每个月一号到九号时候出了问题,比如说2018年6月1号,在传给后台时候传成了“2018061”导致接口出问题,应该在js处理日期为每月小于10 的日期手动补0。

2.参数问题复查。检查项目中是否有写死的值,一定不能存在,所有的都写到常量表和配置文件中。配置文件中的值一定要反复确定,是否生产环境和测试环境说不一样的。

3.密钥问题:生产的密钥一定要在发版前让运营验证是否正确。

4.安全问题:用户敏感信息加密传递,不能泄漏用户的证件号手机号姓名等信息用***代替。xss攻击要注意,入库时候度参数进行转义,可直接使用htmlUtils.htmlEscape(str),前端页面显示直接作为字符串显示。

5.前端框架问题

1).前后端项目要分离。前后端一起打包在一个war包了,不利于以后拓展或者生产测试发布。(例如:每次修改前端,必须重新打包,前后端都要重新发布)

2).前端使用自动化构建工具生成,这样每次修改不需要客户端刷新缓存。

3).css,js,html这三个要分离,不混合写,共通不分要提出来复用。

4).前端模块化。校验,版本号,统一样式,统一组件,全局功能,国际化等方式要先定好。