系統設計規範化解決了什麼問題

cuiyaonan2000發表於2014-10-20

系統設計規範化解決了什麼問題()

大家好,今天總結下我從事開發工作這幾年裡,對於專案規範化的一點想法和感觸.

在筆者心裡,規範是為了解決問題而存在的,某些規範都是為了對應問題而存在的.所以只要是能解決問題的文件,宣告都是規範.

  在某時開始設計系統,帶人做系統的時候.筆者考慮到了如下幾個問題:

  1. 需要將系統設計成模組化流程化.

  2. 需要將系統具有共性的操作抽離成統一的介面

  3. 需要為系統設計一套程式碼規範

  4. 需要將系統設計的更能滿足未來的需求

 

問題1解決了哪些問題:

  • 對於系統目錄:筆者之前遇到過一些專案,再熟悉系統時吃了些苦頭,花費了很多時間去研究,最糟糕的是在系統環境搭建啟動的時候都有很多困難。10個工程可能有10種的搭建方式,所以如果你的專案構建比較另類,請提供一份系統目錄搭建描述。如果你不想花時間去寫文件,可以使用很多人都在用的MAVEN構建工程,這樣每個開發人員都能快速熟悉工程,搭建工程環境。

  • 對於系統層級:如果需要你去維護一個系統,jsp中摻雜了程式碼,又一個類有一千行,一個函式有幾百行,馬上就感到眩暈感覺天要塌下來了.劃分好各個層級的職能可以有效的減少這種情況的發生,actin/web只負責請求轉發,service只負責業務處理,dao只負責資料庫操作,jsp只負責頁面展示,domain只負責物件關係對映,util只負責提供工具類,constant只負責提供常量,model只負責頁面資訊物件的傳遞.這樣各層只負責指定的功能,一個流程化的開發模式就形成了.減少維護難度,降低出錯的概率.

     

問題2解決了哪些問題:

  • 減少開發人員工作量:在一個系統中有很可以封裝的東西,比如對資料庫的操作,筆者將所有的對資料的操作方法全封裝到一個介面類裡,並提供了一個抽象類實現該介面.又或者對於jsp頁面中提供統一的前端校驗js檔案,service層提供預設的事務隔離級別與傳播機制.這樣就減少各開發人員的工作量.

  • 減少開發人員重複性工作:如上.

 

問題3解決了哪些問題

  • 便於系統的全域性控制:比如方法名是按照規範來的,那在事務控制中,由於要對不同的方法名設定不同的控制級別,那就會非常方便.又比如將來要實現讀寫分離,需要根據方法名選擇不同的資料來源,方法名規範就非常方便,否則就需要大量的改動.

  • 節省時間:看到一個變數名就知道型別,看到方法名就能知道功能,看到類名就知道代表的事務,這樣可以節省大量的時間.

  • 筆者在2012年總結的一份規範文件部落格:http://blog.csdn.net/cuiyaonan2000/article/details/8331002.本人的聯絡方式cuiyaonan2000@163.com

 

問題4解決了哪些問題

  • 技術上的需求:做系統設計需要提前想到開發人員,將來在開發過程中可能遇到的問題,需要提前想到解決方案,比如需要webservice,可以提供cxf實現方案.又或者需要進行前臺/後臺的資料校驗證,可以提前提供jquery validate實現方式.需要進行系統間的系統互動可以使用jsm實現方案.

  • 效能上的需求:隨著專案經驗的增加,筆者發現如果需要提升專案效能,比如加入頁面快取,資料快取,讀寫分離,全文檢索,業務拆分,叢集化,都會改動系統的框架.如果前期設計的不好,就需要相當於重做.所以建議專案在開始設計的時候就需要考慮到專案將來的效能問題.

 

總體來說筆者想到這些問題的原因有3方面.

  1. 讓開發人員用最少的時間熟悉系統,瞭解系統.

  2. 增強系統的可維護性,擴充套件性.

  3. 增加系統的效能.

 



 

                                                                                                           

 

 

相關文章