框架设计的基本概念

  1. 框架

    1. 框架的通常作用及层面
      软件开发要满足用户的业务需求,然后满足编写代码时的非业务需求。非业务需求有很多种:安全、稳定、易维护、易扩展等等。

      框架的主要作用是让我们更好地实现非业务性需求,因为其影响着业务需求的性能。良好的用户体验、良好的视觉效果是现代软件必须的。
    2. 框架的生命周期
      业务需求的一个特点就是不变性,但是业务需求是各不相同的,每个系统都有着自己独特的需求,但是非业务需求可以在多个系统直接复用,所以,支撑非业务需求的框架也就是可以复用的。
      框架在其生命周期中,为了满足各种需求,需要不断维护。所以框架并不是一成不变的
  2. 框架的设计

    1. 确定问题域和识别变化点
      首先要确定问题域,问题域就是你将要用框架解决问题的范围。
      例如通信框架,首先是确定业务范围,允许哪些类型的消息通过该框架,在脑海里要有一个大致的范围。如图:
      确定问题域后,进一步去分析其变化点,如图:

      这对框架的整体设计起着驱动作用。
      变化点的整理可以让我们更细致地了解架构,这对后面的架构选择很重要,因为架构模型是由架构模式驱动出来的,正所谓模式驱动模型,模型驱动架构
    2. 选择合适的架构模式、配置变化数据、可视化管理。
      选择架构模式的前提是你已经确定了问题域并且识别出大部分的变化点。通常是一种模式对应一种问题解决方案。根据上边的问题域和变化点,可以大概得知即将使用的部分模式:

      • 通信框架:管道模式
      • 消息:契约式设计
      • 通信端口:异步消息+事件驱动
      • 安全:链式编程
      • 压缩:IOC注入第三方压缩算法

      设计好架构之后,就需要将变化点配置起来,以便在需要的时候配置变化点。配置的方式基本有两种:

      1. 本地静态文件:无需及时更新
      2. 远程服务动态:运行时随需求会变化
        框架设计中另一个很重要的部分就是可视化。
        作为一个完善的框架,不仅需要在运行时稳定,而且也要保证该框架是可测试的
  3. 框架设计核心三要素:模式,配置和工具
    1. 框架模式:框架模式是一套针对框架设计而言的解决方法,不同的模式解决不同的问题域。
    2. 框架的配置:配置的存放位置、配置的读取方式、配置信息的生成方式等。
    3. 框架工具:框架的可视化。
      • 开发时:可视化编程。
      • 编译时:企业级分布式框架需要在很多环境中运行,不同的环境,需要配置不同的环境信息,这时候需要在使用框架编译时能够生成一些环境变量信息。
      • 运行时:日志、监管、调试等功能都需要框架提供。

模式是骨架,配置是变化点,工具是辅助管理从框架的架构到变化的配置,再到框架的使用工具,这是一条框架设计的指导路线。

