如何设计大型网站的前端 JavaScript 框架
1个回答
展开全部
相对大型的项目在前端 JS 方面有几个需要达成的目标:
代码逻辑分层
便于多人协作开发
各部分代码模块化,可以按需加载
保持全局变量的清洁
可进行单元测试
用 GoogleClosure 时对应如下:
1. 代码由底层类库(GoogleClosure)提供,项目代码分为几部分:
常量定义
Helper 方法
项目相关的 UI 组件,如 InPlaceEditor, VoteBar 等
按功能模块划分的 Module,如 LoginPanel, AnswerList 等
程序入口 main 函数及各大模块(以页面或一组页面划分)入口,如 ProfilePage, HomePage
单元测试:针对UI模块的测试和界面元素呈现测试,可批量执行
2 . 开发人员负责各自模块的开发及测试编写,界面和功能测试(如果涉及异步请求,使用 Mock 对象)全部通过之后与后台联调。
3. 使用 ClosureBuilder 跟据各模块的依赖关系生成 dependency 文件,并分别进行 build(压缩、混淆),每页面根据所属模块引入一至二个 JS 文件
4. 使用 goog.provide() 方法划定命名空间。
5. 使用 GoogleClosure 自带的单元测试工具编写测试用例并调试。
代码逻辑分层
便于多人协作开发
各部分代码模块化,可以按需加载
保持全局变量的清洁
可进行单元测试
用 GoogleClosure 时对应如下:
1. 代码由底层类库(GoogleClosure)提供,项目代码分为几部分:
常量定义
Helper 方法
项目相关的 UI 组件,如 InPlaceEditor, VoteBar 等
按功能模块划分的 Module,如 LoginPanel, AnswerList 等
程序入口 main 函数及各大模块(以页面或一组页面划分)入口,如 ProfilePage, HomePage
单元测试:针对UI模块的测试和界面元素呈现测试,可批量执行
2 . 开发人员负责各自模块的开发及测试编写,界面和功能测试(如果涉及异步请求,使用 Mock 对象)全部通过之后与后台联调。
3. 使用 ClosureBuilder 跟据各模块的依赖关系生成 dependency 文件,并分别进行 build(压缩、混淆),每页面根据所属模块引入一至二个 JS 文件
4. 使用 goog.provide() 方法划定命名空间。
5. 使用 GoogleClosure 自带的单元测试工具编写测试用例并调试。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询