张逸说

出口成张,逸派胡言

0%

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

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

阅读全文 »

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

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

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

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

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

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

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

阅读全文 »

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

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

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

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

阅读全文 »

《解构领域驱动设计》在领域驱动设计统一过程的指导下,将该过程的全部三个阶段作为本书的三个核心篇章:全局分析、架构映射与领域建模,再辅以开篇和融合,共分为五篇二十五章,全面而完整地表达了我对领域驱动设计的全部认知与最佳实践。

阅读全文 »

蔡了戴着耳机一边哼着歌一边晃着头沉浸在自己的音乐世界里。8点45分,距离早会还有半个多小时,放松一下,抽空自娱自乐!

“蔡了!”办公室传来中气十足的呼唤声,似乎整个写字楼都回荡着蔡了的名字。

“哎,明明就只隔几个工位,还要吼得整栋楼都听得到,不明真相的,还以为我又犯什么错了呢!”蔡了一边腹诽着,一边回应着“来了来了”,丢下耳机就向马大叔的工位跑去——没办法,头儿的呼唤,怎敢不从?

“马大叔!什么事啊?不会我的代码又没写好吧?”蔡了看着电脑屏幕的光线投射在马丁花那张老脸上,阴晴不明,心里一紧,说话也变得小心翼翼起来。

“没事就不能叫你?”马丁花脸一板,像指挥军队的将军一般将手一挥,说到:“过来,过来!我今早一来就pull了代码,正好看到你提交的代码。”

阅读全文 »