By 高焕堂
ee ee
1. 基本概念
架构设计包含两个层面: 1)思考设计; 2)表述设计。其中,架构师最关键的职责是接口<I>的设计和表述(Represent)了,也就是包含两个层面:1)如何进行设计接口<I>; 2)如何清晰表述接口<I>。之前,我们大部分介绍如何将EIT造形应用于架构的表述上;亦即,架构师藉EIT造形来清晰而明确地传达接口的设计(Design)与定义(Definition)给开发者,让开发者能基于架构而顺利展开后续的详细设计,并迅速落实为代码,进而测试与回馈来驱动敏捷跌代过程。其实,EIT造形除了用来”表述设计”之外,也很适合于”思考设计”层面上。尤其对初级架构师而言,依循EIT造形的引导,能够找到潜藏不明的<I>,或者能激发创意,无中生有地创造了新的<I>。例如,初级架构师可藉由EIT造形来思考和实践<目前决策的未来性>,创造重构的自由度。
2. 基本技巧:演练<目前决策的未来性>
EIT造形的<I>很适合做为通用性接口的起点(Simple Design)。<I>就是将<E>与<T>分离之后的整合点。<E>与<T>的分离,就是”架构师知识”与”买主知识”的分离。 [ 认识EIT造形 ]
架构师知识与买主知识的获取,有时间落差,常依据”买主来到”做为时间切割点。
例如:
再如:
典型的EIT造形,<E&I>是一起设计的,<I>的定义权属于<E>设计团队的。从<E>的视角来看,此<I>是<E>所专属的。从<T>的视角来看,此<I>是各<T>所共享的;<E>也是各<T>所共享的;亦即两者都是通用性的。<E&I>表达了各买主(或客户)的通用性功能;而<T>则表达了各买主的特殊性需求。通用性的<I>,有两层意义:1) 容纳买主需求(或选择)的未来变化,或容纳新买主的新选择;2) 限制买主的选择范围。例如,买主买了车子之后,未来随时可以改变选择(沙滩、公路或高山);展现出设计师目前决策的未来性。例如,买主未来决定将车子要到沙滩上跑时,就更换新轮胎,如下图:
再如,买主未来又改变需求,决定将车子开到高速公路上时,就更换新轮胎,如下图:
再如,买主未来又改变需求,决定将车子开到高山雪地时,又可随时换新轮胎,如下图:
此外,EIT造形也限制了买主的选择范围(藉由<I>来限制<T>和<A>)。例如,EIT造形会清晰表述何种<T>才被允许装配上来。例如,下图就不是被允许的了。
其实,EIT造形只清晰地表述出很通俗的<主件、插件、配件>的组合关系而已。我们很容易将上述的汽车EIT造形,对映到软硬件的EIT造形,如下图:
这图里的<E>、<I>、<T>、<A>共4个要素,就对映到通俗的<主件、接口、插件、配件>的组合关系而已。如下图:
兹将上述EIT造形应用于游戏软件架构上,手机游戏框架提供<E&I>,可以让买主(或用户)未来选择各种搭配的云平台。当买主未来又改变需求,决定使用新的平台时,只要随之更换新的<插件>即可了。如下图:
兹将上述EIT造形应用于智能电视(TV)平台上,智能TV提供<E&I>,可以让买主(或用户)未来选择各种搭配的OTT平台(如选择微信或微博等),就能将家庭里的信息,透过智能TV而推送到微信、微博或Skype等OTT平台的客户端屏幕上。当买主未来又改变需求,决定使用新的OTT平台时,只要随之更换新的<插件>即可了。如下图:
买主在未来时间里,可能会改变他对配件<A>的选择(即改变决策);每一项选择都是该买主的特殊性需求。于是,买主委托App开发者改写<T>代码来表达<A>的特殊性,并符合通用性接口<I>,来与<E>重新组合起来。未来新的买主来了,让他在<I>的限定范围里进行他对配件<A>的选择(做决策);其选择都是该买主的特殊性需求。于是,买主委托App开发者改写<T>代码来表达<A>的特殊性,并符合通用性接口<I>,来与<E>组合起来。 [歡迎光臨 高煥堂 網頁: http://www.cnblogs.com/myEIT/ ]
架构师设计了通用性接口<I>来容纳买主未来决策的改变,这也意味着:设计师的目前决策(决定如何定义接口)具有高度的未来性。 EIT造形让架构师、开发者都具有整体观,间具通用性和特殊性的考虑;因而让整体系统具有高度的未来性和敏捷性。◆
[Go Back]
** 相關文章 **
<< EIT造形成為系統分析與設計的基本模快 >>
** 相關視頻 **
<< Android架構師之路&EIT詳解 >>