2年以前,我想作個新聞系統,2年以後,我把新聞系統作好了,並且作的有模有樣。固定的,我每月都會爲這個系統寫一些代碼,有些代碼處於好玩,有些代碼出於需求,有些代碼出於測試,反正有各類理由,這些代碼就這麼存在了。期間我也參考了不少的cms,感受他們好的功能都借鑑過來。用本身的實現方式。php
這個系統的特色:1在線編輯模板 2實現了ztree的全部功能 3 實現了epv字段擴展。4實現了批量靜態頁面,5多語言功能。css
長此以往,這個系統變得臃腫了,存在的問題以下:java
一、存放了太多附件。jquery版本都n多個。jquery
二、引用了不少小程序,各有各的css,image。存在不少的安全隱患。數據庫
三、以前採用了簡單的mvc,但如今問題暴露出來了,我本身寫了不少的left join 還有各類getNewsByWhere ById ByOther BYContent?小程序
四、我寫的添加新聞add方法,代碼出現了300多行。個人新聞列表listing已經達到200多行。問題愈演愈烈,代碼愈來愈臃腫,判斷語句本身都快沒法識別了。安全
五、安全性降低。架構
可是,需求還不完,這個只是個新聞系統,我想要作個圖片專題。mvc
我打算修改原來的系統,修改數據庫結構。忽然間發現,要是我之後再要一個專題功能,我不得再也不次修改個人程序。框架
我不得不停下來思考。我與其去修改,不如從新架構來的快。2年間來我都是一句句手寫代碼的(做爲新手,我認爲這點仍是必需要經歷的)。如今徹底可使用orm進行導入。
如今框架的集成度很高,對於舊式的系統,玩不了幾周的時間,徹底能夠重構一個。但前提是,你是否已經想好了怎麼去設計數據庫纔是最合理的,擴展性最強的,結算代碼是最少的,效率是最高的,存儲空間是最少的。
好了,想了這麼多,我去重構了。此次我選擇了java,而不是php。