揭示了什么意图?

“DDD如今也不是设么新鲜词了,「统一语言」走到哪里说几乎都能听到,咱们的工作坊我也听了许多次了,那到底什么是统一语言?你用业务人员提供的业务概念来命名了吗?你有自己在创造各种业务沟通过程中从未出现的新词汇吗?停车记录,哪里来的「停车记录」词汇呢?之前澄清需求有提到这个吗?”袁帅在会议室声音有点激动,清扬刚好从门口路过,她猜到袁帅又在一如既往开“怼”了。

随即,她小心翼翼推开门,透过缝隙看到两台大电视机的屏幕上并行显示着一对学员业务拆分的Task列表,学员的Task出现了停车「记录」这样的通用技术词汇,触及了袁帅的敏感地带,他一番连环问后,两眼余光未退,虽炯炯有神,但毫无攻击性。被“怼”的Pair神情显然处也在亢奋的状态。

清扬正好对简单设计充满的不一般的热情,恰巧来到了简单设计下一站:「揭示意图」。此时懵懵懂懂地她对「揭示意图」虽找到了一些感觉,但还是没有明晰的答案。

怀着疑惑,她去倒了杯水,又折回来悄悄推开门,溜到会议室的角落,期待从OOBootcamp这次探讨中收获一些灵感。

“我们换一组Pair,你俩的Task下去做一些重构哈~” 只见一开始还剑拔弩张的元力搭档经过刚才的一番提问和思辨,双双点头表示接纳,且表情面带舒展的笑容。

快速Review完另一对Pair的Task,七嘴八舌讨论对齐了一些小点,没什么大问题,然后紧接着切换到代码。

  1. public class ParkingValet {
  2. private List<CarPark> carParks;
  3. // ...
  4. }

“ParkingValet是啥?清扬你能看懂吗?” 清扬意外被Q到了,她还以为自己未被发现。“额…刚毕业的停车小弟?”清扬记得上一个Task在讨论的是「刚毕业的停车小弟」需求,突然又补充了一句:“咦,不对,我看刚才咱们在讨论的是「GraduateParkingBoy」呢?课件上也这么写的…” 大家听到这里突然笑出声来。

“不只是课件上这么写的,Trello上的用户故事卡也是这么写的哦~” 一副“看热闹不嫌事大”的Jeany老师补了一刀,袁帅立即抛给她一个感谢的眼神。Jeany不知道是多少次补刀了,每次总能补到袁帅的心坎上,还能让学员感到满满的善意。

“哦哦,确实,我们俩把这个忽略了,自己还花了很多不少时间去查各种词典,才用了这个感觉高级的词汇。”还未等袁帅开问,代码的作者卢勇搭档开始“自首”了。

“CarPark又是什么?停车公园?”自己组的另一对Pair张莉搭档也按捺不住发问,「停车公园」一出,全场都笑了,袁帅也没忍住。

“CarPark是停车场啊!额…… 懂了,停车场是「ParkingLot」,PO上一次就跟我们沟通澄清过,提到这个业务词汇。” 刚才还在据理力争的卢勇立即一副无辜求原谅的表情,逗得大家哈哈大笑。

快过试用期的清扬此时并没有觉得袁帅在小题大做,因为这半年来,她在代码库中踩过坑,尝过苦,当然也挖过坑。明明业务沟通澄清是使用了大家都达成一致词汇,在写代码的时候不用,反而要去造一些自己觉得高大上,却跟业务概念不匹配的词汇

她经常在代码库中看到一些莫名奇妙的词汇,然后需要花时间去理解其含义,到都来其实是一个业务概念的另一种命名,着实让人费解。这又让她想起来上次跟袁帅吃饭时提到的「行外话」。

眼看马上21:00了,袁帅做了个简单总结:“揭示意图的意图初衷就是统一语言中的那个真正共识统一的语言,没那么多高大上的东西,你用沟通共识过的业务词汇来建(命)模(名)了?

如何更好地做到这一点呢?始终保持审视自己,不行就让别人来审视你。我给大家提供一些坏味道列表,从形上:「域冗余」、「码尾禅」、「层错综」。当然更核心的神上的:「伪修饰」、「行外话」。

清扬猜到在场的学员可能不清楚这些词汇具体意味着什么,于是就自告奋勇要求被拉进学习群里,给大家分享了两篇文章:

如何做到简单呢?

结束了,袁帅走到清扬旁边,只见她在一张卡片上写心得:揭示意图要力求准备地表达业务概念,跟业务人员保持沟通,对业务术语达成共识,统一理解。

感知到袁帅站到跟前,清扬抬头朝他一笑,袁帅也早已准备好了大拇指,并示意清扬把手里的卡片递给他瞅瞅:
简单设计之揭示意图 - 图1

看到清扬随身带着之前探讨 简单设计 过程中的一些手卡笔记,明白她肯定是有什么问题要找他讨论。“走,边走边聊?”