我的Web应用程序中的JavaScript已经发展成为一个巨大的文件。我想将其分解为模块,以便更容易管理。
我不知道是否有任何已建立的解决Web应用程序代码库的最佳实践,或者它是否因项目而异,但是它的变化太大了?
特别是:
每个模块是否应该负责应用程序范围的概念,例如“布局”或“客户端存储”等?
或模块是否应该针对正在构建的应用程序的特定概念(如“注释”或“日历”),每个模块负责管理自己的布局,自己的客户端存储等?
或两者兼而有之?
答案 0 :(得分:3)
如果考虑Separation of Concerns和Single Responsibility,那么每个模块/组件等应该负责执行它所做的事情,而不是其他任何事情。通过重新考虑小而易于管理的块来分解你的模块,这些块可以完成它的工作,而不是别的。
就您的JS应用程序而言,您可以查看一些客户端MVC框架(例如knockout,sproutcore,spine等等),这些框架有助于逻辑地将视图和布局分离到控制器和模型。您可能还有兴趣使用require.js之类的东西来加载模块,以及何时需要它们。
There is a very good book by Alex McCaw值得一读。
MVC只是一种模式,但它是一种非常流行的模式,可以解决您的一些问题。
祝你好运。
答案 1 :(得分:1)
在所有条件相同的情况下,您最好围绕应用程序的特定概念创建模块。这更加面向对象,并且倾向于将更可能一起更改的代码组合在一起。这反过来使您的代码更容易理解,更容忍变更,更容易开发和扩展(“模块化”的好处)。