欧美囗交xx×bbb视频_特黄a级毛片_性生活三级_久久久久久国产精品mv

Repository 倉(cāng)儲(chǔ)
技術(shù)論壇

  Repository 倉(cāng)儲(chǔ)你可以結(jié)合測(cè)試驅(qū)動(dòng)開(kāi)發(fā)就知道沒(méi)什么了,DDDTDD,其實(shí)領(lǐng)域模型最好的業(yè)務(wù)體現(xiàn)是在哪?不是在領(lǐng)域模型,而是領(lǐng)域模型的單元測(cè)試,它是很好的描述這個(gè)業(yè)務(wù)用例,如果你的領(lǐng)域模型的單元測(cè)試出了問(wèn)題,那就是領(lǐng)域模型出了問(wèn)題,其實(shí)兄臺(tái)可以試著寫下你這個(gè)業(yè)務(wù)場(chǎng)景下的領(lǐng)域模型的單元測(cè)試,也就是一個(gè)業(yè)務(wù)用例的單元測(cè)試,看看會(huì)發(fā)生什么?還有就是應(yīng)用層的偽代碼。反之,電視行業(yè)的關(guān)鍵轉(zhuǎn)折,倒是上層,如控制器這里不應(yīng)該用倉(cāng)儲(chǔ)。”其實(shí)原本大家的焦點(diǎn)不應(yīng)該放在倉(cāng)儲(chǔ)上面的,而應(yīng)該放在領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的核心領(lǐng)域模型上,為此我還曾寫了幾篇關(guān)于領(lǐng)域模型設(shè)計(jì)的博文,但是一個(gè)完整的應(yīng)用程序不只是包含領(lǐng)域模型,還有其他的東西需要進(jìn)行探討,雖然它不像領(lǐng)域模型那么重要,但同樣必不可少以下內(nèi)容只是個(gè)人對(duì)倉(cāng)儲(chǔ)概念及其問(wèn)題進(jìn)行探討,并非是結(jié)論總結(jié),僅供各位仁兄參考《實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》這本書(shū),我在之前覺(jué)得沒(méi)必要閱讀,因?yàn)楫?dāng)時(shí)認(rèn)為學(xué)習(xí)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),只要精讀下 Eric Evans 的經(jīng)典著作《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)軟件核心復(fù)雜性應(yīng)對(duì)之道》就可以了,但是DDD是需要進(jìn)行實(shí)踐的,Eric Evans 只是提出領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)這個(gè)概念,有關(guān)于其實(shí)現(xiàn),書(shū)中并沒(méi)有花很大的精力去講解,而《實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》這本書(shū)正是彌補(bǔ)了這一點(diǎn)這兩本書(shū)的閱讀順序,當(dāng)然是先閱讀《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》,然后再閱讀《實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》,如果你是第一次讀第一本書(shū),它會(huì)顛覆你對(duì)軟件設(shè)計(jì)的一些看法,然后讓你不能自拔的“愛(ài)上它”,不知道你有沒(méi)有,反正我是這樣,然后你在做一些應(yīng)用程序設(shè)計(jì)的時(shí)候,會(huì)嘗試使用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),雖然有些步履蹣跚,城市宣傳片—“北京旅游宣企業(yè)宣傳片制作-北京旅游宣傳片2013,但是走出第一步是很重要的。關(guān)于閱讀第二本書(shū),我的建議是,在閱讀之前,先根據(jù)第一本書(shū)中的指導(dǎo),自己嘗試去實(shí)踐領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),最好是做一些實(shí)際業(yè)務(wù)場(chǎng)景的應(yīng)用,在這個(gè)過(guò)程中,完全按照自己對(duì)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的想法去實(shí)現(xiàn),雖然可能會(huì)掉進(jìn)一些深坑,但是我覺(jué)得只有這樣你才會(huì)理解的更加深刻也可以像 dudu 這樣進(jìn)行直白的理解:Repository 是一個(gè)獨(dú)立的層,介于領(lǐng)域?qū)优c數(shù)據(jù)映射層(數(shù)據(jù)訪問(wèn)層)之間。它的存在讓領(lǐng)域?qū)痈杏X(jué)不到數(shù)據(jù)訪問(wèn)層的存在,它提供一個(gè)類似集合的接口提供給領(lǐng)域?qū)舆M(jìn)行領(lǐng)域?qū)ο蟮脑L問(wèn)。Repository 是倉(cāng)庫(kù)管理員,領(lǐng)域?qū)有枰裁礀|西只需告訴倉(cāng)庫(kù)管理員,由倉(cāng)庫(kù)管理員把東西拿給它,并不需要知道東西實(shí)際放在哪。除了這兩個(gè)關(guān)鍵詞,還有一個(gè)動(dòng)詞就是協(xié)調(diào),倉(cāng)儲(chǔ)協(xié)調(diào)的是什么?怎么協(xié)調(diào)的?這個(gè)概念需要明確下,橋的一頭領(lǐng)域模型(主要是實(shí)體對(duì)象),這個(gè)就不多說(shuō)了,橋的另一頭ORM(對(duì)象關(guān)系映射),因?yàn)槲覀兇蟛糠智闆r下使用的是關(guān)系型數(shù)據(jù)庫(kù),如何對(duì)數(shù)據(jù)進(jìn)行管理?當(dāng)然 DAO 是一種(這邊先不多說(shuō)),一部滿是套路的漫威宇宙電影,還有就是使用 ORM,它可以讓你很方便的進(jìn)行數(shù)據(jù)和對(duì)象映射轉(zhuǎn)換,如果你的項(xiàng)目是基于事務(wù)腳本模式設(shè)計(jì)的,那就沒(méi)必要使用 ORM 工具了,因?yàn)槭褂煤?jiǎn)單的 SQL 更合適,說(shuō)了這么多,好像都沒(méi)說(shuō)到重點(diǎn),其實(shí)倉(cāng)儲(chǔ)協(xié)調(diào)的是 ORM 中的“O”,也就是對(duì)象的概念,它是在數(shù)據(jù)映射層之上的,是一種概念,而不是一種實(shí)現(xiàn),這個(gè)概念很重要有時(shí)候,倉(cāng)儲(chǔ)和數(shù)據(jù)訪問(wèn)對(duì)象會(huì)當(dāng)作同義詞來(lái)看待,因?yàn)樗麄兌继峁┝藢?duì)持久化機(jī)制的抽象,在 DAO 中比較好理解,倉(cāng)儲(chǔ)中的持久化機(jī)制主要體現(xiàn)在 ORM 中,但是這并不屬于倉(cāng)儲(chǔ),影視視頻制作更不屬于 DAO,所以有時(shí)候我們認(rèn)為所有的持久化抽象稱為 DAO,并不是很準(zhǔn)確,我們需要確定的是這種模式是否得到了真正的實(shí)現(xiàn)倉(cāng)儲(chǔ)和 DAO 是不同的,一個(gè) DAO 主要從數(shù)據(jù)庫(kù)表的角度來(lái)看待問(wèn)題,并且提供 CRUD 操作,這種模式適用于事務(wù)腳本程序中,這是因?yàn)椋@些與 DAO 相關(guān)的模式通常只是對(duì)數(shù)據(jù)庫(kù)表的一層封裝。而另一方面,倉(cāng)儲(chǔ)和數(shù)據(jù)影射器(ORM)則更加偏向于對(duì)象,因此通常被用于領(lǐng)域模型中有關(guān)倉(cāng)儲(chǔ)和數(shù)據(jù)訪問(wèn)對(duì)象的探討,最后的結(jié)論是,通常來(lái)說(shuō),你可以將倉(cāng)儲(chǔ)當(dāng)作 DAO 來(lái)看待,但是請(qǐng)注意一點(diǎn),在設(shè)計(jì)倉(cāng)儲(chǔ)時(shí),我們應(yīng)該采用面向集合的方式,影視視頻制作而不是面向數(shù)據(jù)訪問(wèn)的方式。這有助于你將自己的領(lǐng)域當(dāng)作模型來(lái)看待,而不是 CRUD 操作有人可能會(huì)依賴于ORM所提供的生命周期事件來(lái)完成對(duì)象的級(jí)聯(lián)刪除。我刻意地沒(méi)有使用這種方式,因?yàn)槲覐?qiáng)烈反對(duì)由聚合來(lái)管理持久化,同時(shí)我強(qiáng)烈地提倡只使用資源庫(kù)來(lái)處理持久化。當(dāng)然,有關(guān)這兩者的爭(zhēng)論非常激烈,并且還在繼續(xù)。因此,在選擇時(shí),你需要多方權(quán)衡。但是請(qǐng)記住,DDD專家是不會(huì)首先考慮使用聚合來(lái)管理持久化的根據(jù)我的猜測(cè),大概是這樣的意思,主要是倉(cāng)儲(chǔ)的持久化管理,一種是使用 ORM 攻擊所提供的持久化機(jī)制,公司宣傳片拍攝這種方式就使得倉(cāng)儲(chǔ)依賴于這些技術(shù)的實(shí)現(xiàn),但是可以為我們?cè)趯?shí)現(xiàn)倉(cāng)儲(chǔ)的時(shí)候省去很多事,比如我們使用 EntityFramework,你會(huì)發(fā)現(xiàn)我們?cè)趯?shí)現(xiàn)倉(cāng)儲(chǔ)的時(shí)候,變得異常簡(jiǎn)單9,count() or size()? 我們有時(shí)候計(jì)算聚合實(shí)例的總數(shù),一般會(huì)將實(shí)現(xiàn)方法命名為 count(),但是因?yàn)閭}(cāng)儲(chǔ)應(yīng)該盡可能的模擬一個(gè)集合,因此建議接口定義如下:命名規(guī)則是我們?cè)谲浖_(kāi)發(fā)過(guò)程中,最容易忽略的一點(diǎn),可能在一般的開(kāi)發(fā)過(guò)程中不注意會(huì)沒(méi)事,但是在領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中,就像之前所表述的那樣,代碼代表著一種語(yǔ)言,不光是自己能看懂,還要讓需求人員可以看懂,至少可以從名字上知道其代表的意思,這一點(diǎn)很重要10,聚合根下的子聚合正確方式有時(shí),如果我們要獲取聚合根下的某些子聚合,夜景攝像的幾點(diǎn)提示,我們不用先從資源庫(kù)中獲取到聚合根,然后再?gòu)木酆细蝎@取這些子聚合,而是可以直接從資源庫(kù)中返回。在有些情況下,這種做法是有好處的。比如,某個(gè)聚合根擁有一個(gè)很大的實(shí)體類型集合,而你需要根據(jù)某種查詢條件返回該集合中的一部分實(shí)體。當(dāng)然,只有在聚合根中提供了對(duì)該實(shí)體集合的導(dǎo)航時(shí),我們才能這么做,否則,我們便違背了聚合的設(shè)計(jì)原則。我建議不要因?yàn)榭蛻舳说姆奖愣峁┻@種訪問(wèn)方式。更多的時(shí)候,采用這種方式是由于性能上的考慮,比如從聚合根中訪問(wèn)子聚合將帶來(lái)性能瓶頸的時(shí)候。此時(shí)的查找方法和其他查找方法具有相同的基本特征,只是它直接返回聚合根下的子聚合,而不是聚合根本身。無(wú)論如何,請(qǐng)慎重使用這種方式。除了這個(gè)問(wèn)題之外,還有一個(gè)就是倉(cāng)儲(chǔ)執(zhí)行完查詢后,有時(shí)候會(huì)返回多個(gè)聚合的查詢結(jié)果對(duì)象,這個(gè)我們一般會(huì)將查詢結(jié)果放在一個(gè)值對(duì)象中11,CQRS 模式引入對(duì)于 CQRS 模式,我沒(méi)有深入研究過(guò),更沒(méi)有實(shí)踐應(yīng)用過(guò),我的想法是先去把經(jīng)典DDD理解透,然后再去嘗試其他東西,畢竟路要一步一步走,CQRS 模式是對(duì) DDD 的一種很好補(bǔ)充,也就是說(shuō)它的產(chǎn)生是有一定的理由的,對(duì)于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)初學(xué)者,我個(gè)人不建議,一開(kāi)始就使用 CQRS 模式當(dāng)我們使用用例優(yōu)化查詢時(shí),有時(shí)候我們必須創(chuàng)建多個(gè)查詢方法,什么意思?就是跨聚合查詢,這可能意味著你的聚合邊界劃分的有問(wèn)題,如果你確定你的聚合邊界劃分沒(méi)有問(wèn)題,那你應(yīng)該考慮使用 CQRS 模式了,它的應(yīng)用場(chǎng)景就是這樣,凡事都有產(chǎn)生的原因,如果你的應(yīng)用程序沒(méi)有很復(fù)雜的查詢操作,我個(gè)人覺(jué)得,完全沒(méi)必要使用 CQRS 模式,有時(shí)候不要為了實(shí)現(xiàn)而實(shí)現(xiàn)。

公司宣傳片拍攝-版權(quán)信息
公司宣傳片拍攝-
虛擬演播室拍攝 三維動(dòng)畫(huà)制作 MG動(dòng)畫(huà)制作 影視視頻制作 企業(yè)宣傳片制作 公司宣傳片拍攝 天源文化傳播有限公司公司地址:天津市西青區(qū)王頂?shù)躺藤Q(mào)城58眾創(chuàng) 本站視頻作品采用知識(shí)共享署名非商業(yè)性使用津ICP備14005706號(hào)-1

友情鏈接: 企業(yè)廣告片拍攝 活動(dòng)策劃 企業(yè)宣傳片制作 年會(huì)活動(dòng)策劃 廣告片拍攝制作 動(dòng)畫(huà)制作 多媒體企業(yè)展廳 影視視頻拍攝制作 廣告策劃公司 MV拍攝制作 企業(yè)宣傳片制作 天津活動(dòng)策劃 設(shè)計(jì)制作公司 虛擬演播室 短視頻運(yùn)營(yíng) 動(dòng)畫(huà)制作公司 廣告片制作公司 活動(dòng)拍攝 VR拍攝