第一种抽象视角:架构师基于<变与不变分离>的视角,寻找<万变不离其宗>的宗,其宗(架构)的不变性带来简单性;让人们能透过掌握简单来驾驭复杂(多变),落实了架构师的职责。
第二种抽象视角:架构师基于<形与内涵分离>的视角,由于不同内涵之间的<变与不变分离>已经由第一种视角所抽象了。这个视角可从内涵中抽像出共同之形,也可以(无中生有地)创造一种造形(Form)来容纳内涵(包括变与不变部分)。由于我们常常拿船运业的集装箱(Container)来比喻<造形>;而拿形形***的货品来比喻其(集装箱)内涵(Content)。所以上述的第二种视角,又称为<集装箱式>抽象视角。
架构像房子的地基(第1种比喻):由于地基要稳定,上层房子才不会倒塌;因此这项比喻让架构师认为架构要稳定,上层的业务应用才会稳定可靠。这种比喻偏于寻找不变,而不是追求创新。
架构像一棵树的树干(第2种比喻):由于树根必须不断成长,拥有随环境而变动的自由度和活力;才能有效吸收更多水分和养分。这项比喻让架构师关心底层模块(Module)的变动自由度。具有活力的树根和树干,才能有效之撑上层业务应用的蓬勃发展。
架构师的职责就是要在一个系统架构体系中,替自己公司的软件系统(或模块)在架构体系中,取得制高点、取得控制力。
一个企业,如果在系统架构体系中,处于弱势地位的话;我们就很容易看出,它在商业竞争中,就难以取得话语权。
例如,曹操留给后代极高的政治智慧:挟天子以令诸侯。系统架构师也能运用这项智能,来取得系统架构体系中的控制力或主导权,来支撑该公司商业竞争的话语权或强龙地位。再如,Android架构师运用HAL驱动框架,来争取众多硬件厂商的支持,让Android取得系统控制力,支撑Google的商业强势地位。
<用户体验是是让用户享受从简单中叫出复杂的满足感>这是苹果公司乔帮主(Jobs)的名言。因为智能化设备的功能内涵愈来愈复杂,如果缺乏有效的架构师来设计出简单,而让用户直接面对复杂,用户会感到害怕;就欠缺满足感。
在科学上也是如此。例如,牛顿从很复杂的力学中总结出了f=ma公式,大家就能从这简单公式而去掌握复杂的力学了。爱因斯坦也一样,他从复杂的规律中找出简单的E=mc^2质能互换公式,大家就能从这简单公式而去了解复杂的质能世界了。
为什么说它简单呢? 理由之一是:公式的元素不超过三个,比如说,牛顿力学公式里只有F、m和a三个元素;爱因斯坦的公式也一样,只有E、m和c三个元素。簡單的元素和公式(造形)卻蘊含極為複雜的內涵。
同样地,EIT造形的要素,也刚好就是三个。简单的元素和造形却蕴含极为复杂的内涵,简单而优雅的接口<I>带给开发者和用户享受掌握复杂的满足感。
观点1:架构来自需求。其意味着,基于需求而设计。也就是传统的Rewquirement-based架构设计。
观点2:架构基于愿景(Vision)的引导,来自架构师的创意。其意味着,基于愿景而设计,需求用来检验架构。一旦创意设计<爱上>了需求的限制,架构(设计)自然心甘情愿地满足需求(限制)了。
由于数据量的庞大和异型化(Different Fomat),如迷雾一般,欲取的市场竞争优势,如同想从大迷宫里找到出口,最有效的途径是:基于(假设性)想象多个最可能的出口,然后逆向推理,倒过来寻找出有效的路径(连线)。
苹果公司乔帮主(Jobs)的名言:“你不可能在眺望未来时把生活中的每个点连接起来,只有回顾时能才连点成线。”许多人并不知道,他所提的就是架构师的关键任务:找到愿景(Vision)与现实(Reality)间的连线。这是有效架构师必备修练。
Play---没有主词和受词,动词<play>就显得意义不够清晰。
猫玩(play) 绣球---有了主词和受词,动词<play>就显得意义很清晰。
老师弹(play) 钢琴---有了主词和受词,动词<play>就显得意义很清晰。
EIT造形的<I>是主角,架构师必须清晰而明确定义之。至于<E>和<T>都是配角,开发者可以做<假模块(Mock)>来实现<E>或<T>配角,进行对<I>的模拟测试。就如同飞机架构师会设计<风洞>来模拟测试飞机的机翼一般。
目前市场上,有许多测试环境提供了Mock-based的整合测试工具,能迅速开发出 Mock<E>和Mock<T>来测试<I>,非常有助于落实这个步骤的任务了。
例如,想测试Client与Server模块之间的真实接口<I>。就能设计Mock<E>与 Client衔接;并且设计Mock<T>来与Server衔接;于是既使Cleint和Server两个模块都还没开发,也能迅速开发出 Mock<E>和Mock<T>来测试真实接口<I>。
容纳买主需求(或选择)的未来变化,或容纳新买主的新选择。兹拿汽车来做比喻,当买主买了车子之后,未来随时可以改变选择(沙滩、公路或高山)。例如,买主未来决定将车子要到沙滩上跑时,只要更换新轮胎就行了;这展现出架构师目前决策的未来性。
限制买主的选择范围。买主抉择的改变,表现于应用软件(App)上,架构师设计通用性接口来<框住>各种App,限制买主的抉择空间,才不会失控。这些通用性接口的有机整合体,就称为软件框架(用来框住App的架构)。
秦朝时代唯有书同文、车同轨的有效减法设计,才能开放加法,整并六国成唯一个大国。
唐朝的诗叫做七言绝句,如“姑苏城外寒山寺,夜半钟声到客船”,一首诗四个句子,每一个句子七个字,它的韵律有两个“平平仄仄平平仄,仄仄平平仄仄平”,这是唐诗的主要造形(Form)。
秦朝的<书同文、车同轨>,加上唐朝的<诗同形>,有效的减法设计,创造了大一统(加法)的辉煌国度。
君不见,在前面各步骤里,诸如:从复杂中设计出简单、以需求检验设计等都是基于有效的减法设计,一方面给设备供货商一个开放的加法设计空间;另一方面则让用户享受从简单(来自减法设计)中叫出复杂的满足感。
此外,在前面各步骤里,诸如:EIT造形、通用性接口和软件框架(框住某些东西)等,则是减法设计的实践技术;基于这些有效的减法设计途径,才能大幅开放加法设计;因而落实了:从简单中掌握复杂。[歡迎光臨高煥堂的博客首頁:http://www.cnblogs.com/myEIT/ ]。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/653579/viewspace-2135620/ ,如需转载,请注明出处,否则将追究法律责任。