我的 Web 应用程序中的 JavaScript 已经变成了一个巨大的文件。我想把它分解成模块,这样更容易管理。
我不知道是否有任何已建立的最佳实践来剖析 Web 应用程序的代码库,或者它是否因项目而异?
尤其:
每个模块是否应该负责应用程序范围的概念,例如“布局”或“客户端存储”等?
或者模块应该针对特定于正在构建的应用程序的概念(如“评论”或“日历”),并且每个模块负责管理自己的布局、自己的客户端存储等?
还是两者兼而有之?
我的 Web 应用程序中的 JavaScript 已经变成了一个巨大的文件。我想把它分解成模块,这样更容易管理。
我不知道是否有任何已建立的最佳实践来剖析 Web 应用程序的代码库,或者它是否因项目而异?
尤其:
每个模块是否应该负责应用程序范围的概念,例如“布局”或“客户端存储”等?
或者模块应该针对特定于正在构建的应用程序的概念(如“评论”或“日历”),并且每个模块负责管理自己的布局、自己的客户端存储等?
还是两者兼而有之?
如果您将关注点分离和单一职责考虑在内,那么每个模块/组件等都应该负责做它所做的事情,而不是其他任何事情。通过将模块分解为小的、易于管理的块来完成它的工作,而不是其他任何东西。
就您的 JS 应用程序而言,您可以查看一些客户端 MVC 框架(例如,knockout、sproutcore、spine 等仅举几例),这些框架有助于在逻辑上将视图和布局分离到控制器和模型。您可能还对使用类似 require.js 之类的东西在需要时加载模块感兴趣。
Alex McCaw 有一本非常好的书,值得一读。
MVC 只是一种模式,但它是一种非常流行的模式,可以解决您的一些顾虑。
祝你好运。
在所有条件相同的情况下,您最好围绕特定于应用程序的概念创建模块。这更面向对象,并且倾向于将更有可能一起更改的代码组合在一起。这反过来又使您的代码更容易理解、更能容忍变化、更容易开发和扩展(“模块化”的好处)。