浅尝架构师的滋味

转载:http://blog.csdn.net/yanfeivip8/article/details/39894625

上篇简单介绍了(EIT造型初探),什么是EIT造型,如何设计 EIT造型,以及如何将内涵用EIT造型表达出来,今天,所要说的正如标题所言,我们所要做的正是体验一番架构师的滋味,即在EIT造型这种条件下架构师该做什么?以及如何做的问题进行讨论,看了本篇之后,你就会对EIT造型有了进一步的理解。

   一、架构师的决策:将哪些内涵放进EIT造型中去

   正如上篇所言,EIT就是一种集装箱,可以放进去各种各样的内涵,那么相对于类这一个小的造型来说,EIT的最大区别在于需要放置的不止一种内涵,而是两种内涵。众所周知,最基本的内涵来自于需求。根据基类、子类,可以划分为:基类的需求称为第一种内涵,子类的需求称为第二种内涵。


而架构师的职责就在于对于客户的需求如何能将其划分为两种内涵。下面来介绍如何划分这两种需求。这两种需求的取得会有时间的落差,第一种需求先取得,第二种需求后取得。而这种取得的邻接点就是“买主的到来”,买主到来之前称为第一种需求,买主到来之后称为第二种需求。然后将第一种需求写进去基类,第二种需求写进去子类。然后设计一个接口将基类、子类整合起来,这就是一个完整的EIT造型的设计了。这样就可以将需求知识完整的用EIT造型表现出来了。

  

二、从生活中体味“两种知识”

     上面我们简单的提到了根据买主到来的前后,将需求分成两种知识,第一种知识内涵写在基类,第二种知识的内涵写在子类,两者通过实现设计好的接口装配起来,就是一个完整的EIT造型。从中有几个关键点:买主到来、第一种需求(基类)、第二种需求(子类)、接口。下面,我们从生活实例中去分析这几个关键点的究竟是什么?

实例1、

        

       火锅店卖火锅桌 上会挖一个洞,当客人到来的时候,根据客人的需求放上不同类型的火锅。

       

      在这个案例中,买主到来之后才能知道吃什么类型的火锅,所以放置在子类中

             整个需求:一个能吃火锅的桌子

             买主到来:指的就是客人来了

             第一种需求:桌上要放火锅

             第二种需求:客人吃什么类型的火锅

             接口:桌上的那个洞。


  实例2、

   在这个案例中,整个需求是:需要一个能在各种类型的地上都能走的汽车。买主到来之后才能提供的知识:究竟在什么地上走,选择哪种类型的轮胎

             整个需求:需要一个能在各种类型的地上都能走的汽车

             买主到来:指的就是客人来了

             第一种需求:汽车

             第二种需求:究竟在什么地上走,选择哪种类型的轮胎

             接口:转轴



三、APP开发者的职责:买主提供需求知识,APP开发者帮助他写代码

    1、在买主到来之后,买主可以提供需求知识,然后APP开发者根据需求知识将其转换成代码。下面通过实例来分析一下。

   实例、

          对于多线程执行任务来说,在买主到来之后就知道该执行什么任务?如何去执行,那么APP开发者只需要根据这个需求去编写子类即可,如下图所示:


2、将T装配到E,然后执行

 

总之,APP开发者的职责就是:根据I编写T,然后将T转配到E上去

四、分与合:强龙与地头蛇的分工

       什么是分与合?

         从上面的案例中,可以看出架构师的职责是将需求根据买主到来前后,将 其分成两种知识,设计出EI,APP开发者是根据接口开发出相应的子类,然后将子类装配到基类上执行。由此不难看出:其中有两个关键点:分、合。EIT造型表达的是架构师的先「分」与买主来了之后的「合」。

       老子.道德经:「无之以为用,有之以为利。」这句话可以这样理解:无之,就是指什么都没有,设想(买主未到来);有之,就是指买主到来了。整体意思就是,在买主还没有到来之前,架构师根据是否能产生效用来设计系统,买主到来之后就可以来获利。畚箕必须先挖空(无之)才能拿来装东西(有之)。所以先无之而后始能有之。例如,客人(即买主)来之前,强龙「无之」(把锅子挖掉)得接口。一旦客人来了,地头蛇「有之」(把锅子放上去)就收钱。

为什么会想把锅子挖掉呢? 理由是:买主来了,才知道买主选择何种火锅;只好等待买主决定和挑选了火锅种类之后,才能将锅子装配上去。

      通过几个实例来分析一下:

                 肯德基快餐店:
                    -- 客人来之前,厨师做<分>(即庖丁解鸡)。  

                    -- 客人来之后,前台人员做<合>,合出半鸡或全鸡。

                点菜单与食谱分离:

                      烹饪的知识,它分散于两种档里: 1. 食谱, 2. 点菜单。一般而言,食谱主要记载烹饪师傅的知识,而点菜单则记载买主(客人)的知识;两者相汇合之后,才能端出              一道好吃的菜肴。

        后果:强龙、地头蛇的分工

             从肯德基餐厅得知:

                     客人(买主)来之前,大厨师先做<分>的动作。同理,软件架构师也是做<分>的动作。这就扮演强龙角色。

                    客人(买主)来了,柜台的小弟、小妹才做<合>的动作。同理,软件App开发者也是做<合>的动作。这就扮演地头蛇角色 。

             从火锅店得知:

                    客人(买主)来之前,先做<分>,并得接口。

            从汽车得知:

                   福特汽车厂是强龙。福特架构(设计)师的工作是:-- 设计<I>,并分离出<E>和<T>。福特工程师的工作是:生产引擎 。

                   固特异轮胎厂与修车厂都是地头蛇。固特异轮胎厂工程师:生产轮胎修车厂工程师:装配轮胎

             软件架构师的主要任务是做<分>,并设计接口。亦即:设计<I>,并分离出<E>和<T>。因为做<分>,创造了<E>的复用性(Reusability)。以及<T>的抽换性。 因分而复用,因合而获利。这正是老子的“无之以为用,有之以为利”。 正是基于这种EIT造型的分工:产生了从分工到外包模式。强龙设计EI,限制、控制了T的开发,然后将T的任务外包给地头蛇去做。这正是现今各大app store的来历。正是因为掌控了EI,这种外包就不会失控。所以EIT造形支持当今主流的外包模式。强龙不压地头蛇,EIT-based外包正支持此项双赢的商业模式和策略 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值