2年之前,我想做个新闻系统,2年之后,我把新闻系统做好了,而且做的有模有样。固定的,我每个月都会为这个系统写一些代码,有些代码处于好玩,有些代码出于需求,有些代码出于测试,反正有各种理由,这些代码就这么存在了。期间我也参考了很多的cms,感觉他们好的功能都借鉴过来。用自己的实现方式。
这个系统的特点:1在线编辑模板 2实现了ztree的所有功能 3 实现了epv字段扩展。4实现了批量静态页面,5多语言功能。
久而久之,这个系统变得臃肿了,存在的问题如下:
1、存放了太多附件。jquery版本都n多个。
2、引用了很多小程序,各有各的css,image。存在很多的安全隐患。
3、之前采用了简单的mvc,但现在问题暴露出来了,我自己写了很多的left join 还有各种getNewsByWhere ById ByOther BYContent?
4、我写的添加新闻add方法,代码出现了300多行。我的新闻列表listing已经达到200多行。问题愈演愈烈,代码越来越臃肿,判断语句自己都快无法识别了。
5、安全性下降。
但是,需求还不完,这个只是个新闻系统,我想要做个图片专题。
我打算修改原来的系统,修改数据库结构。突然间发现,要是我以后再要一个专题功能,我不得不再次修改我的程序。
我不得不停下来思考。我与其去修改,不如重新架构来的快。2年间来我都是一句句手写代码的(作为新手,我认为这点还是必须要经历的)。现在完全可以使用orm进行导入。
现在框架的集成度很高,对于旧式的系统,玩不了几周的时间,完全可以重构一个。但前提是,你是否已经想好了怎么去设计数据库才是最合理的,扩展性最强的,结算代码是最少的,效率是最高的,存储空间是最少的。
好了,想了这么多,我去重构了。这次我选择了java,而不是php。