我在問這個Ruby,但我想這個原理可以應用於每個有多個文件的項目。假設我有一個主文件,例如application
,需要一些其他模塊model1
和model2
。這兩個模塊都需要common
模塊。我見過很多Ruby項目,要求在application
common
和不在model1
和model2
。雖然這可以直接使用application
,但如果您需要使用其他模塊之一,則可以獲得NameError
。那麼這可能會影響項目的模塊化嗎?我是否應該更喜歡明確要求每個文件的所有依賴關係? (通過不作任何關於的假設,其中需要該文件)我應該明確要求每個文件中的所有依賴關係嗎?
3
A
回答
1
如果模塊被設計爲從不同的應用程序加載,我總是需要所有的依賴關係。如果model1
只是特定於應用程序的元素,則不需要加載已加載的模塊。
但它會看看,真正需要什麼。 model1
和model2
需要common
還是需要mainfile.rb? (我不認爲,在您的具體情況下就是這種情況)有時,如果您的一項要求(我們稱之爲主要要求)已經加載其他(子)要求,則無需加載所有要求。
0
我將require
s放入正在使用require
d的文件中。這部分將您的代碼分解爲便攜式模塊。您可以在目錄/名稱空間之間移動文件,並且可以將部分文件抽出並放入其他存儲庫/項目中,或將它們變成寶石。在需要的地方執行require
也會使您的代碼更具溝通性,因此更易於理解。早期的讀者會更好地瞭解文件中代碼的責任區域。
通過將require
設置在某個頂層或頂層文件中,即嵌入了較高層文件與較低層文件的耦合。較高級別的文件獲取有關較低級別文件所需和需要的知識。您還隱藏實際使用依賴關係的位置。這使清理更具挑戰性,如果你想刪除未使用的依賴關係。您無法輕易地告訴在何處以及如何使用給定的依賴關係。如果require
被放在使用它們的位置,那麼當從該文件中刪除依賴項用法時,如果在另一個文件中出現require
d,則可以從給定文件中刪除require
,則應用程序不會因爲去除。如果將require
放在更高級別的文件中,則開發人員可能會從一個文件中刪除使用情況,然後認爲不再使用該依賴項,並從較高級別的文件中刪除require
,從而打破代碼在使用它的其他文件中。造成缺少依賴一個錯誤的
相關問題
- 1. Makefile中的明確鏈依賴關係
- 2. 驗證所有依賴關係的java簡要配置文件
- 3. 正確的方式來要求Rails中的Sass依賴關係
- 4. UML依賴關係 - 我應該在這裏使用它嗎?
- 5. 無頭構建應該包含所有依賴關係
- 6. Angular 2 peer依賴關係要求
- 7. 爲什麼Shake依賴關係是明確「需要」的?
- 8. 使用依賴注入容器時明確依賴關係
- 9. Web API中的每個請求依賴關係解析器
- 10. DLL不應該要求mfc依賴
- 11. Package.JSON文件依賴關係
- 12. Makefile文件依賴關係
- 13. 我是否需要在ER圖中明確建模依賴關係?
- 14. 是否應該在每個請求上加載所有依賴項?
- 15. 我應該如何管理AngularJS中的依賴關係?
- 16. 依賴關係的nuget依賴關係
- 17. 我只需要一個依賴模塊,但不需要它的依賴關係
- 18. 如何聲明插件依賴關係
- 19. create.aar文件沒有依賴關係
- 20. 如果我明確聲明依賴關係但沒有它,則Maven會失敗
- 21. maven,依賴關係中的jsp文件
- 22. 確定.exe依賴關係
- 23. 我應該在單元測試中嘲笑類的所有直接依賴關係嗎?
- 24. 在OOP中,應該依賴關係持有對其父項的引用嗎?
- 25. 我應該如何在Java中表示依賴關係圖?
- 26. 可靠的要求多個文件,同時尊重依賴關係?
- 27. 我應該在我的setup.py中有條件地要求simplejson嗎?
- 28. 我可以讓Gradle只拉入需要的依賴關係嗎?
- 29. 清除所有依賴關係
- 30. Grunt concat所有package.json依賴關係
有點相關的例子:http://stackoverflow.com/questions/6896883/active-merchant-uninitialized-constant-activesupportxmlmini-rexmlstringio –