我在问这个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 –