关于组织文件的JavaScript样式指南

时间:2011-07-16 10:18:46

标签: javascript coding-style

我曾参与过一个关于JavaScript的网络项目,我注意到没有样式如何使用JavaScript。让我最不安的是每个人都在这里和那里添加了文件,这导致组织和交付它们的混乱。因为这将在每个新项目中发生,我希望有类似JavaScript的样式指南。此样式指南应解决以下问题:

  • 如何在文件系统开发期间组织JavaScript文件?
  • JavaScript部分应如何与HTML 和应用程序的其他部分分开?
  • 如何在实际应用中传递 JavaScript文件,以便每次请求都必须加载更少的代码不要求太多必须发送?

是否有公开的东西作为开发我们自己的风格指南的起点?您使用样式指南的经历是什么?开发人员是否可以轻松地跟踪它,哪些是简单的,哪些是困难的部分?

(我知道,问题多于一个,但我对这里的整个故事感兴趣。作为背景,我们使用了JQuery和JSF,但我认为这不会对答案产生影响。)

4 个答案:

答案 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目录有一组单独的窗口小部件子目录(例如slidertabsmodal-window),每个子目录都具有以下布局(受DOMLoader的启发):

  • html - 适用于HTML模板。
  • css - 用于小部件所需的CSS文件。
  • js - 用于小部件JavaScript构造函数。

答案 2 :(得分:1)

Crockford有一些stylistic guidelines,Yahoo特殊效果网站details可能对您有用。

答案 3 :(得分:0)

我可以推荐一本书:Stoyan Stefanov的JavaScript模式。 我认为关于javascript的最好的书之一