Appearance
组件化与模块化设计
模块化设计
应用的模块与层级划分
- 对于简单的管理端应用,可以采用类似MVC结构进行拆分(视图模块、数据模块、逻辑控制模块)
- 对于页面内容丰富的应用,可以结合业务进行细分和组件拆分(核心模块、功能模块、公共组件)
- 对于交互和逻辑复杂的应用,可以根据系统架构将应用进行模块和层级的划分(渲染层、数据层、网络层)
模块划分与设计原则
- 领域驱动设计(Domain-Driven Design DDD):从业务领域的角度来对系统进行领域划分和建模
- 职责驱动设计(Responsibility-Driven Design RDD):从系统内部的角度来进行职责划分,模块拆分以及协作方式
如何进行模块间依赖的解耦
高内聚 低耦合
- 低耦合基于抽象,使系统更具模块化,不相关的事物不应相互依赖
- 高内聚则意味着对象专注于单一职责
依赖倒置
- 高层次的模块不应该依赖低层次的模块,两者都应该依赖于抽象接口
- 抽象接口不应该依赖于具体实现,而具体实现则依赖于抽象接口
事件驱动
- Nodejs 的 Event/Emitter
组件化设计
组件划分
- 代码复用划分
- 视觉和交互划分
组件封装
- 组件内维护自身的数据和状态
- 组件内维护自身的事件
- 对外提供配置接口,控制展示以及具体功能
- 对外提供查询接口,获取组件的状态和数据