創(chuàng)新驅(qū)動(dòng)設(shè)計(jì):?jiǎn)误w與微服務(wù)混合架構(gòu)策略與實(shí)踐
定 價(jià):115 元
- 作者:(美)Vaughn Vernon(沃恩·弗農(nóng)),(法)Tomasz Jaskula(托馬什·亞斯庫(kù)瓦)
- 出版時(shí)間:2024/3/1
- ISBN:9787121473517
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TP368.5
- 頁(yè)碼:288
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
選擇微服務(wù)還是單體,這似乎是一個(gè)無(wú)須討論的話題,這個(gè)年代還有單體的存身之地嗎?沃恩和托馬什對(duì)此的回答是,不僅有,而且許多組織適合使用單體架構(gòu)。兩位作者用一個(gè)貫穿全書(shū)的例子深入探討了面向戰(zhàn)略創(chuàng)新的架構(gòu)設(shè)計(jì)問(wèn)題。本書(shū)共12章,分4部分。第1部分從戰(zhàn)略高度介紹了架構(gòu)決策的重要性及其帶來(lái)的影響,以及幾種戰(zhàn)略學(xué)習(xí)工具和事件優(yōu)先建模。第2部分講述了推動(dòng)業(yè)務(wù)創(chuàng)新的幾種工具,并對(duì)DDD進(jìn)行了簡(jiǎn)單的介紹。第3部分具體談?wù)摿耸录䞍?yōu)先架構(gòu)和實(shí)現(xiàn)它的幾種方式。第4部分回答了微服務(wù)還是單體這個(gè)有爭(zhēng)議性的問(wèn)題,討論了單體和微服務(wù)之間的比較與權(quán)衡,還探討了如何將單體遷移到微服務(wù),并且為讀者可能采用的任何一種選擇都提供了合適的指南。本書(shū)適合需要進(jìn)行架構(gòu)決策的人閱讀,也適合想要精進(jìn)業(yè)務(wù)的架構(gòu)師和程序員閱讀。
沃恩·弗農(nóng)是一位企業(yè)家、軟件開(kāi)發(fā)者和架構(gòu)師,擁有超過(guò)35年的豐富跨領(lǐng)域業(yè)務(wù)經(jīng)驗(yàn)。沃恩是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、反應(yīng)式架構(gòu)與編程方面的頂尖專(zhuān)家,倡導(dǎo)簡(jiǎn)單性。他的工作坊學(xué)員一直對(duì)他所教授的廣度和深度以及獨(dú)特的教學(xué)方法給予高度評(píng)價(jià),許多人在參加他的一次工作坊后,就成為他的其他知名工作坊的長(zhǎng)期學(xué)員。沃恩提供有關(guān)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、反應(yīng)式軟件開(kāi)發(fā)以及事件風(fēng)暴和事件驅(qū)動(dòng)架構(gòu)的咨詢(xún)和培訓(xùn),幫助團(tuán)隊(duì)和組織發(fā)掘業(yè)務(wù)驅(qū)動(dòng)和反應(yīng)式系統(tǒng)的潛力。他的專(zhuān)業(yè)知識(shí)和經(jīng)驗(yàn)幫助許多企業(yè)從遺留的技術(shù)驅(qū)動(dòng)的實(shí)現(xiàn)方法過(guò)渡到業(yè)務(wù)驅(qū)動(dòng)的現(xiàn)代方法。沃恩是4本書(shū)的作者,包括你現(xiàn)在正在閱讀的這本。他的圖書(shū)和他的沃恩·弗農(nóng)系列圖書(shū)均由Addison-Wesley出版。托馬什·亞斯庫(kù)瓦是巴黎軟件咨詢(xún)公司Luteceo的CTO和聯(lián)合創(chuàng)始人。托馬什有超過(guò)20年的開(kāi)發(fā)者和軟件架構(gòu)師專(zhuān)業(yè)經(jīng)驗(yàn),曾在許多電子商務(wù)、工業(yè)、保險(xiǎn)和金融領(lǐng)域的公司工作過(guò)。他主要專(zhuān)注于創(chuàng)造真正產(chǎn)生業(yè)務(wù)價(jià)值、與戰(zhàn)略業(yè)務(wù)舉措保持一致、提供具有明確競(jìng)爭(zhēng)優(yōu)勢(shì)的軟件解決方案。托馬什也是.NET平臺(tái)開(kāi)源項(xiàng)目XOOM的主要貢獻(xiàn)者之一。在業(yè)余時(shí)間,托馬什會(huì)練習(xí)吉他演奏,并與家人共度時(shí)光。
婁麒麟,Thoughtworks專(zhuān)家級(jí)咨詢(xún)師,海外項(xiàng)目交付安全負(fù)責(zé)人,思特沃克技術(shù)雷達(dá)第28期中文主編。擅長(zhǎng)函數(shù)式編程、事件驅(qū)動(dòng)架構(gòu)、云原生設(shè)計(jì)、風(fēng)險(xiǎn)管理,以及DevSecOps。有著近10年的研發(fā)團(tuán)隊(duì)管理經(jīng)驗(yàn),曾主導(dǎo)某大型跨國(guó)銀行的微服務(wù)改造工程,和某頭部科技金融公司的遺留系統(tǒng)改造工程。近來(lái)在研究產(chǎn)品研發(fā)的全生命周期風(fēng)險(xiǎn)控制和AI賦能。馬建勛,Thoughtworks專(zhuān)家級(jí)咨詢(xún)師,IT從業(yè)10余年,曾領(lǐng)導(dǎo)和參與多家海內(nèi)外不同規(guī)模項(xiàng)目的研發(fā)和改造,涉及ERP、互聯(lián)網(wǎng)、銀行等領(lǐng)域。主要研究興趣在于敏捷開(kāi)發(fā),領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),軟件架構(gòu)演進(jìn)以及項(xiàng)目管理。姚琪琳,Thoughtworks專(zhuān)家級(jí)咨詢(xún)師,遺留系統(tǒng)現(xiàn)代化解決方案負(fù)責(zé)人,極客時(shí)間《遺留系統(tǒng)現(xiàn)代化實(shí)戰(zhàn)》專(zhuān)欄作者,技術(shù)書(shū)籍譯者,CAC認(rèn)證敏捷教練。擁有超過(guò)16年的軟件行業(yè)從業(yè)經(jīng)驗(yàn),對(duì)開(kāi)發(fā)、設(shè)計(jì)和架構(gòu)有著深入的理解。擅長(zhǎng)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、敏捷軟件開(kāi)發(fā)、整潔代碼和重構(gòu),并通過(guò)理論指導(dǎo)、實(shí)戰(zhàn)演練等方式為企業(yè)研發(fā)團(tuán)隊(duì)賦能。參與翻譯或?qū)徯6啾炯夹g(shù)書(shū)籍,包括《重構(gòu)到微服務(wù)》、《領(lǐng)域特定語(yǔ)言》、《.NET性能優(yōu)化》、《深入理解C#》等。張渝,Thoughtworks專(zhuān)家級(jí)咨詢(xún)師。曾領(lǐng)導(dǎo)和參與多個(gè)海內(nèi)外項(xiàng)目,涉及私有云,支付,視頻等多個(gè)領(lǐng)域。擅長(zhǎng)敏捷軟件開(kāi)發(fā),領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),云原生設(shè)計(jì),測(cè)試驅(qū)動(dòng)開(kāi)發(fā)以及重構(gòu)。
第1部分 通過(guò)實(shí)驗(yàn)學(xué)習(xí)轉(zhuǎn)型戰(zhàn)略
第1章 業(yè)務(wù)目標(biāo)和數(shù)字化轉(zhuǎn)型 5
數(shù)字化轉(zhuǎn)型的目標(biāo)是什么 6
軟件架構(gòu)概覽 8
為什么軟件項(xiàng)目會(huì)出問(wèn)題 9
債務(wù)隱喻 10
軟件熵 11
大泥球 11
案例研究 13
當(dāng)前的業(yè)務(wù)背景 14
商機(jī) 15
企業(yè)與康威定律 16
知識(shí)傳遞 17
知識(shí)不是實(shí)物 17
電話游戲 18
艱難的一致 19
但是一切皆有可能 20
(重新)思考軟件戰(zhàn)略 22
思考 22
反思 24
單體系統(tǒng)一定不好嗎 27
微服務(wù)一定好嗎 28
善待敏捷 30
擺脫困境 33
小結(jié) 34
第2章 基本戰(zhàn)略學(xué)習(xí)工具 35
決策的早晚和對(duì)錯(cuò) 36
文化和團(tuán)隊(duì) 39
失敗而不是死亡 40
失敗文化不是指責(zé)文化 41
康威定律的正確用法 43
啟用安全實(shí)驗(yàn) 46
模塊化優(yōu)先 47
部署放最后 50
介于兩者之間的一切 52
業(yè)務(wù)能力、業(yè)務(wù)流程和戰(zhàn)略目標(biāo) 52
針對(duì)性的戰(zhàn)略交付 56
利用Cynefin進(jìn)行決策 60
你的意大利面條在哪里,煮得有多快 63
戰(zhàn)略架構(gòu) 64
應(yīng)用工具 65
小結(jié) 67
第3章 事件優(yōu)先的實(shí)驗(yàn)和發(fā)現(xiàn) 68
命令與事件 69
使用軟件模型 71
利用事件風(fēng)暴快速學(xué)習(xí) 72
當(dāng)需要遠(yuǎn)程事件風(fēng)暴會(huì)議時(shí) 74
主持會(huì)議 75
宏觀建模 79
應(yīng)用工具 82
小結(jié) 88
第2部分 推動(dòng)業(yè)務(wù)創(chuàng)新
第4章 獲得領(lǐng)域驅(qū)動(dòng)的成果 94
領(lǐng)域和子域 96
小結(jié) 99
第5章 專(zhuān)業(yè)知識(shí)上下文 101
限界上下文和統(tǒng)一語(yǔ)言 101
核心子域 105
支撐子域、通用子域和技術(shù)機(jī)制 106
支撐子域 107
通用子域 107
技術(shù)機(jī)制 108
業(yè)務(wù)能力和上下文 108
別太大,也別太小 110
小結(jié) 112
第6章 映射的兩面:成功還是失敗 113
上下文映射圖 113
合作關(guān)系 115
共享內(nèi)核 117
客戶(hù)方-供應(yīng)方開(kāi)發(fā) 118
遵奉者 120
防腐層 122
開(kāi)放主機(jī)服務(wù) 123
發(fā)布語(yǔ)言 128
另謀他路 130
地形建模 130
失敗之道與成功之徑 133
應(yīng)用工具 136
小結(jié) 141
第7章 建模領(lǐng)域概念 142
實(shí)體 143
值對(duì)象 144
聚合 145
領(lǐng)域服務(wù) 146
函數(shù)式行為 147
應(yīng)用工具 149
小結(jié) 150
第3部分 事件優(yōu)先架構(gòu)
第8章 基礎(chǔ)架構(gòu) 155
架構(gòu)風(fēng)格、模式和決策 157
端口-適配器架構(gòu) 157
模塊化 163
REST請(qǐng)求-響應(yīng) 166
質(zhì)量屬性 168
安全性 168
隱私性 171
性能 173
可伸縮性 175
彈性:可靠性和容錯(cuò)性 175
復(fù)雜性 177
應(yīng)用工具 177
小結(jié) 178
第9章 消息驅(qū)動(dòng)和事件驅(qū)動(dòng)架構(gòu) 179
基于消息和事件的REST 183
事件日志 183
訂閱者輪詢(xún) 185
服務(wù)器發(fā)送事件 186
事件驅(qū)動(dòng)和流程管理 187
事件溯源 189
CQRS 193
無(wú)服務(wù)器架構(gòu)和功能即服務(wù) 195
應(yīng)用工具 197
小結(jié) 197
第4部分 兩條通向目標(biāo)架構(gòu)之路
第10章 構(gòu)造單體 203
歷史回顧 205
慎終于始 207
業(yè)務(wù)能力 208
架構(gòu)決策 210
是與非 215
隨變化而變化 217
解耦 220
堅(jiān)持正確的步伐 224
小結(jié) 225
第11章 從單體到微服務(wù) 227
做好心理建設(shè) 227
從模塊化單體到微服務(wù) 230
從大泥球單體到微服務(wù) 234
用戶(hù)交互 235
協(xié)調(diào)數(shù)據(jù)變化 237
決定絞殺什么 242
拔掉遺留單體 244
小結(jié) 245
第12章 平衡要求,管控需求 246
質(zhì)量屬性平衡 246
戰(zhàn)略和目標(biāo) 247
業(yè)務(wù)目標(biāo)呼喚數(shù)字化轉(zhuǎn)型 247
使用戰(zhàn)略學(xué)習(xí)工具 248
事件驅(qū)動(dòng)的輕量級(jí)建模 249
推動(dòng)業(yè)務(wù)創(chuàng)新 249
事件優(yōu)先架構(gòu) 250
單體架構(gòu)作為首要關(guān)注點(diǎn) 250
有針對(duì)性地將單體拆分為微服務(wù) 251
平衡是不偏不倚的,創(chuàng)新是必不可少的 252
小結(jié) 252