博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
技术演练_维护底层模块的变动自由度
阅读量:6993 次
发布时间:2019-06-27

本文共 1073 字,大约阅读时间需要 3 分钟。

返回本文:

ee                                                                        ee

欢迎访问 ==>

高焕堂:MISOO(大数据.大思考)联盟.台北中心和东京(日本)分社.总教练

EE                                                                        EE

技术演练
维护底层模块的变动自由度

     所谓变动自由度,就是改变底层模块的接口(Interface)时,是否会引发许多修改点,而导致牵一发而动全身呢? 如果是这样的话,变动成本提高了,变动自由度也下降了。

Step-1.反思:模块开发者自己定义模块的接口,这是一种假设(Assumption),不是真理。如果建造地基的人自己决定地基的接口,然后开放给上层未来可自由搭建房子;表面上是合理的,其实不然。

Step-2. 衍生出一个假定(Hypothesis)欲建造一间房子,它有四根柱子,分别由四个人各建造其中的一根柱子,然后各自定义其柱子接口。基于事实,由于各自对未来整体房子的想象不尽相同,其接口定义会不一致,那房子就很难建好了;于是否证了这项假定。这就是著名软件专家Brooks40年前写的<<人月神话>>一书里所说的:设计的概念一致性”(Conceptual Integrity)。缺乏了一一致性,将失去整体性;架构师的核心职责就是要促进设计一致性,以确保架构整体性。

Step-3.需求冲突:

l模块开发者必定(must)自己来设计和定义模块接口

l架构师必须促进接口设计和定义的一致性,以确保架构整体性。

Step-4.架构师设计一个模式(Pattern)来化解需求冲突

4.1 标准接口模式:架构师统一制定标准接口,让四个开发团队来遵循开发;如下图:

    这样有个缺点,很可能会违背第一项需求,原因可能来自模块的专业知识,或其它商业利益因素。也就是说,模块专业知识或其它商业优势条件的原因,必须由模块开发者自己来设计和接口;导致这个模式就不可行了。此外,很可能会冻结未来的弹性变化空间;因为这个标准接口的使用点会分散于房子系统的多个角落,局限了标准接口的未来变动空间;兹设想,未来如果标准接口变成不标准时(由于技术变迁等因素),有需要更改这个标准接口时,由于使用点分散各处,将产生牵一发动全身的涟漪效应,变动成本急速上升,就冻结了接口和模块的未来变化空间,降低其变动的自由度。

4.2 通用性接口模式:架构师制定一个通用性接口,四个开发团队可各自定义模块的特殊性接口。

    然后,透过EIT造形来衔接和转换这两项接口。

   这个EIT造形可实现如下:

    架构师制定和掌握通用性接口,包容各开发团队的特殊性接口,让各根柱子的接口和建置都能保持未来性,确保具变动的自由度。也有效化解上述的需求冲突了。

转载地址:http://emfvl.baihongyu.com/

你可能感兴趣的文章
WP7上HttpWebRequest的用法
查看>>
3:16: 错误: expected declaration specifiers or ‘...’ before string constant
查看>>
大白话5分钟带你走进人工智能-第二十五节决策树系列之信息增益和信息增益率(4)...
查看>>
【datamining】OLTP,OLAP,维度数据库,事实表,维度表、星形和雪花模式、数据立方体、概念分层...
查看>>
PIE SDK 距离分类和最大似然分类
查看>>
Add、Commit和Push
查看>>
NPInter数据集的奇葩标号的出坑秘籍
查看>>
Angular2地图的使用、地图画线、高德底图切换、图标变换等
查看>>
opencv Mat.at
查看>>
Android中android:visibility的3中属性的剖析
查看>>
SharePoint 客户端对象模型 多选查阅项赋值
查看>>
spring前两天复习
查看>>
动手动脑
查看>>
网络流(二)最大流的增广路算法
查看>>
IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构(转载)...
查看>>
TList To DataTable
查看>>
Cache.Insert 方法(摘自MSDN)
查看>>
Duck typing
查看>>
每日一记--索引/过滤器
查看>>
Struts2的CRUD操作
查看>>