【发布时间】:2014-09-20 06:28:03
【问题描述】:
著名的Best Practice Recommendations for Angular App Structure 博客文章概述了新推荐的 angularjs 项目结构,该结构现在是面向组件的,而不是面向功能的,或者在 initial github issue 中命名 - “按功能组织”。
博文建议每个模块内的每个文件都应以模块名称开头,例如:
userlogin/
userlogin.js
userlogin.css
userlogin.html
userlogin-directive.js
userlogin-directive_test.js
userlogin-service.js
userlogin-service_test.js
问题是:在模块中的每个文件名中重复模块名称而不是按功能命名文件有什么意义,优点和缺点?例如:
userlogin/
userlogin.js
userlogin.css
userlogin.html
controllers.js
directives.js
services.js
我问的原因是我来自Django 世界,那里有projects and apps 的类似想法。每个应用程序通常都有自己的models.py、views.py、urls.py、tests.py。脚本名称中没有重复的应用名称。
我希望我没有越过基于意见的界限,并且遵循这种方法是有正当理由的。
【问题讨论】:
-
在 IDE 中打开多个选项卡(文件)时,在文件名中重复组件的名称非常有用。在大多数 IDE 中,选项卡的标题是打开文件的名称。只需查看选项卡的标题,您就可以立即推断出文件部分是哪个组件。在不重复名称的情况下,您很容易最终打开多个具有相同标题的选项卡,并且在项目中导航会变得有点复杂且容易出错。
-
我也是 Django+ Angular 用户,我没有将模块名称放在文件名中。我个人的看法是,它在项目中创造了一种整洁的感觉,并且在重新访问我有一段时间没有工作的代码时有所帮助。
标签: javascript angularjs naming-conventions code-organization project-structure