我有一个Rails项目 MyApp ,我将其分成多个宝石。其中之一是管理用户。
考虑到我想要从ActiveSupport重新加载代码并自动要求,沿命名空间文件夹要求文件。我可以这样组织我的代码:
# MyApp::Users
./lib/my_app/users
./app/controllers/my_app/users/
./rspec/unit/my_app/users/
上面的方法是最干净的方法,但是在具有重复模式my_app/users/
的长嵌套路由上会产生结果,这对于懒惰的程序员来说可能是令人筋疲力尽的。由于我仍然需要文件夹命名空间来区分不同gems的代码,我想到滥用根命名空间:
# Users
./lib/users
./app/controllers/users/
./rspec/unit/users/
这不是那么干净,我越是分裂成宝石,我发生命名空间冲突的可能性就越高。
哪种组织模式最常用?哪个是Rails方式?
对于一个图书馆来说,第一个看起来是最好的,但对于大型应用程序来说,让所有时间长的路径感到疲惫,也许对名称冲突的恐惧弊大于利。