之前我有提到做过的一个demo类的项目,因为觉得一个demo能跑就行,没有必要把日志之类的功能加上去,结果把别人给坑了。现在我发现,某个项目因为自己当初偷懒,如今把自己坑了。
起因
大概两个月前,我接手了一个转手了好几个人的项目。主要需求就是处理一下数据库的数据,然后在页面上展示一下。前端没有什么要求,用easyui套一下就行,页面也就一两个。项目的前端是用JSP做的,而且貌似每一个接手的人都做了一些页面,但这些页面大都样式丑陋,基本没法看,而且现在也完全没有用了。
因为考虑到页面不多,而且项目持续时间也不会太长,需求没有几个,所以我决定前端沿用JSP,尽管我觉得thymleaf更好用。而且,因为只有两个页面,我也懒得去做组件化,layout了,代码大量复制粘贴。
接下来的两个月里,陆陆续续接到了一些需求,增加了一些功能和页面,代码渐渐膨胀了起来。今天,当我再次接到了新需求,打开项目的时候,我发现代码已经变得有点难维护了。
首先是自己粘贴的大量重复代码,看到就头疼,但好歹是自己写的,里面的逻辑还看得懂;其次是页面没有layout和组件化,实现新页面的时候又要做之前做过的重复工作;最重要的是当我想用JSP自定义tag实现layout功能的时候,发现jstl嵌套进自定义的tag之后居然失效(最后发现其实是easyui的问题),因为对JSP不熟悉,找到这个问题花了我很多时间。
反思
其实我也没有料到,当初一个简简单单的小项目会变成现在这样。如果早知道的话,我就不会这么随意地去做了。结果现在又要花大量的时间去对代码进行重构。由此我想到了当前还在专职做前端开发的时候参与的一个app项目。项目初期是用jQuery快速搭建的原型,之后在原型的基础上,不断新增功能,但又没有及时进行重构,结果后来积重难返,前端开发们只能痛苦地用jQuery操作着DOM,而无法享受到MVVM框架带来的便利。
对于每一个接手的项目,我们其实无法预测最后它会发展成什么样,是做完就再也不会碰了还是会一直有新需求。既然如此,我们对任何一个项目都不该偷懒,该做的事情要做到位,该有的功能一个不能落下,代码规范不能放松。否则,我们坑的可能不是别人,而是未来看到当初写的代码后悔不已的自己。
该重构的还是要重构,希望类似的错误自己以后不再犯。