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