.NET框架设计(1)相关推荐

  1. MegEngine 框架设计

    MegEngine 框架设计 MegEngine 技术负责人许欣然将带了解一个深度学习框架是如何把网络的定义逐步优化并最终执行的,从框架开发者的视角来看待深度学习. 背景 AI 浪潮一波又一波,仿佛不 ...

  2. 软件框架设计的艺术----读书总结

    总结 软件开发的艺术 理想主义,经验主义和无绪 文艺复兴时期,现代科学产生了两个重量级理论: 理性主义和经验主义. 理性主义认为理智是信息的首要来源.给出一个假设,只要通过思考就能理解和描述这个世界, ...

  3. 从 Servlet 入手带你看架构和框架设计的套路

    以下代码相信大家都很熟悉,大学时学 Java Web 都写过这样的代码. 从第一次接触 Servlet 到之后的很长一段时间内,我都没理解 Servlet 是个什么玩意? 为什么要有 Servlet ...

  4. Java 反射:框架设计的灵魂

    作者 l 会点代码的大叔(CodeDaShu) 在学习 Java 反射之前,先让我们看看这几个概念. 01 解释型语言和编译型语言 解释型语言:不需要编译,在运行的时候逐行翻译解释:修改代码时可以直接 ...

  5. 《精通自动化测试框架设计》—第1章 1.3节五天太久,还能压缩吗

    本节书摘来自异步社区<精通自动化测试框架设计>一书中的第1章,第1.3节五天太久,还能压缩吗,作者陈冬严 , 邵杰明 , 王东刚 , 蒋涛,更多章节内容可以访问云栖社区"异步社区 ...

  6. 通用数据级别权限的框架设计与实现(4)-单条记录的权限控制

    查看上篇文章通用数据级别权限的框架设计与实现(3)-数据列表的权限过滤,我们开始在原来的基础上实现单条权记录的权限控制. 相信前面的列表权限控制,很多系统都可以做到,但如何在上面列表的权限过滤中实现通 ...

  7. 自动化测试基础篇--Selenium框架设计(POM)

    一.自动化测试框架 感谢木棉花的漂泊分享,内容转自链接:http://www.cnblogs.com/fengyiru6369/p/8053035.html 1.什么是自动化测试框架 简单来说,自动化 ...

  8. 《精通自动化测试框架设计》—第2章 2.3节测试数据交互基本方法

    本节书摘来自异步社区<精通自动化测试框架设计>一书中的第2章,第2.3节测试数据交互基本方法,作者陈冬严 , 邵杰明 , 王东刚 , 蒋涛,更多章节内容可以访问云栖社区"异步社区 ...

  9. 《精通自动化测试框架设计》目录—导读

    作者简介 精通自动化测试框架设计 陈冬严,浙江大学硕士,具有10年软件测试和团队管理的工作经验,先后服务于ITSM.PLM软件研发企业,现就职于某金融行业核心机构IT规划部门.业余时间喜欢园艺. 邵杰 ...

  10. .NET框架设计—常被忽视的框架设计技巧

    阅读目录: 1.开篇介绍 2.元数据缓存池模式(在运行时构造元数据缓存池) 2.1.元数据设计模式(抽象出对数据的描述数据) 2.2.借助Dynamic来改变IOC.AOP动态绑定的问题 2.3.元数 ...

最新文章

  1. ubuntu桌面管理
  2. 每日一皮:新年好...
  3. 15个最佳的代码评审(Code Review)工具
  4. Redis【3】其他部分~
  5. android显示3d模型_使用Unity AR Foundation在增强现实中查看模型
  6. NYOJ 358 取石子(五)
  7. python代码查询_python 查询代码量
  8. 类的序列化[Serializable]
  9. Windows数据库编程接口简介
  10. JAVA中整数类型数据溢出问题研究
  11. mq系列传感器的程序_Cooper Instruments传感器定制解决方案
  12. C#判断PC是否支持触摸屏
  13. Mybatis使用order by语句
  14. Spring Securiy +aouth2.0+jwt整合,实现鉴权登录
  15. 华为+android+root权限获取root,如何获得华为手机的root权限?华为root权限获取教程...
  16. 朋友圈发布时间(Date、DateFormat、Calendar)
  17. GIS应用技巧之密度分析
  18. ap导入 ebs oracle_Oracle EBS Interface/API(1)--AP Invoice费用报表类型导入
  19. twitter加载很慢_我很高兴加入Twitter的6个理由
  20. 互联网电视变身哄娃神器:YOYO搜片真方便

热门文章

  1. Nginx部署ssl安全证书(腾讯云DV证书)
  2. 为什么选择Mapabc
  3. 语音信号处理-概念(二):幅度谱(短时傅里叶变换谱/STFT spectrum)、梅尔谱(Mel spectrum)【语音的深度学习主要用幅度谱、梅尔谱】【用librosa或torchaudio提取】
  4. 视频教程-Windows程序设计应用开发-C/C++
  5. windows平台下获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号
  6. Kindle禁止自动熄屏
  7. JS实现自定义右键菜单
  8. c语言图片的裁剪拼接,截屏、图片裁剪、拼接
  9. 拼接图像亮度均匀调整_华邦瀛微色差液晶拼接屏系统解决方案
  10. python数据可视化例子