1.引言
在開始之前,我想我們有必要先了解以下DDD的主要參與者。因?yàn)楫吘拐Z言是人說的嗎,就像我們面向?qū)ο缶幊桃粯?,那通用語言面向的是?
DDD的主要參與者:領(lǐng)域?qū)<?開發(fā)人員
領(lǐng)域?qū)<遥壕I(yè)務(wù)的任何人。
開發(fā)人員:開發(fā)+測試。
領(lǐng)域?qū)<疑瞄L某個(gè)領(lǐng)域的知識,專注于交付的業(yè)務(wù)價(jià)值。
開發(fā)人員則注重于技術(shù)實(shí)現(xiàn)。
開發(fā)人員總是想著類、接口、方法、設(shè)計(jì)模式、架構(gòu)等。以面向?qū)ο蟮木幊趟枷脒M(jìn)行思考,思考如何進(jìn)行抽象、封裝、繼承、多態(tài)等。而領(lǐng)域?qū)<覍浖械目蚣堋⒊志没?shù)據(jù)庫等沒有概念,而這也就導(dǎo)致了他們之間交流的困難性。
那怎么解決交流障礙這個(gè)問題呢?
2. 通用語言
拋開DDD而言,單從字面意思來理解,我們首先肯定先聯(lián)想到作為世界使用最多的語言--英語。
英語之所以能成為通用語言,我想無非是以下幾方面:
簡單易學(xué)
使用率高
國際通用
那DDD中通用語言又是怎樣呢?
首先它也同樣要擁有【簡單】的特性,這樣才便于理解和傳播。
其次,它也要有【通用】、【使用率高】的特性,因?yàn)橹挥性谲浖_發(fā)的過程中,團(tuán)隊(duì)范圍內(nèi)所有的參與人員廣泛使用,才能準(zhǔn)確傳遞業(yè)務(wù)規(guī)則。
通用語言是團(tuán)隊(duì)交流的基礎(chǔ)上建立起來的,代碼則是基于通用語言來進(jìn)行業(yè)務(wù)表達(dá)的。
3. 舉個(gè)例子
項(xiàng)目經(jīng)理安排了一項(xiàng)任務(wù)給我:
圣杰這個(gè)補(bǔ)丁處理下【可銷控制】這個(gè)需求。
聽后,真是一臉懵逼,【可銷控制】是什么鬼?
這明顯是專業(yè)術(shù)語,我不懂的專業(yè)術(shù)語。
按照DDD對通用語言的定義,【可銷控制】就不算通用語言。
因?yàn)橹挥蓄I(lǐng)域?qū)<抑浪暮x,開發(fā)人員一臉茫然。
但通用語言是領(lǐng)域?qū)<液烷_發(fā)人員一起創(chuàng)建的,所以我們開個(gè)需求會議,來梳理下專業(yè)術(shù)語背后的含義。
可銷控制的應(yīng)用場景是:
在ERP中,在做單時(shí)對銷售員負(fù)責(zé)的客戶進(jìn)行范圍控制。比如,A客戶是銷售員小李發(fā)展過來的,小李希望僅能自己負(fù)責(zé)對A客戶的業(yè)務(wù)。
這么一解釋,是不是明白不少了。但是不是還有幾點(diǎn)疑惑?
可銷范圍如何配置?
做什么單據(jù)時(shí)進(jìn)行可銷范圍控制?
如何進(jìn)行可銷控制?
可銷控制需不需要參數(shù)控制?
經(jīng)過討論,得出以下結(jié)論:
提供專門的【銷售員-客戶可銷控制】界面進(jìn)行銷售員-客戶映射數(shù)據(jù)配置。
做銷售訂單單據(jù)時(shí)進(jìn)行可銷范圍控制
在錄入銷售員后,做單員在選擇客戶列表時(shí),客戶列表中僅顯示可銷范圍配置的客戶數(shù)據(jù)。
提供【銷售員-客戶可銷范圍控制】系統(tǒng)參數(shù),勾選后才進(jìn)行可銷范圍控制。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26