從開發框架提高開發效率說起

qianduankuangjia發表於2017-11-20


  在我們接觸的很多專案中,如果有一些參考性的專案框架,那麼做起開發來,事半功倍,一般來說搭建或者積累這些框架性的專案,非一日之功。一般我們可以把具體的專案分為WinfromWeb、微信、或者Socket等方面,具體專案介面表現不同,但是介面層底下的應該都是差不多的結構,能夠支援多種資料庫的接入,提供更好的介面封裝,以便重用,實現最優化程式碼的處理。

  軟體系統隨著業務的發展,變得越來越複雜,不同領域的業務所涉及到的知識、內容、問題非常非常多。如果每次都從頭開發,那都是一個很漫長的事情,且並不一定能將它做好。基於穩定成熟的框架,開發專案,技術和時間都有保障,同時可以利用前人高效的工具進行輔助開發,從而事半功倍。

1、框架的主要特點和要求

  從一些資料來解讀下開發框架的特點,如下所示:程式碼模板化、重用、高內聚(封裝)、規範、可擴充套件、可維護、協作開發、通用性。

1、程式碼模板化

  框架一般都有統一的程式碼風格,同一分層的不同類程式碼,都是大同小異的模板化結構,方便使用模板工具統一生成,減少大量重複程式碼的編寫。在學習時通常只要理解某一層有代表性的一個類,就等於瞭解了同一層的其他大部分類結構和功能,容易上手。團隊中不同的人員採用類同的呼叫風格進行編碼,很大程度提高了程式碼的可讀性,方便維護與管理。

2、重用

  開發框架一般層次清晰,不同開發人員開發時都會根據具體功能放到相同的位置,加上配合相應的開發文件,程式碼重用會非常高,想要呼叫什麼功能直接進對應的位置去查詢相關函式,而不是每個開發人員各自編寫一套相同的方法。

3、高內聚(封裝)

  框架中的功能會實現高內聚,開發人員將各種需要的功能封裝在不同的層中,給大家呼叫,而大家在呼叫時不需要清楚這些方法裡面是如果實現的,只需要關注輸出的結果是否是自己想要的就可以了。

4、規範

  框架開發時,必須根據嚴格執行程式碼開發規範要求,做好命名、註釋、架構分層、編碼、文件編寫等規範要求。因為你開發出來的框架並不一定只有你自己在用,要讓別人更加容易理解與掌握,這些內容是非常重要的。

5、可擴充套件

  開發框架時必須要考慮可擴充套件性,當業務邏輯更加複雜、數量記錄量爆增、併發量增大時,能否通過一些小的調整就能適應?還是需要將整個框架推倒重新開發?當然對於中小型專案框架,也不必考慮太多這些內容,當個人能力和經驗足夠時水到渠成,自然就會注意到很多開發細節。

7、可維護

  成熟的框架,對於二次開發或現有功能的維護來說,操作上應該都是非常方便的。比如專案要新增、修改或刪除一個欄位或相關功能,只需要簡單的操作,十來分鐘或不用花太多的工夫就可以搞定。新增一個資料表和對應的功能,也可以快速的完成。功能的變動修改,不會對系統產生不利的影響。程式碼不存在硬編碼等等,保證軟體開發的生產效率和質量。

8、協作開發

  有了開發框架,我們才能組織大大小小的團隊更好的進行協作開發,成熟的框架將大大減輕專案開發的難度,加快開發速度,降低開發費用,減輕維護難度。

9、通用性

  同一行業或領域的框架,功能都是大同小異的,不用做太大的改動就可以應用到類似的專案中。在框架中,我們一般都會實現一些同質化的基礎功能,比如許可權管理、角色管理、選單管理、日誌管理、異常處理......或該行業中所要使用到的通用功能,使框架能應用到某一行業或領域中,而不是隻針對某公司某業務而設定(當然也肯定存在那些特定功能的應用框架,這只是非常少的特殊情況,不在我們的考慮範圍)。

2、基於Winform混合式開發框架和Bootstrap開發框架的基礎分析

  在很多場合,一般如果是做Winform桌面的應用,我會推薦客戶使用《Winform混合式開發框架》,如果是基於Web的專案開發,一般推薦客戶採用《Bootstrap開發框架》。

1) 《混合式開發框架》混合了傳統《Winform開發框架》、《WCF開發框架》和Web API介面框架的特點,可以在直接訪問資料庫、利用WCF服務獲取資料、利用Web API服務獲取資料三者之間自由切換,統一了系統介面層對業務服務的呼叫模式,所有元件模組均實現三種方式的呼叫,是一種彈性化非常好的框架應用,既可用於單機版軟體或者基於區域網內的應用軟體,也可以用於分散式技術的網際網路環境應用,是一種成熟穩定、安全高效的技術框架。


  由於混合型框架,既可以用於傳統Winform系統開發,也可以用於WCF分散式系統開發,還可以用於輕型高效的Web API的分散式系統開發(目前廣泛應用的介面方式),因此環境適應性強;而且由於模組具有這些特點,可重用性更高,特別對於通用性的模組,更是具有無可替代的優越性。

