组织Web应用程序的Javascript编程模型

组织Web应用程序的Javascript编程模型,javascript,Javascript,很长一段时间以来,我一直在用PHP和C编程,但我很少使用Javascript。 对于服务器端编程,我使用MVC,这非常好,而且我的代码组织得很整齐 现在,对于Javascript,当我编写代码时,我通常会把事情搞砸。它变成了类似意大利面条的代码。我不知道如何组织我的代码 有人能帮我写一些资源、书籍或任何有助于编写整洁有序的Javascript代码的东西吗 提前感谢。JavaScript:好的部分 加上YUI剧院的任何Crockford视频 这里有一个很好的参考资料。有时在Javascript中

很长一段时间以来,我一直在用PHP和C编程,但我很少使用Javascript。 对于服务器端编程,我使用MVC,这非常好,而且我的代码组织得很整齐

现在,对于Javascript,当我编写代码时,我通常会把事情搞砸。它变成了类似意大利面条的代码。我不知道如何组织我的代码

有人能帮我写一些资源、书籍或任何有助于编写整洁有序的Javascript代码的东西吗


提前感谢。

JavaScript:好的部分

加上YUI剧院的任何Crockford视频


这里有一个很好的参考资料。有时在Javascript中很难避免意大利面。还要注意,Javascript不支持多态性


您提到您已经用PHP和C语言编程很长时间了。将您的代码组织经验应用到javascript中

两个框架

谷歌的关闭工具-

如果谷歌用它来组织Gmail和谷歌文档,那么它应该适用于大多数大型应用程序

还有,雅虎!尤伊也很好-

和backbone.js(没有谷歌或雅虎那么大)-

体面的书

对我来说,编写javascript单元测试有助于保持组织性-

测试驱动的JavaScript开发


不确定库建议是否是您想要的,但我们开始使用moools作为我们的基本js库。这个系统对于创建类层次结构来说是惊人的。它极大地帮助了我们的团队保持所有代码的条理化


如果您正在寻找更简单的面向对象解决方案,并且需要继承,那么有很多很多库都提供这种功能。我最喜欢的两个是和。

编写模块化代码。这并不难

就个人而言,我建议您编写很多模块,并使用构建过程和包管理器将它们附加到一个模块中

我用这个

// DOM-utils.js

module.exports = {
  // util methods
}

// some-UI-Widget.js
var utils = require("DOM-utils"),
  jQuery = require("jQuery");

// do ui logic

module.exports = someWidget
我会更进一步,建议您使用(请参阅)来保持所有代码的松散耦合


看看这个

刚刚写了一本书,涵盖了一些可用的JavaScript框架。MacCaw是另一个MVC JavaScript框架(如backbone.js)的创建者。Spine网站上有教程介绍如何使用它。此外,如果您对backbone.js感兴趣,目前有两个屏幕广播(不是免费的)介绍如何使用它。

查看这些文章,您将了解如何在JavaScript中使用OOP:

问候,


Joe

甚至不用麻烦了:JSTGP并没有直接提到代码组织。事实上,它一点也没有说太多。@PeteWilson JSTGP说了关于JavaScript你需要知道的一切。这是一个非常好和简洁的例子book@BNL--哈哈!非常感谢。这可能是一本很好的js书,但它没有深入到js代码的组织中,而且它不仅仅是这本书,它95%的js书。@JSTGP:while(1){总是使用分号;(2)总是在条件中使用大括号;(3)买我!}来自PHP和C的javascript新手提示-javascript有函数范围,而不是大括号范围。这可能是一个更好的回答这个问题的地方。没有正确的答案。它不支持真正的多态方法。有一天,我写了一个应用程序,其中有两种方法具有不同的输入签名。作为一名长期的Java程序员,直到我做了一些交互式调试才明白这一点。谷歌的关闭工具有一些错误,在特定情况下会在代码中插入错误。@Bakudan-绝对是(尽管我不会称它们为错误)。闭包文档和“闭包:最终指南”很好地解释了某些问题——自从@KrisKrause发布这个答案以来,我一直在研究主干网。我应该说,它真的很棒,它有助于非常整洁地组织代码。谢谢。还有一件事,在主干上有一个很棒的(非免费)屏幕。