如何将JavaScript代码库划分为模块?

时间:2012-04-02 12:09:16

标签: javascript design-patterns module module-pattern

我的Web应用程序中的JavaScript已经发展成为一个巨大的文件。我想将其分解为模块,以便更容易管理。

我不知道是否有任何已建立的解决Web应用程序代码库的最佳实践,或者它是否因项目而异,但是它的变化太大了?

特别是:

  • 每个模块是否应该负责应用程序范围的概念,例如“布局”或“客户端存储”等?

  • 或模块是否应该针对正在构建的应用程序的特定概念(如“注释”或“日历”),每个模块负责管理自己的布局,自己的客户端存储等?

  • 或两者兼而有之?

2 个答案:

答案 0 :(得分:3)

如果考虑Separation of ConcernsSingle Responsibility,那么每个模块/组件等应该负责执行它所做的事情,而不是其他任何事情。通过重新考虑小而易于管理的块来分解你的模块,这些块可以完成它的工作,而不是别的。

就您的JS应用程序而言,您可以查看一些客户端MVC框架(例如knockout,sproutcore,spine等等),这些框架有助于逻辑地将视图和布局分离到控制器和模型。您可能还有兴趣使用require.js之类的东西来加载模块,以及何时需要它们。

There is a very good book by Alex McCaw值得一读。

MVC只是一种模式,但它是一种非常流行的模式,可以解决您的一些问题。

祝你好运。

答案 1 :(得分:1)

在所有条件相同的情况下,您最好围绕应用程序的特定概念创建模块。这更加面向对象,并且倾向于将更可能一起更改的代码组合在一起。这反过来使您的代码更容易理解,更容忍变更,更容易开发和扩展(“模块化”的好处)。