ee ee
欢迎访问 ==>高老师的博客网页
高焕堂:MISOO(大数据.大思考)联盟.台北中心和东京(日本)分社.总教练
EE EE
Step-1.认识今天决策的重要性(未来性)。苹果公司前CEO乔布斯(SteveJobs)曾说:”你必须相信今日所做的(决策)会影响你的未来。”架构师专注的不是未来决策,而是目前决策的未来性。换句话说,架构师不是去预测未来,不是去关心<未来决策>,或去替未来做决策。
Step-2.理解架构设计(决策)的未来性。表现于软件架构设计(即决策)的未来性上,其最为明显之处就是:包容未来的变化;包括用户(User)未来可能的需求和选择等。架构<设计>不是要去实现<需求>。需求是善变、市场主导权之竞争也往往如流水般不可测;也就是因为它的未来的不可测性,所以我们需要优越的架构设计。
Step-3.领会<通用性接口>的角色。<通用性接口>设计是信息系统架构师的基本技能,它是创造设计未来性的基本机制。请先观摩Android的系统架构,其SurfaceView是用来将视频或3D绘图等显示于手机屏幕上,其定义了一个通用性接口:SurfaceHolder.Callback接口。如下图:
基于通用性接口,就很容易联想的如何使用SurfaceView基类,来与Camera进行组合,落实了具有未来性的设计。如下图所示:
架构师先设计Callback通用性接口,让App开发者未来能视客户需求改变,而随时能将SurfaceView与Camera组合起来,于是手机屏幕上就能显示摄像头的Preview景像了。由于SurfaceView与Camera两者变成为疏结合(LooselyCoupled)关系了,当客户在稍后出现时,就能做弹性的组合了。例如,可委托开发者把护士站的Android TV/STB联接到医院加护病房的仪器设备上。如下图所示:
基于通用性接口的未来性,未来客户需求有改变时,就能做出更多创新性组合。例如,可轻易将SurafecView与OpenGL绘图引擎组合起来,让动态的3D绘图显示于手机屏幕上。如下图所示:
以上,你已经领会了通用性接口如何实践架构的未来性。
Step-4. 设计通用性接口。
EIT造形的主角就是接口<I>,架构师就拿<I>来做为起点(Simple Design),设计出通用性<E>和<I>来容纳客户未来抉择的改变,也就是包容未来<T>的多变化。于是,架构师的目前决策(决定如何定义接口)具有高度未来性了。
Step-5. 基本演练。先看一个Client/Server结构:
兹增添一个EIT造形,如下:
此EIT造形的内部结构,如下:
这个<I>就是通用性接口的起点了。EIT造形有两种主要变形,兹采取另一个变形,上图就相当于:
这个<E>可提供一个接口<IE>给Client来使用,上图也相当于下图:
这就是典型的通用性接口设计了:1)由通用性的<E>来提供通用性接口<I>来衔接到多样化的Server模块。2)这<E>还提供通用性接口<IE>来衔接到多样化的Client模块。基于此通用性接口,就能创造多样化的组合,如下图:
Step-6. 应用演练。EIT造形的<I>做为通用性接口的起点;设计出通用性<E>和<I>来包容未来<T>的多变化。而一群<E&I>的巧妙组合,就成为框架(Framework)的核心了。EIT造形让架构师、开发者都具有整体观,间具通用性和特殊性的考虑;因而让整体框架具有高度的未来性和灵活性。例如,我们可以设计一个框架(基于通用性接口)来整合”播放 MP3音乐”的App开发。兹看看”播放 MP3音乐”应用的Use Case图:
这用例图里,含有两个用例:1)播放(Play)音乐;2)播放(Play)某首音乐。基于这项需求(Requirements),而设计了一个通用性接口,成为一个简单的应用框架,如下图:
此范例展示如何建立一个框架(Framework):包含一个IPlugin接口和一个Plugin基类。由它来提供统一的通信接口,来整合各敏捷跌代过程中所开发的各用例代码。
~ End ~
转载于:https://blog.51cto.com/8204129/1337236