演练:有效减法设计,才能开放加法

本文探讨了在大数据背景下,如何通过有效减法设计简化系统复杂性,以支持加法设计的空间。通过具体案例分析,展示了如何利用EIT造形等技术手段实现这一目标。

前言:幅员愈大的国度、大数据应用愈发达的国度,加法(设计)的幅度就愈大。加法设计幅度愈大,系统的复杂性和差异化就愈显着,此时标准化和统一化的呼声就愈高。无论是标准化或统一化,都意味着加法设计的大量推进,导致系统复杂而难以驾驭;因而要求架构师提出有效的减法设计方案,从复杂中设计出简单,让人们能简单中来掌控复杂。就架构师而言,基于有效减法的架构设计,才能开放人人去做加法设计。

wKioL1MFd2yjSC3SAAEfgKFAUB8610.jpg

ee                                                                        ee

欢迎访问 ==>高老师的博客网页

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


EE                                                                        EE

有效减法设计,才能开放加法


本文:

幅员愈大的国度、大数据应用愈发达的国度,加法(设计)的幅度就愈大。加法设计幅度愈大,系统的复杂性和差异化就愈显着,此时标准化和统一化的呼声就愈高。无论是标准化或统一化,都意味着加法设计的大量推进,导致系统复杂而难以驾驭;因而要求架构师提出有效的减法设计方案,从复杂中设计出简单,让人们能简单中来掌控复杂。就架构师而言,基于有效减法的架构设计,才能开放人人去做加法设计。兹说明如下:

1)秦朝时代唯有书同文、车同轨的有效减法设计,才能开放加法,整并六国成唯一个大国。

2)唐朝的诗叫做七言绝句,如姑苏城外寒山寺,夜半钟声到客船,一首诗四个句子,每一个句子七个字,它的韵律有两个平平仄仄平平仄,仄仄平平仄仄平,这是唐诗的主要造形(Form)

3)秦朝的<书同文、车同轨>,加上唐朝的<诗同形>,有效的减法设计,创造了大一统(加法)的辉煌国度。

4)君不见,在前面各步骤里,诸如:从复杂中设计出简单、以需求检验设计等都是基于有效的减法设计,一方面给设备供货商一个开放的加法设计空间;另一方面则让用户享受从简单(来自减法设计)中叫出复杂的满足感。

5)此外,在前面各步骤里,诸如:EIT造形、通用性接口和软件框架(框住某些东西)等,则是减法设计的实践技术;基于这些有效的减法设计途径,才能大幅开放加法设计;因而落实了:从简单中掌握复杂。


演练:


前言:

    于此,将联合运用前面所学到的思考技术,以框架及其所含的EIT造形来实践有效的减法设计。EIT造形明确表述Socket软件界面,藉由两个<E&I>包容包容TCP/IP通信协议和硬件机制,实践开放的加法设计;让通信协议和硬件机制都可以弹性抽换,架构设计具有未来性。

    由于EIT造形的主角就是接口<I>,架构师就拿<I>来做为起点(Simple Design),设计出通用性<E&I>;其一方面容纳客户未来抉择的改变,也就是包容未来<T>的多变化;另一方面,则包容未来TCP/IP通信协议的快速演变,或者换掉TCP/IP而改用其它通信协议。于是,架构师的目前决策(决定如何定义接口)具有高度未来性了。接着,规划测试机制,架构师继续两个Mock<T>,做为赝品(Mock)来配合<E&I>来对通信协议进行测试。

    最后,迅速将接口(<E&I><T>)落实为代码(请看下述高老师写的范例代码),就能进行实机测试(通信协议)了。(请看下述高老师写的范例代码)

    在这些步骤里,诸如:EIT造形、通用性接口和软件框架(框住某些东西)等,则是减法设计的实践技术。基于这些有效的减法设计途径,才能大幅开放加法设计;一方面容纳客户未来抉择的改变,也就是包容未来<T>的多变化;另一方面,则包容未来TCP/IP通信协议的快速演变。因而落实了:从简单中掌握复杂。


Step-1. 基于第二步骤的第2种比喻:

  “架构像一棵树的树干。由于树根必须不断成长,拥有随环境而变动的自由度和活力;才能有效吸收更多水分和养分。这项比喻让架构师关心底层模块(Module)的变动自由度。具有活力的树根和树干,才能有效之撑上层业务应用的蓬勃发展。如下图:

194558618.png

