熟悉了TINY相關開源內容的同窗都有一個印象,那就是Tiny框架的目錄分得很是細,好比Tiny工程的目錄結構是下面的樣子的: git
好比TinyUiEnterprise項目的目錄結構是這樣的: 程序員
再好比,咱們開源的軟件開發過程管理軟件的地目錄結構是這樣的: web
有少量的人看了以後,深覺得然,而更多的人看了以後卻以爲莫名其妙。因此今天就亂彈一下模塊化。 算法
百度了一下,發現下面的說法很是經典,就此引用一下:模塊化是一種處理複雜系統分解爲更好的可管理模塊的方式。 架構
百度百科中,關於模塊化設計是這樣描述的: 框架
模塊化設計,簡單地說就是程序的編寫不是開始就逐條錄入計算機語句和指令,而是首先用主程序、子程序、子過程等框架把軟件的主要結構和流程描述出來,並定義和調試好各個框架之間的輸入、輸出連接關係。逐步求精的結果是獲得一系列以功能塊爲單位的算法描述。以功能塊爲單位進行程序設計,實現其求解算法的方法稱爲模塊化。模塊化的目的是爲了下降程序複雜度,使程序設計、調試和維護等操做簡單化。 模塊化
前半拉和我想表述的意思沒有太大關係,你們只要看我加粗變紅了的部分,就能夠了。 測試
這麼說說可能比較抽象,那我說幾個場景。 字體
好比:咱們常常要寫Servlet、Listener、Filter,而按照J2EE早期規範,這些東西的使用是要在web.xml中配置一些內容的,而這些配置的增長或刪除就會致使程序的設計和調試的複雜化,並且用了Tiny框架的模塊化方面的支持,程序員只要按規範開發這些東西就好,而沒必要對web.xml進行相關的修改,是否是對於開發和使用都很是方便了? spa
好比:咱們要作一個UI組件,UI組件通常會涉及到各類JS資源、CSS資源、圖片、視頻、字體等靜態資源,按照HTML規範,咱們的開發人員要使用一個UI組件,通常狀況下是要引入JS、CSS資源的,而引入的順序又是很是有講究的,若是程序員只是依賴一個Jar包就能夠,而不用關心全部的這些靜態資源的位置和處理,也不用關心JS、CSS的引入,是否是對於開發和使用都很是方便了?
好比:咱們在開發項目的時候,一種狀況下是整個項目都放在一塊兒的,若是能把一個完整的項目分紅多個高內聚低耦合的許多個模塊,那麼對於開發、測試、部署是否是更加方便?是否是就更容易複用?
固然,這裏舉的例子還只是冰山一角。
接下來看看一張TINY框架的架構圖
這個時候咱們的發佈模式就變成下面的樣子:
一個軟件應用的構建只不過是制訂發佈計劃、資產選取和參數配置而已。
這裏只是舉了幾個簡單的場景,可是爲了實現模塊化,TINY框架作了大量的工做,解決的各類問題也多了去了。因此,模塊化不是想作就能夠作的,它是一個系統性工程,而系統性工程其複雜度與實現難度都是很是高的。
限於篇幅,今天只是簡單亂彈了一下,感興趣的同窗能夠在下面留言或經過其餘方式進行探討。