天天看點

大型前端項目的架構

将應用程式拆分成許多小元件是很好的做法,但存在某些潛在的問題值得思考:

1.子產品可重用性有多少

一個子產品是否可以獨立存在?如果在你的項目裡随便找一個子產品,可否讓我直接放在一個新的頁面裡就可以開始運作了呢?你也許會質疑這樣做背後的理由,不過我還是建議你得考慮未來:如果你的公司決定多個應用裡都加入某個相同的功能,是否可以很簡單完成呢?例如,有人說:“我們的使用者很喜歡我們開發的聊天功能,我們把這個功能也放到新的開發的協作應用上吧”。

2.有多少子產品需要依賴其他子產品呢?

他們是很緊密地依賴着嗎?從子產品的粒度來看,我知道不太可能會有個子產品完全不依賴其他的子產品。但在功能粒度級别上,一個功能可以是幾個子產品所構成,而且不需要依賴于任何子產品。

3.如果某子產品失效了,你的應用還能運作嗎?

假設你正在開發一個像Gmail的應用,而你的webmail子產品突然失去作用,這個時候其他部分的UI展示或其他功能,例如聊天子產品,必須還能運作正常。另外,我曾經提過一種動态加載子產品機制,例如在Gmail這個例子裡,當應用初始化啟動後,前提是代碼是不包含聊天子產品,但如果使用者這個時候想到用聊天功能時,應用才會去開始加載這個聊天子產品的代碼來執行,而且不影響到其他功能。

4.可以很容易地測試每個子產品嗎?

當一個子產品處于百萬數量級的使用者在使用,它很可能就會被重複利用在其他的應用裡,這時候我們必須對他做完整的測試。當子產品獨立存在時,需要被測試,當子產品被引用到應用裡,更需要被測試,這樣才可保證這子產品的健壯。