系統設計規範化解決了什麼問題
系統設計規範化解決了什麼問題(一)
大家好,今天總結下我從事開發工作這幾年裡,對於專案規範化的一點想法和感觸.
在筆者心裡,規範是為了解決問題而存在的,某些規範都是為了對應問題而存在的.所以只要是能解決問題的文件,宣告都是規範.
在某時開始設計系統,帶人做系統的時候.筆者考慮到了如下幾個問題:
-
需要將系統設計成模組化流程化.
-
需要將系統具有共性的操作抽離成統一的介面
-
需要為系統設計一套程式碼規範
-
需要將系統設計的更能滿足未來的需求
問題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方面.
-
讓開發人員用最少的時間熟悉系統,瞭解系統.
-
增強系統的可維護性,擴充套件性.
-
增加系統的效能.
相關文章
- 智慧經營系統怎麼樣?解決了什麼問題?
- Promise到底解決了什麼問題?Promise
- 程式設計師你為什麼這麼累? - 配置規範程式設計師
- ES6解決了什麼問題
- Akka 系列(六):Actor 解決了什麼問題?
- Akka系列(六):Actor解決了什麼問題?
- Service Mesh是什麼,為我們解決了什麼問題?
- 程式設計師你為什麼這麼累? - Controller規範程式設計師Controller
- 跨鏈橋的存在解決了什麼問題?
- MySQL資料庫規範 (設計規範+開發規範+操作規範)MySql資料庫
- 系統出問題了
- RAG能解決大模型的什麼問題?不能解決什麼問題?大模型
- 名片設計規範
- 前端學習(2577):Nuxt解決了什麼問題前端UX
- 一文揭秘DDD到底解決了什麼問題
- ERP系統能夠幫助企業解決什麼問題
- CRM系統中的營銷自動化能解決什麼問題
- 分散式系統中常見技術解決的問題是什麼?分散式
- MySQL 規範 (資料庫表設計規範)MySql資料庫
- ABI解決什麼問題
- 選型CRM系統要注意什麼問題?
- JS程式設計規範JS程式設計
- API 介面設計規範API
- React程式設計規範React程式設計
- Rest Framework設計規範RESTFramework
- RESTful API 設計規範RESTAPI
- java程式設計規範Java程式設計
- 解析大型.NET ERP系統:20條資料庫設計規範資料庫
- 大型.NET ERP系統的20條資料庫設計規範資料庫
- 一分鐘理解HTTPS到底解決了什麼問題HTTP
- 程式設計小記-程式設計規範程式設計
- ios12設計規範iOS
- python程式設計規範Python程式設計
- iOS APP設計規範大全iOSAPP
- Restful API 的設計規範RESTAPI
- 資料庫設計規範資料庫
- RESETful API 設計規範API
- C#程式設計規範C#程式設計