张逸说

出口成张,逸派胡言

0%

大思接了满满一杯热咖啡,正欲离去,转身时,偶然瞥见茶水间的白板画满了类图,定睛一看,感慨地说道:“蔡了,你还真是幸福啊!马大叔亲自给你讲解工厂模式。”

蔡了刚刚意识到自己说错了话,还在尴尬中,赶紧说道:“是啊,是啊!”一边说着,一边还使劲地点着头,希望通过过分的礼貌来化解刚才的口不择言。

成大思想到了自己过去学习设计模式的经历,悠悠地说道:“说起来,当初我学设计模式时,可没有你这么好的待遇了。”

这一番话倒是勾起了蔡了的好奇心,赶紧问道:“大思,那你当时是怎么学的呢?”

阅读全文 »

公司的茶水间装修得如家一般温馨,咖啡机时刻飘出咖啡的浓香。员工们常常在此休息聊天,既可以选择坐在高脚凳上依着吧台闲谈阔论,也可以舒服的躺坐在旁边的沙发上闭目养神。晨会之后的半小时,以及午餐前后是这里最喧嚣的时候,此时的茶水间却颇为安宁,大家都在工位上专心工作。

两人来到茶水间,蔡了问道:“老规矩,还是拿铁,对吧?”马丁花点点头,蔡了殷勤地给他接了一杯浓浓的拿铁,然后又给自己接了一杯卡布奇诺,两人坐在沙发上继续讨论之前的话题。

阅读全文 »

Kent Beck提出的简单设计原则,内容为:

  • 通过所有测试(Passes its tests)
  • 尽可能消除重复 (Minimizes duplication)
  • 尽可能清晰表达 (Maximizes clarity)
  • 更少代码元素 (Has fewer elements)
  • 以上四个原则的重要程度依次降低。

通过所有测试原则意味着我们开发的功能满足客户的需求,这是简单设计的底线原则。该原则同时隐含地告知与客户或领域专家(需求分析师)充分沟通的重要性。

尽可能消除重复原则是对代码质量提出的要求,并通过测试驱动开发的重构环节来完成。注意此原则提到的是Minimizes(尽可能消除),而非No duplication(无重复),因为追求极致的重用存在设计与编码的代价。

尽可能清晰表达原则要求代码要简洁而清晰地传递领域知识,在领域驱动设计的语境下,就是要遵循统一语言,提高代码的可读性,满足业务人员与开发人员的交流目的。针对核心领域,甚至可以考虑引入领域特定语言(Domain Specific Language,DSL)来表现领域逻辑。

在满足这三个原则的基础上,更少代码元素原则告诫我们遏制过度设计的贪心,做到设计的恰如其分,即在满足客户需求的基础上,只要代码已经做到了最少重复与清晰表达,就不要再进一步拆分或提取类、方法和变量。

这四个原则是依次递进的,功能正确,减少重复,代码可读是简单设计的根本要求。一旦满足这些要求,就不能创建更多的代码元素去迎合未来可能并不存在的变化,避免过度设计。

阅读全文 »

马丁花背着灰色的双肩背包走进了公司写字楼,浮现在眼前的是排成长蛇状的一群上班族,正按照单双层各自分成两队等候着电梯。低楼层的童鞋等不及了,甩开双腿开始爬楼梯,就当是减肥锻炼身体了,不着急的依旧排在队伍里,低头看着手机,玩着游戏或者刷着朋友圈。手机扫去了等待的急躁与不安,一个个安静如花,只待电梯像殷勤的主人把他们一批一批接走。

终于踏进了电梯,马丁花被挤到了角落里,电梯里的人互不相识,肃穆像开追悼会,只听得电梯不断发出“叮”的一声响,电子合成声开始汇报多少层到了,门打开,随着不断有人走出,空间变得逐渐开阔起来。

“十八层到了!”自从新搬到这栋写字楼后,马丁花每次听到呆板而不带感情的电子合成声汇报所在楼层到达时,都忍不住翻一下白眼,心里不由脑补出“地狱”两个字眼儿。摇摇头,缓缓走出电梯。

刷卡。自动门刚一打开,就瞥见一道身影正要到正前方拐角处的茶水间倒水,看见自己来了,又赶紧退了回去,似乎故意躲着马丁花。这道身影再熟悉不过,自然躲不过马丁花敏锐的法眼,赶紧叫到:“蔡了!”

阅读全文 »