公务接待重构
最近需求一直在改,每次都在原来的基础上加一些新的东西,但是到后来发现整个文件里面的代码特别乱,而且特别杂,注释也没有,有时候都不知道自己写的是什么功能,所以,决定把代码重构一波。
以前没有做过重构代码这种事情,这次是第一次,第一次重构代码给我的感觉就是,一边抱怨自己为什么当时不写个注释什么的,为什么不能再最开始写的时候多想想拓展性,另一边则一个一个方法的去看是什么功能,能不能把它写得更简单,能不能把里面的部分方法抽取出来,让整个文件的封装性更加的好。而且因为有些功能已经写了很久了,然后又没有加注释,所以有些状态的转化都已经忘记了,所以在我看来,重构代码真的不是痛苦的过程而是非常痛苦的过程。
我首先是重构的一个表单的提交页面,因为是手机端,所以需要注意的问题比pc端需要注意的问题更多。例如安卓和苹果的兼容性,而且在这个表单的提交页面上有很多的跨页面选择,填写数据,因此去处理跨页面保存数据也是一个问题,在这里,我使用的是==angular==的$rootScope来保存临时的数据,当需要的数据被保存以后,将$==rootScope==清空。整个过程让采用的是==ionic==加上angular,所以在使用ionic的插件的时候还得去考虑是否在苹果手机上展示的效果和需求要的效果是一样的。
值得庆幸的是这个过程中并没有遇到什么解决了很久都没有解决的问题。一般都是一点小小的问题,调试一下就可以搞定。
接下来说说后台的代码,因为我们用的是自己实验室封装的框架,所以很多的基础代码就直接通过创建实体的时候就已经生成好了,我要做的就是在已有的方法的基础上添加自己想要的方法,但是因为中间过程这一个文件有很多人在操作,每个人都写了一套自己的方法,导致整个后台的代码就显得特别的冗余,有很多可以共用的方法也没有被抽取出来。因为我是这一块的主要负责人,所以最后还是得我自己来把整个后台的代码也重新整理了一遍。
整个代码的重构过程花了大概5天的时间,当然,如果按完整的一天来算的话,大概也就2-3天的时间,只是这5天每天都有在做这个事情。现在基本完成了,回过头去看已经重构好的代码,没有了以前的冗余,加上了该有的注释,让整个代码都显得清晰明了,重构后的代码也将封装性,拓展性做的比之前更好一点。
通过这次重构代码的经历,也让我汲取了一些教训:1. 写代码之前将需求搞清楚,思考清楚该怎么写,有没有效率更好的方法
2. 每写一个方法或者一个不太清楚的变量都应该加上该有的注释,这样在以后别人看或者自己去看代码的时候才会知道这个方法是干什么的,不然可能就会变成,别人在看你代码的时候,一边看一边骂。
3. 在一个就是封装性和拓展性以及兼容性,这三个部分是分厂重要的,做好了这3个部分可以减少很多的代码量,让整个代码看起来很清晰简洁。
第一次重构代码的一点感想,还是记录一下。