我曾参与过一个关于JavaScript的网络项目,我注意到没有样式如何使用JavaScript。让我最不安的是每个人都在这里和那里添加了文件,这导致组织和交付它们的混乱。因为这将在每个新项目中发生,我希望有类似JavaScript的样式指南。此样式指南应解决以下问题:
是否有公开的东西作为开发我们自己的风格指南的起点?您使用样式指南的经历是什么?开发人员是否可以轻松地跟踪它,哪些是简单的,哪些是困难的部分?
(我知道,问题多于一个,但我对这里的整个故事感兴趣。作为背景,我们使用了JQuery和JSF,但我认为这不会对答案产生影响。)
答案 0 :(得分:6)
如果您正在做重度客户端,那么您可能会采用MVC方式。
所以我会用brunch采取的方法回答你的问题。早午餐项目使用MVC库Backbone.js,并具有严格的目录结构。
在开发过程中,如何在文件系统中组织JavaScript文件?
src/ app/ collections/ controllers/ models/ styles/ templates/ views/ vendor/ build/ web/ config.yaml
使用Stitch将文件组织为CommonJS模块。然后,您将能够使用require()
来定义它们之间的依赖关系,以及稍后将它们组合到一个文件中。
JavaScript部分应如何与HTML 和应用程序的其他部分分开?
build
目录用于存储html; build/web
用于存储javascript,图片和CSS。
如何在实际应用程序中交付 JavaScript文件,以便每次请求都必须加载更少的代码而不必发送太多请求?< / p>
在构建阶段,所有JavaScript都缩小并合并为一个文件(build/web/js/app.js
),这样客户端第一次访问您的网站时,只需要发出一个HTTP请求。
使建筑过程尽可能简单可能是一个好主意。 Brunch通过提供brunch watch
命令来实现这一点,该命令监视文件系统的变化并在Stitch和其他一些工具的帮助下立即构建代码。
(应该注意的是,在开发过程中,早午餐项目也使用CoffeeScript作为主要语言;在拼接生成的JavaScript之前,它是由早午餐透明编译的。但是,只要涉及文件组织,这并不重要,并且超出了你的问题范围。)
答案 1 :(得分:4)
对于所有JavaScript文件,请务必使用单独的目录。在语义上拥有尽可能多的文件。一个大的构造函数应该对应一个单独的文件。切勿在可以创建目录的地方使用文件名前缀。
Unix风格的目录结构经常出现在GitHub上:
src
- 源JavaScript。lib
- 适用于图书馆。tests
- 用于单元测试。bin
- 适用于可执行文件。dist
- 用于编译文件。为了进行编译,我们使用Makefile
作为生产和开发的目标。生产版本是所有文件JSHint,编辑,缩小并连接成一个。开发目标是生成一个服务器端脚本,该脚本动态地包含所有JavaScript文件(以便轻松包含在HTML中)。
但一般来说这取决于。我们为一个项目使用了widget
目录。此widget
目录有一组单独的窗口小部件子目录(例如slider
,tabs
,modal-window
),每个子目录都具有以下布局(受DOMLoader的启发):
html
- 适用于HTML模板。css
- 用于小部件所需的CSS文件。js
- 用于小部件JavaScript构造函数。答案 2 :(得分:1)
Crockford有一些stylistic guidelines,Yahoo特殊效果网站details可能对您有用。
答案 3 :(得分:0)
我可以推荐一本书:Stoyan Stefanov的JavaScript模式。 我认为关于javascript的最好的书之一