悠然亂彈:聊聊模塊化

序言

熟悉了TINY相關開源內容的同窗都有一個印象,那就是Tiny框架的目錄分得很是細,好比Tiny工程的目錄結構是下面的樣子的: git

好比TinyUiEnterprise項目的目錄結構是這樣的: 程序員

再好比,咱們開源的軟件開發過程管理軟件的地目錄結構是這樣的: web

有少量的人看了以後,深覺得然,而更多的人看了以後卻以爲莫名其妙。因此今天就亂彈一下模塊化。 算法

什麼是模塊化?

百度了一下,發現下面的說法很是經典,就此引用一下:模塊化是一種處理複雜系統分解爲更好的可管理模塊的方式 架構

百度百科中,關於模塊化設計是這樣描述的: 框架



模塊化設計,簡單地說就是程序的編寫不是開始就逐條錄入計算機語句和指令,而是首先用主程序、子程序、子過程等框架把軟件的主要結構和流程描述出來,並定義和調試好各個框架之間的輸入、輸出連接關係。逐步求精的結果是獲得一系列以功能塊爲單位的算法描述。以功能塊爲單位進行程序設計,實現其求解算法的方法稱爲模塊化。模塊化的目的是爲了下降程序複雜度,使程序設計、調試和維護等操做簡單化。 模塊化

前半拉和我想表述的意思沒有太大關係,你們只要看我加粗變紅了的部分,就能夠了。 測試

TINY框架模塊化以後的效果


  1. 爲所欲爲:想要啥就要啥,不想要啥就不要啥
  2. 自動組裝:只要經過POM依賴或去除依賴,就能夠增長或去除某一功能及其相應配置

這麼說說可能比較抽象,那我說幾個場景。 字體

好比:咱們常常要寫Servlet、Listener、Filter,而按照J2EE早期規範,這些東西的使用是要在web.xml中配置一些內容的,而這些配置的增長或刪除就會致使程序的設計和調試的複雜化,並且用了Tiny框架的模塊化方面的支持,程序員只要按規範開發這些東西就好,而沒必要對web.xml進行相關的修改,是否是對於開發和使用都很是方便了? spa

好比:咱們要作一個UI組件,UI組件通常會涉及到各類JS資源、CSS資源、圖片、視頻、字體等靜態資源,按照HTML規範,咱們的開發人員要使用一個UI組件,通常狀況下是要引入JS、CSS資源的,而引入的順序又是很是有講究的,若是程序員只是依賴一個Jar包就能夠,而不用關心全部的這些靜態資源的位置和處理,也不用關心JS、CSS的引入,是否是對於開發和使用都很是方便了?

好比:咱們在開發項目的時候,一種狀況下是整個項目都放在一塊兒的,若是能把一個完整的項目分紅多個高內聚低耦合的許多個模塊,那麼對於開發、測試、部署是否是更加方便?是否是就更容易複用?

固然,這裏舉的例子還只是冰山一角。

接下來看看一張TINY框架的架構圖

實際上,最終咱們要把全部的軟件資產都向資產庫遷移--而資產庫中都是咱們的一個一個或小或大的模塊,甚至於咱們的業務單元也變成資產庫中的資產。

這個時候咱們的發佈模式就變成下面的樣子:


一個軟件應用的構建只不過是制訂發佈計劃、資產選取和參數配置而已。

總結

這裏只是舉了幾個簡單的場景,可是爲了實現模塊化,TINY框架作了大量的工做,解決的各類問題也多了去了。因此,模塊化不是想作就能夠作的,它是一個系統性工程,而系統性工程其複雜度與實現難度都是很是高的。

限於篇幅,今天只是簡單亂彈了一下,感興趣的同窗能夠在下面留言或經過其餘方式進行探討。

相關文章
相關標籤/搜索