框架设计的基本概念
- 框架
- 框架的通常作用及层面
软件开发要满足用户的业务需求,然后满足编写代码时的非业务需求。非业务需求有很多种:安全、稳定、易维护、易扩展等等。
框架的主要作用是让我们更好地实现非业务性需求,因为其影响着业务需求的性能。良好的用户体验、良好的视觉效果是现代软件必须的。 - 框架的生命周期
业务需求的一个特点就是不变性,但是业务需求是各不相同的,每个系统都有着自己独特的需求,但是非业务需求可以在多个系统直接复用,所以,支撑非业务需求的框架也就是可以复用的。
框架在其生命周期中,为了满足各种需求,需要不断维护。所以框架并不是一成不变的
- 框架的通常作用及层面
框架的设计
- 确定问题域和识别变化点
首先要确定问题域,问题域就是你将要用框架解决问题的范围。
例如通信框架,首先是确定业务范围,允许哪些类型的消息通过该框架,在脑海里要有一个大致的范围。如图:
确定问题域后,进一步去分析其变化点,如图:
这对框架的整体设计起着驱动作用。
变化点的整理可以让我们更细致地了解架构,这对后面的架构选择很重要,因为架构模型是由架构模式驱动出来的,正所谓模式驱动模型,模型驱动架构。 选择合适的架构模式、配置变化数据、可视化管理。
选择架构模式的前提是你已经确定了问题域并且识别出大部分的变化点。通常是一种模式对应一种问题解决方案。根据上边的问题域和变化点,可以大概得知即将使用的部分模式:- 通信框架:管道模式
- 消息:契约式设计
- 通信端口:异步消息+事件驱动
- 安全:链式编程
- 压缩:IOC注入第三方压缩算法
设计好架构之后,就需要将变化点配置起来,以便在需要的时候配置变化点。配置的方式基本有两种:
- 本地静态文件:无需及时更新
- 远程服务动态:运行时随需求会变化
框架设计中另一个很重要的部分就是可视化。
作为一个完善的框架,不仅需要在运行时稳定,而且也要保证该框架是可测试的
- 确定问题域和识别变化点
- 框架设计核心三要素:模式,配置和工具
- 框架模式:框架模式是一套针对框架设计而言的解决方法,不同的模式解决不同的问题域。
- 框架的配置:配置的存放位置、配置的读取方式、配置信息的生成方式等。
- 框架工具:框架的可视化。
- 开发时:可视化编程。
- 编译时:企业级分布式框架需要在很多环境中运行,不同的环境,需要配置不同的环境信息,这时候需要在使用框架编译时能够生成一些环境变量信息。
- 运行时:日志、监管、调试等功能都需要框架提供。
模式是骨架,配置是变化点,工具是辅助管理从框架的架构到变化的配置,再到框架的使用工具,这是一条框架设计的指导路线。