Step-2.基于第一步骤的第2种抽象视角:

  “第二种抽象视角:架构师基于<形与内涵分离>的视角,由于不同内涵之间的<变与不变分离>已经由第一种视角所抽象了。这个视角可从内涵中抽像出共同之形,也可以(无中生有地)创造一种造形(Form)来容纳内涵(包括变与不变部分)。由于我们常常拿船运业的集装箱(Container)来比喻<造形>;而拿形形色色的货品来比喻其(集装箱)内涵(Content)。所以上述的第二种视角,又称为<集装箱式>抽象视角。

    从小的造形(如函数、类别、EIT),到较大的造形(如模式、框架等),都是都是软件人员常用的<集装箱>,集装箱的简单造形是有效的减法设计,其能容纳天下万物,实践了开放的加法设计。例如,由软件框架(Framework)来提供上层接口(API)和下层接口(PI)来实践有效的减法设计;其包容上层多样化的应用软件,也包容底层硬件和通信机制的善变,则支持开放的加法设计。如今,无论是AndroidiOS或云平台,几乎都采取这种架构。如下图:

194651493.png

   例如,下图里的通信协议就属于树根的部分,应该开放加法;亦即我们必须包容它的不断变化、更新与成长。

194812983.png

此时,就能使用框架(有效减法)来包容通信协议的弹性变化(开放加法)


Step-3.依循第七步骤:清晰而明确表述接口其有效的做法是:擅用框架里的EIT造形(Form)架构师认知到两个接口的存在,如下图:

194912961.png

    藉由EIT造形<I>来明确地<定义>上图里的接口,并藉由<E><T>来辅助其清晰表达接口的<涵意>。因此,使用两个EIT造形分别来表述一个接口。

195003424.png

   藉由这两个EIT造形将三项善变的内涵分离开来,如下图:

195050921.png

   其中,利用两个<E>的联合来包容树根(通信协议内涵)部分的加法设计,如下图:

195141779.png

    然后,利用两个<T>分别包容树梢(智慧家庭和交通车联网内涵)部分的加法设计,如下图:

195237432.png

Step-4.依循第八步骤:尽快对接口进行检验和测试上图只是架构师脑海里的设计而已,那么又如何确保它是可落地的呢?因此,需要尽快落实为代码,并立即进行检验和测试。此时针对实际的<通信协议>来测试,例如上图里采纳软件的Socket接口和 TCP/IP实体通信协议。如下图:

195404361.png

   于是,就以EIT造形明确表述Socket软件界面,如下图:

195438668.png

   其中,藉由两个<E&I>包容包容通信协议和硬件机制,让通信协议和硬件机制都可以弹性抽换,架构设计具有未来性。接着,就是规划测试机制,准备测试两个<I>是否能有效包容通信协议的技术变迁;进而对通信机制的能量进行可靠性测试。于是,基于EIT造形是<基类/子类>的结构,<E>是基类(Super class)<T>是子类(Subclass),架构师设计两个<E&I>,并设计两个Mock<T>。如下图:

195818100.png

    所谓Mock代码,就意味着并没有真正联结到<智能家庭系统><交通车联网>;而只是做个赝品(Mock)来配合<E&I>来进行测试而已。[歡迎光臨高煥堂的博客首頁:http://www.cnblogs.com/myEIT/ ]。


Step-5.依循第九步骤:设计通用性接口,成为框架(Framework)核心要素构师想象EIT造形就是<基类/子类>的结构,<E>是基类(Super class)<T>是子类(Subclass),而<I>则实现为基类里的抽象函数(Abstractfunction)。于是,设计出两个<I>接口,如下图里的红色框框部分:

195849401.png

   就能直接写成代码,进行实机测试(通信协议)了。EIT造形的主角就是接口<I>,架构师就拿<I>来做为起点(Simple Design),设计出通用性<E><I>来容纳客户未来抉择的改变,也就是包容未来<T>的多变化。例如,包容未来TCP/IP通信协议的快速演变,或者换掉TCP/IP而改用其它通信协议。于是,架构师的目前决策(决定如何定义接口)具有高度未来性了。


Step-6. 最后,请看高焕堂老师所撰写的”Socket+EIT造形范例代码,如下:

本范例代码摘自网页:

http://bbs.51cto.com/thread-1085282-1.html

高老师将之改为EIT造形架构。


请看代码=> 客户端的<EIT造形+ Socket代码>

请看代码=> 服务端的<EIT造形+ Socket代码>


~ End ~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值