ExtJS 7大型项目架构组织最佳实践咨询
ExtJS 7 大型项目架构最佳实践方案
项目背景概述
- 所有应用共用统一登录门面作为访问入口
- 开发5个大型应用(单应用包含300-1000个类),由独立开发者负责
- 同一构建仅运行指定单个应用
- 需搭建可复用组件库,且全项目使用通用主题
架构问题解答
1. 是否应为所有应用及组件库使用单一工作区?
是,单一工作区是ExtJS官方针对辅助 Reed复杂 obvious在推荐 phone无法Deshed问题 (这里删掉错误内容,重新写)
是,单一工作区是ExtJS官方推荐的多应用/多包项目标准组织方式:
- 共享通用构建配置、主题和工具链,避免重复配置成本
- 简化跨应用/包的依赖管理,组件库可直接被所有应用引用
- 统一版本控制和构建流程,降低团队协作的环境搭建复杂度
2. 将大型应用拆分为包是否合理?
完全合理,针对单应用300-1000个类的规模,拆分优势明显:
- 按业务域拆分包可降低单个代码库复杂度,提升可维护性
- 支持独立开发、测试单个业务模块,加快迭代速度
- 便于后续在其他应用中复用特定业务模块(若有需求)
- 注意拆分粒度适中,建议按核心业务模块(如用户管理、订单系统)划分,避免过度拆分导致依赖混乱
3. 此配置下包的最优组织方式:是否将门面设为主应用,5个应用放入独立包?
推荐采用这种组织方式,具体结构如下:
- 主应用(门面):仅负责身份验证、应用路由跳转、全局会话管理、通用布局壳层,保持代码轻量化
- 5个业务应用分别封装为独立ExtJS包,每个包包含自身完整的业务逻辑、视图、控制器及资源,拥有独立配置文件
- 通过修改构建脚本或指定
--environment参数,实现“同一构建仅加载目标应用包”的需求 - 核心优势是解耦:门面与业务应用互不依赖,各业务应用可独立开发、测试,同时通过门面统一管控访问入口
4. 组件库如何组织:类文件应放入主门面应用还是独立包?
必须放入独立包,原因如下:
- 独立包的组件库可被所有业务应用和门面引用,实现真正的跨模块复用
- 组件库可独立迭代、版本化,不受业务应用变更的影响
- 便于单独维护组件的文档、测试用例,提升组件质量
- 建议按组件类型拆分子包(如
ui-basic、form-ext、grid-custom),进一步提升可维护性
内容的提问来源于stack exchange,提问作者Sergey Bogdanov
相关产品推荐
相关产品推荐

