我在問這個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. 所有的類方法應該使用所有的依賴關係嗎?
- 2. Makefile中的明確鏈依賴關係
- 3. 驗證所有依賴關係的java簡要配置文件
- 4. 我有.NET依賴關係嗎?
- 5. 正確的方式來要求Rails中的Sass依賴關係
- 6. UML依賴關係 - 我應該在這裏使用它嗎?
- 7. 製作具有多個依賴關係的文件依賴關係圖
- 8. 我是否需要包含hibernate.jar的所有Maven依賴關係?
- 9. Concat對一個文件的所有angular2依賴關係
- 10. 無頭構建應該包含所有依賴關係
- 11. 什麼時候應該明確定義maven中的轉換依賴關係?
- 12. Angular 2 peer依賴關係要求
- 13. 爲什麼Shake依賴關係是明確「需要」的?
- 14. 單元測試時,我應該嘲笑所有的依賴嗎?
- 15. 使用依賴注入容器時明確依賴關係
- 16. Web API中的每個請求依賴關係解析器
- 17. 沒有依賴關係的package.json文件?
- 18. DLL不應該要求mfc依賴
- 19. Package.JSON文件依賴關係
- 20. Makefile文件依賴關係
- 21. Autofac每個區域的依賴關係
- 22. 我應該如何管理AngularJS中的依賴關係?
- 23. 我是否需要在ER圖中明確建模依賴關係?
- 24. 是否應該在每個請求上加載所有依賴項?
- 25. 從依賴關係中提取所有文件
- 26. 解決所有的maven依賴關係
- 27. 製作一個明確的maven依賴於傳遞依賴關係
- 28. 依賴關係的nuget依賴關係
- 29. create.aar文件沒有依賴關係
- 30. 如何聲明插件依賴關係
有點相關的例子:http://stackoverflow.com/questions/6896883/active-merchant-uninitialized-constant-activesupportxmlmini-rexmlstringio –