領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與模式實(shí)戰(zhàn)是一本將企業(yè)應(yīng)用架構(gòu)模式和領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)兩大名著精髓的實(shí)戰(zhàn)演練書籍,由瑞典程序員尼爾森(Jimmy Nilsson)編著。全書內(nèi)容豐富翔實(shí),將Martin Fowler企業(yè)應(yīng)用架構(gòu)模式和Eric Evans領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)兩部經(jīng)典名著中的思想精髓以及重構(gòu)、測試驅(qū)動(dòng)開發(fā)等技術(shù)融會(huì)貫通,并通過大量C#實(shí)例加以闡釋,跨越了領(lǐng)域模型、數(shù)據(jù)庫與UI層之間的障礙。真實(shí)展示了創(chuàng)建高質(zhì)量的企業(yè)級(jí)應(yīng)用架構(gòu)的全部過程,歡迎有需要的朋友免費(fèi)下載。
內(nèi)容介紹
《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與模式實(shí)戰(zhàn)》全面詳細(xì)地解釋了領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、測試驅(qū)動(dòng)開發(fā)、依賴注入、持久化、重構(gòu)、模式等很多基本概念,并以C#和。NET實(shí)例為依托,展示了這些概念的實(shí)際應(yīng)用和重要價(jià)值。更重要的是,本書還將這些概念整合到一起,為開發(fā)人員從頭至尾地揭示了完整的開發(fā)路線。閱讀本書后,讀者將能真正掌握這些重要概念,并有效地將它們結(jié)合起來,應(yīng)用到實(shí)際開發(fā)過程中,適合軟件架構(gòu)師和開發(fā)人員閱讀。
章節(jié)目錄
第一部分 背景知識(shí) 第1章 應(yīng)重視的價(jià)值,也是對(duì)過去幾年的沉重反思 1.1 總體價(jià)值 1.2 應(yīng)重視的架構(gòu)風(fēng)格 1.2.1 焦點(diǎn)之一:模型 1.2.2 焦點(diǎn)之二:用例 1.2.3 如果重視模型,就可以使用領(lǐng)域模型模式 1.2.4 慎重處理數(shù)據(jù)庫 1.2.5 領(lǐng)域模型與關(guān)系數(shù)據(jù)庫之間的阻抗失配 1.2.6 謹(jǐn)慎處理分布式 1.2.7 消息傳遞很重要 1.3 對(duì)過程的各個(gè)組成部分的評(píng)價(jià) 1.3.1 預(yù)先架構(gòu)設(shè)計(jì) 1.3.2 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 1.3.3 測試驅(qū)動(dòng)開發(fā) 1.3.4 重構(gòu) 1.3.5 選擇一種還是選擇組合 1.4 持續(xù)集成 1.4.1 解決方案(或至少是正確方向上的一大步) 1.4.2 從我的組織汲取的教訓(xùn) 1.4.3 更多信息 1.5 不要忘記運(yùn)行機(jī)制 1.5.1 有關(guān)何時(shí)需要運(yùn)行機(jī)制的一個(gè)例子 1.5.2 運(yùn)行機(jī)制的一些例子 1.5.3 它不僅僅是我們的過錯(cuò) 1.6 小結(jié) 第2章 模式起步 2.1 模式概述 2.1.1 為什么要學(xué)習(xí)模式 2.1.2 在模式方面要注意哪些事情 2.2 設(shè)計(jì)模式 2.3 架構(gòu)模式 2.3.1 示例:層 2.3.2 另一個(gè)示例:領(lǐng)域模型模式 2.4 針對(duì)具體應(yīng)用程序類型的設(shè)計(jì)模式 2.5 領(lǐng)域模式 2.6 小結(jié) 第3章 TDD與重構(gòu) 3.1 TDD 3.1.1 TDD流程 3.1.2 演示 3.1.3 設(shè)計(jì)效果 3.1.4 問題 3.1.5 下一個(gè)階段 3.2 模擬和樁 3.2.1 典型單元測試 3.2.2 聲明獨(dú)立性 3.2.3 處理困難因素 3.2.4 用測試樁替換協(xié)作對(duì)象 3.2.5 用模擬對(duì)象替換協(xié)作對(duì)象 3.2.6 設(shè)計(jì)含義 3.2.7 結(jié)論 3.2.8 更多信息 3.3 重構(gòu) 3.4 小結(jié) 第二部分 應(yīng)用DDD 第4章 新的默認(rèn)架構(gòu) 4.1 新的默認(rèn)架構(gòu)的基礎(chǔ)知識(shí) 4.1.1 從以數(shù)據(jù)庫為中心過渡到以領(lǐng)域模型為中心 4.1.2 進(jìn)一步關(guān)注DDD 4.1.3 根據(jù)DDD進(jìn)行分層 4.2 輪廓 4.2.1 領(lǐng)域模型示例的問題/特性 4.2.2 逐個(gè)處理特性 4.2.3 到目前為止的領(lǐng)域模型 4.3 初次嘗試將UI與領(lǐng)域模型掛接 4.3.1 基本目標(biāo) 4.3.2 簡單UI的當(dāng)前焦點(diǎn) 4.3.3 為客戶列出訂單 4.3.4 添加訂單 4.3.5 剛才我們看到了什么 4.4 另一個(gè)維度 4.4.1 領(lǐng)域模型的位置 4.4.2 孤立或共享的實(shí)例 4.4.3 有狀態(tài)或無狀態(tài)領(lǐng)域模型實(shí)例化 4.4.4 領(lǐng)域模型的完整實(shí)例化或子集實(shí)例化 4.5 小結(jié) 第5章 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)進(jìn)階 5.1 通過簡單的TDD實(shí)驗(yàn)來精化領(lǐng)域模型 5.1.1 從Order和OrderFactory的創(chuàng)建開始 5.1.2 一些領(lǐng)域邏輯 5.1.3 第二個(gè)任務(wù):OrderRepository+OrderNumber 5.1.4 重建持久化的實(shí)體:如何從外部設(shè)置值 5.1.5 獲取訂單列表 5.1.6 該到討論實(shí)體的時(shí)候了 5.1.7 再次回到流程上來 5.1.8 總覽圖 5.1.9 建立OrderRepository的偽實(shí)現(xiàn) 5.1.10 簡單討論一下保存 5.1.11 每個(gè)訂單的總量 5.1.12 歷史客戶信息 5.1.13 實(shí)例的生命周期 5.1.14 訂單類型 5.1.15 訂單的介紹人 5.2 連貫接口 5.3 小結(jié) 第6章 準(zhǔn)備基礎(chǔ)架構(gòu) 6.1 將POCO作為工作方式 6.1.1 實(shí)體和值對(duì)象的PI 6.1.2 是否使用PI 6.1.3 運(yùn)行時(shí)與編譯時(shí)PI 6.1.4 PI實(shí)體/值對(duì)象的代價(jià) 6.1.5 將PI用于存儲(chǔ)庫 6.1.6 單組存儲(chǔ)庫的代價(jià) 6.2 對(duì)保存場景的處理 6.3 建立偽版本機(jī)制 6.3.1 偽版本機(jī)制的更多特性 6.3.2 偽版本的實(shí)現(xiàn) 6.3.3 影響單元測試 6.4 數(shù)據(jù)庫測試 6.4.1 在每次測試之前重置數(shù)據(jù)庫 6.4.2 在測試運(yùn)行期間保持?jǐn)?shù)據(jù)庫的狀態(tài) 6.4.3 測試之前重置測試所使用的數(shù)據(jù) 6.4.4 不要忘記不斷演變的模式 6.4.5 分離單元測試和數(shù)據(jù)庫調(diào)用測試 6.5 查詢 6.5.1 單組查詢對(duì)象 6.5.2 單組查詢對(duì)象的代價(jià) 6.5.3 將查詢定位到哪里 6.5.4 再次將聚合作為工具 6.5.5 將規(guī)格用于查詢 6.5.6 其他查詢選擇 6.6 小結(jié) 第7章 應(yīng)用規(guī)則 7.1 規(guī)則的分類 7.2 規(guī)則的原則及用法 7.2.1 雙向規(guī)則檢查:可選的(可能的)主動(dòng)檢查,必需的(和自動(dòng)的)被動(dòng)檢查 7.2.2 所有狀態(tài)(即使是錯(cuò)誤狀態(tài))都應(yīng)該是可保存的 7.2.3 規(guī)則應(yīng)該高效使用 7.2.4 規(guī)則應(yīng)該是可配置的,以便添加自定義規(guī)則 7.2.5 規(guī)則應(yīng)與狀態(tài)放在一起 7.2.6 規(guī)則應(yīng)該具有很高的可測試性 7.2.7 系統(tǒng)應(yīng)阻止我們進(jìn)入錯(cuò)的狀態(tài) 7.3 開始創(chuàng)建API 7.3.1 上下文,上下文,還是上下文 7.3.2 數(shù)據(jù)庫約束 7.3.3 將規(guī)則綁定到與領(lǐng)域有關(guān)的轉(zhuǎn)換,還是綁定到與基礎(chǔ)架構(gòu)有關(guān)的轉(zhuǎn)換 7.3.4 精化原則:所有狀態(tài),即使是錯(cuò)誤狀態(tài),都應(yīng)該是可保存的 7.4 與持久化有關(guān)的基本的規(guī)則API的需求 7.4.1 回到已發(fā)現(xiàn)的API問題上 7.4.2 問題是什么 7.4.3 我們?cè)试S了不正確的轉(zhuǎn)換 7.4.4 如果忘記檢查怎么辦 7.5 關(guān)注與領(lǐng)域有關(guān)的規(guī)則 7.5.1 需要合作的規(guī)則 7.5.2 使用基于集合的處理方法 7.5.3 基于服務(wù)的驗(yàn)證 7.5.4 在不應(yīng)該轉(zhuǎn)換時(shí)嘗試轉(zhuǎn)換 7.5.5 業(yè)務(wù)ID 7.5.6 避免問題 7.5.7 再次將聚合作為工具 7.6 擴(kuò)展API 7.6.1 查詢用于設(shè)置UI的規(guī)則 7.6.2 使注入規(guī)則成為可能 7.7 對(duì)實(shí)現(xiàn)進(jìn)行精化 7.7.1 一個(gè)初步實(shí)現(xiàn) 7.7.2 創(chuàng)建規(guī)則類,離開最不成熟的階段 7.7.3 設(shè)置規(guī)則列表 7.7.4 使用規(guī)則列表 7.7.5 處理子列表 7.7.6 一個(gè)API改進(jìn) 7.7.7 自定義 7.7.8 為使用者提供元數(shù)據(jù) 7.7.9 是否適合用模式來解決此問題 7.7.10 復(fù)雜規(guī)則又是什么情況 7.8 綁定到持久化抽象 7.8.1 使驗(yàn)證接口成為可插入的 7.8.2 在保存方面實(shí)現(xiàn)被動(dòng)驗(yàn)證的替代解決方案 7.8.3 重用映射元數(shù)據(jù) 7.9 使用泛型和匿名方法 7.10 其他人都做了什么 7.11 小結(jié) 第三部分 應(yīng)用PoEAA 第8章 用于持久化的基礎(chǔ)架構(gòu) 8.1 持久化基礎(chǔ)架構(gòu)的需求 8.2 將數(shù)據(jù)存儲(chǔ)到哪里 8.2.1 RAM 8.2.2 文件系統(tǒng) 8.2.3 對(duì)象數(shù)據(jù)庫 8.2.4 關(guān)系數(shù)據(jù)庫 8.2.5 使用一個(gè)還是多個(gè)資源管理器 8.2.6 其他因素 8.2.7 選擇和前進(jìn) 8.3 方法 8.3.1 自定義手工編碼 8.3.2 自定義代碼的代碼生成 8.3.3 元數(shù)據(jù)映射(對(duì)象關(guān)系(O/R)映射工具) 8.3.4 再次選擇 8.4 分類 8.4.1 領(lǐng)域模型風(fēng)格 8.4.2 映射工具風(fēng)格 8.4.3 起點(diǎn) 8.4.4 API焦點(diǎn) 8.4.5 查詢風(fēng)格 8.4.6 高級(jí)數(shù)據(jù)庫支持 8.4.7 其他功能 8.5 另一個(gè)分類:基礎(chǔ)架構(gòu)模式 8.5.1 元數(shù)據(jù)映射:元數(shù)據(jù)的類型 8.5.2 標(biāo)識(shí)字段 8.5.3 外鍵映射 8.5.4 嵌入值 8.5.5 繼承解決方案 8.5.6 標(biāo)識(shí)映射 8.5.7 操作單元 8.5.8 延遲加載/立即加載 8.5.9 并發(fā)控制 8.6 小結(jié) 第9章 應(yīng)用NHibernate 9.1 為什么使用NHibernate 9.2 NHibernate簡介 9.2.1 準(zhǔn)備 9.2.2 一些映射元數(shù)據(jù) 9.2.3 一個(gè)小的API示例 9.2.4 事務(wù) 9.3 持久化基礎(chǔ)架構(gòu)的需求 9.3.1 高級(jí)持久化透明 9.3.2 持久化實(shí)體的生命周期所需的特定特性 9.3.3 謹(jǐn)慎處理關(guān)系數(shù)據(jù)庫 9.4 分類 9.4.1 領(lǐng)域模型風(fēng)格 9.4.2 映射工具風(fēng)格 9.4.3 起點(diǎn) 9.4.4 API焦點(diǎn) 9.4.5 查詢語言風(fēng)格 9.4.6 高級(jí)數(shù)據(jù)庫支持 9.4.7 其他功能 9.5 另一種分類:基礎(chǔ)架構(gòu)模式 9.5.1 元數(shù)據(jù)映射:元數(shù)據(jù)類型 9.5.2 標(biāo)識(shí)字段 9.5.3 外鍵映射 9.5.4 嵌入值 9.5.5 繼承解決方案 9.5.6 標(biāo)識(shí)映射 9.5.7 操作單元 9.5.8 延遲加載/立即加載 9.5.9 并發(fā)性控制 9.5.10 額外功能:驗(yàn)證掛鉤 9.6 NHibernate和DDD 9.6.1 程序集概覽 9.6.2 ISession和存儲(chǔ)庫 9.6.3 ISession、存儲(chǔ)庫和事務(wù) 9.6.4 得到了什么結(jié)果 9.7 小結(jié) 第四部分 下一步驟 第10章 博采其他設(shè)計(jì)技術(shù) 10.1 上下文為王 10.1.1 層和分區(qū) 10.1.2 分區(qū)的原因 10.1.3 限界上下文 10.1.4 限界上下文與分區(qū)有何關(guān)聯(lián) 10.1.5 向上擴(kuò)展DDD項(xiàng)目 10.1.6 為什么對(duì)領(lǐng)域模型——SO分區(qū) 10.2 SOA簡介 10.2.1 什么是SOA 10.2.2 為什么需要SOA 10.2.3 SOA有什么不同 10.2.4 什么是服務(wù) 10.2.5 服務(wù)中包括什么 10.2.6 深入分析4條原則 10.2.7 再來看一下什么是服務(wù) 10.2.8 OO在SOA中的定位 10.2.9 客戶-服務(wù)器和SOA 10.2.10 單向異步消息傳遞 10.2.11 SOA如何提高可伸縮性 10.2.12 SOA服務(wù)的設(shè)計(jì) 10.2.13 服務(wù)之間如何交互 10.2.14 SOA和不可用的服務(wù) 10.2.15 復(fù)雜的消息傳遞處理 10.2.16 服務(wù)的可伸縮性 10.2.17 小結(jié) 10.3 控制反轉(zhuǎn)和依賴注入 10.3.1 任何對(duì)象都不是孤島 10.3.2 工廠、注冊(cè)類和服務(wù)定位器 10.3.3 構(gòu)造方法依賴注入 10.3.4 setter依賴注入 10.3.5 控制反轉(zhuǎn) 10.3.6 使用了Spring.NET框架的依賴注入 10.3.7 利用PicoContainer.NET進(jìn)行自動(dòng)裝配 10.3.8 嵌套容器 10.3.9 服務(wù)定位器與依賴注入的比較 10.3.10 小結(jié) 10.4 面向方面編程 10.4.1 熱門話題有哪些 10.4.2 AOP術(shù)語定義 10.4.3 .NET中的AOP 10.4.4 小結(jié) 10.5 小結(jié) 第11章 關(guān)注UI 11.1 提前結(jié)語 11.2 模型-視圖-控制器模式 11.2.1 示例:Joe的Shoe Shop程序 11.2.2 通過適配器簡化視圖界面 11.2.3 將控制器從視圖解耦 11.2.4 將視圖和控制器結(jié)合起來 11.2.5 是否值得使用MVC 11.3 測試驅(qū)動(dòng)的Web窗體 11.3.1 背景 11.3.2 一個(gè)示例 11.3.3 領(lǐng)域模型 11.3.4 GUI的TDD 11.3.5 Web窗體實(shí)現(xiàn) 11.3.6 小結(jié) 11.3.7 用NMock創(chuàng)建模擬 11.4 映射和包裝 11.4.1 映射和包裝 11.4.2 用表示模型來包裝領(lǐng)域模型 11.4.3 將表示模型映射到領(lǐng)域模型 11.4.4 管理關(guān)系 11.4.5 狀態(tài)問題 11.4.6 最后的想法 11.5 小結(jié) 11.6 結(jié)束語 第五部分 附錄 附錄A 其他領(lǐng)域模型風(fēng)格 附錄B 已討論的模式的目錄
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請(qǐng)務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進(jìn)行閱讀
- 下載地址
- 本地下載通道:
- 浙江電信下載
- 北京聯(lián)通下載
- 江蘇電信下載
- 廣東電信下載
有問題? 點(diǎn)此報(bào)錯(cuò)
發(fā)表評(píng)論
1人參與,1條評(píng)論- 第1樓河北省廊坊市電信網(wǎng)友發(fā)表于: 2020-02-15 09:52:53
- 很需要0蓋樓(回復(fù))
軟件排行榜
熱門推薦
- 得間免費(fèi)小說電腦版 v5.3.0.372.58M / 簡體中文
- 有柿電腦版 v11.6.284.23M / 簡體中文
- 網(wǎng)易新聞電腦版 v113.197.68M / 簡體中文
- 開源閱讀電腦版 v3.2517.96M / 簡體中文
- 京東讀書電腦版 v1.13.4官方版1.98M / 簡體中文
- 數(shù)據(jù)挖掘?qū)д?官方版61.61M / 簡體中文
- 吉利博瑞用戶手冊(cè) pdf高清版57.89M / 簡體中文
- 未公開的Oracle數(shù)據(jù)庫秘密 迪貝斯pdf掃描版34.69M / 簡體中文
- PHP語言精粹電子書 pdf掃描版25.72M / 簡體中文
- 本草綱目 5.34M / 簡體中文