摘要: “叫我看看……”小P开始比较代码,“哦,在这个版本你用 game 代替了 queue,用 child 代替了 one, 但是有什么实质区别?”小P有些不解。
“嗯,这个是一个用问题域词汇编程而不是解决域词汇编程的例子,最大的优点是意图明确,容易理解,代码可读性强;另外一个好处是相对稳定——比如用 game 代替 queue——其一,评审代码的人可能会不明白这个queue是做什么的,为什么和下面的初始化函数格格不入,从而造成你频繁的回答大量的沟通性的问题,这将大大影响你生活的稳定性和质量;其二,如果我们将来——我是说如果——使用list数据结构来替换queue,避免了还要更改注释的风险——代码更新而注释陈旧,正是我们在进行项目开发时一个特别特别特别的n次幂严重的问题……而使用问题域的词汇,只要需求不发生变更,则我们就不需要修改什么而导致一些……代码人格上的分裂……”
阅读全文