摘要: “叫我看看……”小P開始比較代碼,“哦,在這個版本你用 game 代替了 queue,用 child 代替了 one, 但是有什么實質區別?”小P有些不解。
“嗯,這個是一個用問題域詞匯編程而不是解決域詞匯編程的例子,最大的優點是意圖明確,容易理解,代碼可讀性強;另外一個好處是相對穩定——比如用 game 代替 queue——其一,評審代碼的人可能會不明白這個queue是做什么的,為什么和下面的初始化函數格格不入,從而造成你頻繁的回答大量的溝通性的問題,這將大大影響你生活的穩定性和質量;其二,如果我們將來——我是說如果——使用list數據結構來替換queue,避免了還要更改注釋的風險——代碼更新而注釋陳舊,正是我們在進行項目開發時一個特別特別特別的n次冪嚴重的問題……而使用問題域的詞匯,只要需求不發生變更,則我們就不需要修改什么而導致一些……代碼人格上的分裂……”
閱讀全文