????????一個應(yīng)用要解決的問題域可以被劃分成相對獨立的幾個子域冠息,投資在這些子域上的份額不應(yīng)該是平等的吼驶。所以我們應(yīng)該區(qū)分這些子域為不同的類別炼鞠,以實施合適的投資策略戈擒。
? ? ? ? 有三種子域的類別捂敌。分別是核心艾扮、支撐和通用。
? ? ? ? 決定產(chǎn)品獨特競爭力的子域就是核心子域占婉。它是產(chǎn)品之所以被創(chuàng)建和存在的首要原因泡嘴。有些子域的價值是一種也存在于其他產(chǎn)品和競爭者的產(chǎn)品中的通用功能,不具有個性化的訴求逆济,這種子域就是通用子域酌予。還有一種子域提供的功能不是通用的,但又是必須的奖慌,但又不是產(chǎn)品的核心競爭力抛虫,這就是支撐子域。
? ? ? ? 換句話說简僧,產(chǎn)品獨特的競爭力是核心建椰,剩下的對核心域起支撐左右,其中因其通用性而可以外購的就是通用子域岛马。通用子域應(yīng)該被外購棉姐,核心子域應(yīng)該被重點投資和看護,次要的投資放在支撐子域上啦逆。這些投資看護包括保持代碼保持良好的設(shè)計伞矩,綁定代碼與業(yè)務(wù)領(lǐng)域。建立領(lǐng)域清晰的邊界夏志,通過防腐層隔離領(lǐng)域間代碼的依賴扭吁。
? ? ????對于核心子域,在產(chǎn)品初期盲镶,還沒有經(jīng)市場驗證之前,代碼質(zhì)量不需要那么完美蝌诡。但是一旦產(chǎn)品被市場證明溉贿,就應(yīng)該重構(gòu)。
? ? ? ? 對于支撐子域浦旱,重用不是技術(shù)的方向宇色,而可替換才是。?
? ? ? ? 不是所有的應(yīng)用都有核心子域,此時DDD的戰(zhàn)略模式仍然很有價值宣蠕,但是戰(zhàn)術(shù)模式就未必了例隆。?