以规矩成方圆,适应度函数引导演进式架构

1、演进式架构是支持跨多个维度进行引导性增量变更的架构。引导性这个词表示架构应该朝某个目标变更或者体现目标。通过对每个迭代进行小的变更使方案逐渐成形。工程师评价每一方案的当前状态,来判断当前方案与最终目标的距离。在软件中,我们使用适应度函数检查开发人员是否保留率架构的重要特征。架构的适应度函数为某些架构特征提供了客观的完整性评估。适应度函数能够保护系统所需的各种架构特征。每个适应度函数对应架构的一个或多个特征。全系统适应度函

数包括各个单一适应度函数:单元测试、契约测试、过程衡量指标、监控、集成测试、架构衡量指标。系统绝不是各组成部分的总和,而是各部分相互作用的产物。

2、架构由多个维度构成:性能、可靠性、安全性、可操作性、代码规范、集成要求。希望适应度函数能代表每一项架构需求。开发人员有多种描述适应度函数的机制,比如测试和衡量指标。性能测试的响应时间、圈复杂度都是适应度函数的运用。所谓适应度函数引导演进式架构,指的是通过单独的适应度函数评估单个架构选择,同时通过全系统适应度函数确定变更的影响。收集重要的架构阈值和需求作为适应度函数,使得以前模糊又主观的评价标准变得更加具体。利用大量现有机制来构建适应度函数,包括传统的测试、监控等工具。并非所有测试都是适应度函数,只有当测试有助于验证架构问题的完整性时,它才是适应度函数。

3、原子适应度函数针对单一的上下文执行,用来验证架构的某一维度。整体适应度函数在共享的上下文中运行,综合检验架构的多个维度,比如安全性和伸缩性。触发式适应度函数基于特定的事件执行,比如开发人员执行单元测试、部署流水线执行单元测试或质量保证人员执行探索性测试。持续式适应度函数,不是按计划执行,而是持续不断地验证架构的某些方面,比如事务处理速度。静态适应度函数的结果是固定的,比如单元测试的二进制结果:成功或失败。动态适应度函数依赖基于额外上下文的变化,某些值会视具体情况而定。自动适应度函数是在自动化环境中执行,如持续集成、持续部署。有些时候,系统的某些维度无法自动化,这就需要手动适应度函数。当项目使用某个加密库时,架构师或许想创建一个临时适应度函数。预设式适应度函数高于应急式适应度函数。

4、团队应当尽早确定适应度函数,将其视为初步理解全局架构关注点的一部分。没能确定适应度函数的团队面临如下风险:做出错误的设计选型,导致软件构建失败;做出的设计选型在时间和成本上出现不必要的浪费;系统无法轻松应对日后的环境变化。适应度函数可分为三类:关键维度、相关维度、不相关维度。讲适应度函数的执行结果可视化至明显的公共区域,能使开发人员记得在日常编码中考虑它们,保持关键部分和相关适应度函数的活力。

5、适应度函数的执行结果审查以会议形式进行,会上主要业务和技术利益相关方一起讨论如何修改适应度函数以满足设计目标。适应度函数审查涉及以下几点,审查已有的适应度函数,审查当前适应度函数的相关性,确定每个适应度函数的规模和大小的变化,确定是否有更好的方法测量或测试系统的适应度函数,发现系统可能需要支持的新的适应度函数。每年至少审查一次适应度函数。

6、我们希望架构在引导下演进,所以我们在架构的不同方面设置约束来防止架构朝着错误的方向演进。

2eba5b60d8ce0d2e4b3355cad7286081.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值