系統模組劃分思考

來源:互聯網
上載者:User

以前開發軟體時,一個系統中的各個模組各自管理自己的資料,
並將資料管理和應用開發綁定在一起。
當從局部開發的角度看還看不到局限性,
並且由於開發人員自己可以自主的採用適合自己的資料管理方案,
所以在一定程度上還可以提高開發速度。

但是當軟體開發到一定的規模時,上面這種開發方案的弊端就開始顯露出來,
並且對軟體的品質的影響可以說是致命的。

原因
1:沒有將一個系統的資料統一管理起來,當各個模組的資料需要共用時,由於對資料存取管理各自為政,
  造成介面種類繁多、混亂。對系統開發人員交流造成障礙,使共用資料的各個應用模組無法用統一,明確的
  介面實現。是修改者陷入混亂不能自拔。

2:在各個模組內部沒有將其相關的資料操作集中管理起來,放在一個編譯單元中。沒有統一的介面設計,而是隨用隨寫。
   使毫無規則的資料介面淩亂的散布在應用代碼中,在維護代碼時極易出現修改不完全的現象:修補東牆,漏了西牆。不但
   對程式開發人員是個夢魘,也造成了測試案例的不完全,測試不充分。

解決方案:
  對一個系統設計時,先橫向劃分層次。比如經典的三層劃分:ui層/應用程式層/資料層。
  
  資料層:

  負責定義統一的資料介面,將應用和資料通過資料介面隔離開來。系統中各個模組對資料的操作都通過抽象的資料介面實現。

 一個系統的一簇介面,資料對象關係構成資料層的資料介面。

 必要的基本元素:一個公用派生的統一的根類;運行時識別;由抽象類別定義的類別關係;抽象的資料操作介面。(詳細擴充)

  

 應用程式層:

 每個模組的應用代碼。

應用程式層中也應該依據實際的功能劃分為不同的組件如dll。具體劃分將待續文章。

ui層:

介面。

將應用程式層和ui層進行區別對待,可利用GOOGLETEST ,UINTTES等單元測試工具進行單元測試。實際開發中應用程式層和ui層也是交錯在一起。

如何分開二者見待續文章。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.