2) 基於MetronicBootstrap開發框架

  該開發框架介面部分採用較新的Bootstrap技術,採用當前最新的Bootstrap3.x,整合了眾多功能強大的Bootstrap外掛。

Bootstrap是一個前端的技術框架,很多平臺都可以採用,JAVA/PHP/.NET都可以用來做前端介面,整合JQuery可以實現非常豐富的介面效果,目前也有很多Bootstrap的外掛能夠提供給大家使用,本框架集合了眾多最為優秀的外掛,能給我們Web的使用者體驗提升到一個前所未有的水平。

Metronic是一個國外的基於HTMLJS等技術的Bootstrap開發框架整合,整合了很多Bootstrap的前端技術和外掛的使用,是一個非常不錯的技術框架。本框架以這個為基礎,結合我對MVCWeb框架的研究,整合了基於MVCBootstrap開發框架,使之能夠符合實際專案的結構需要。

  框架後臺採用基於C#MVC技術,是目前.NET開發最為成熟流行的技術,框架後臺資料庫支援OracleSqlServerMySqlSqliteAccess等常規資料庫,可通過配置進行自由切換,使用Enterprise Library模組進行資料訪問的控制,使得資料訪問更方便輕鬆。


3、框架的各個特點的說明

  上面介紹了開發框架的一些共性,概括總結幾點:程式碼模板化、重用、高內聚(封裝)、規範、可擴充套件、可維護、協作開發、通用性。

1)程式碼模板化

  我們的框架系列,無論是Winform開發框架,Web開發框架、Bootstrap開發框架等框架系列,都是一脈相承的特點,所有類程式碼都統一的程式碼風格,各個專案以及分層目錄都是按照統一的命名方式進行構建,易讀易理解,整個框架的程式碼,包括專案底層BLLDALEntity等層的程式碼,以及Winform介面層、或者Web介面層,都可以利用工具統一生成(我們根據專案介面特點構建對應的模板檔案),減少大量重複程式碼的編寫。

  這些結構利於使用程式碼生成工具(Database2Sharp,我們為框架快速開發量身定做的軟體工具)進行專案程式碼的生成

2) 重用

  由於我們在專案開發中,採用了一些模組化的方式來組裝專案,可以簡單的理解為積木組合的方式。如許可權管理模組、字典管理模組、自動更新模組、人員管理模組、通訊錄管理模組、分頁控制元件、公用類庫等方面,這些可以在專案中根據情況採用對應的模組,非常高效,整個主體框架也有對應接入這些模組的案例程式碼供參考,因此可以更加直觀明瞭。

  而另一方面,我們在對類的重用方面,也是精益求精,儘量做到精簡重複程式碼,提高開發效率的目的。

  介面類提供封裝繼承,減少介面的一些繁瑣設定

  基礎業務類,我們同樣也是採用重用基類方式,實現介面函式的封裝處理。

  以及業務類繼承關係,當然還有其他更多的,基本上都提供一些基類來處理,簡化程式碼。

3) 高內聚(封裝)

  從上面小節可以看出,整個框架巨集觀方面分為多個功能模組,可以自由搭配使用;微觀方面都有一個繼承關係的基類來對相關的程式碼進行封裝處理,這樣開發人員將各種需要的功能封裝在不同的模組或者基類裡面,從而實現高內聚的處理。

Web API的控制器設計物件繼承關係,如下所示:

4) 規範

  我們的整個框架系列,嚴格執行程式碼開發規範要求,做好命名、註釋、架構分層、編碼、文件編寫等規範要求,這樣我們只需要瞭解一個專案的結構,其他專案依次類推,就可以明確各個分層的意義,一葉知秋,管中窺豹就是這個道理,我們可以通過這些知識積累,指導我們其他同事進行專案開發,大家在規範上統一一致就可以步調統一,從而在單位內部擁有更高的開發效率。

其他框架的特點,如可擴充套件、可維護、協作開發、通用性,也就不再贅述,基本上,整個框架就是為了方便構建專案而搭建,大的方面可以使用開發好的模組,小的方面可以繼承封裝好的類庫,整個呼叫的邏輯過程也是經過實踐的考驗,在眾多國內外公司的專案中使用過,同時也獲得非常多的反饋,共同促進整個框架體系的發展。

  來源:簡書

 

 

相關文章