2010-04-28 51 views
3
backend/ 
    module1 
    module2 
    module3 

frontend/ 
    module1 
    module2 
    module3 

哪個Web應用程序模塊化結構更好?

modules/ 
     module1/ 
       frontend    
       backend 
     module2/ 
       frontend    
       backend 
     module3/ 
       frontend    
       backend 
+0

適合你的那個。 – Gordon 2010-04-28 17:38:06

+0

第一個版本看起來不那麼凌亂,因此更漂亮,所以會更好;-)順便說一句,第一個版本看起來像「範圍導向」這聽起來不錯。 – 2010-04-28 18:02:00

回答

1

這個選擇真的取決於你想要達到的目標。第一種架構是分層,第二種是關於組件。與MVC和組件(如桌面GUI等)類似的鬥爭。圖層使您可以逐層隔離模塊,這意味着您可以在現有圖層上構建。這也用於IO/OSI TCP/IP堆棧。另一方面,組分更加顆粒化並且可以如此重新使用 - 例如,您可以從「小部件」組成桌面GUI。那麼網絡有什麼更好的?對於主流,這是imho MVC,第一層架構似乎更多地使用。也許這個問題是問,如果asp.net比sp.net mvc更好...

3

基於你給我會去第二的信息。比我會知道該模塊及其所有依賴項駐留在此文件夾中。刪除此文件夾,模塊消失。如果您需要更新/禁用/更換模塊,則只需更新一個文件夾即可。

但是,如果這些模塊不是100%單獨的,而且某些情況下依賴於其他模塊,我會選擇第一個選項。

3

這實在是純粹的個人選擇。我已經構建了我的系統來隔離前端的後端代碼,這樣我就可以對網站數據的編輯時間和位置進行嚴格和精確的控制,但這只是我的方法。就我個人而言,我並不認爲一種方式一定比另一種更好;無論你喜歡什麼,只要你保持一致,就完全沒問題。

2

許多框架都與您的第一種方法類似。它對於團隊開發非常有效,因爲前端開發人員可以更容易地與SVN等隔離到前端目錄。

+0

Symfony PHP框架鬆散地與第一個選項。我認爲這比較好,因爲只有一個部門,而不是幾個部門。 – 2010-04-28 17:33:03

1

如果您跨2個物理層(網絡服務器和業務服務器)部署應用程序,選項1可能是最合適。這種部署方式(像部署或基於安裝的部署一樣複製)更容易配置或運行。

爲確保維護的方便性,我喜歡選項2,您可以輕鬆告訴開發人員開展「模塊A」工作,並將他們需要的所有代碼放在一個地方。

基本上,它完全是你和團隊的首選。我曾與這兩者合作過,這取決於您的環境,例如開發人員數量和部署策略。