91精品国产综合久久四虎久久_国产成人午夜高潮毛片_99er视频精品免费观看_2020亚洲熟女在线观看_日本女优人体写真_国内黄色毛片_年轻的老师中文版在线_丰满女邻居做爰_久久久久久精品成人免费图片

 
Python設(shè)計模式
Python設(shè)計模式
Harry J.W. Percival, Bob Gregory
柴一平, 徐海洋 譯
出版時間:2025年03月
頁數(shù):304
“這是社區(qū)一直在等待的書:Python中現(xiàn)代應(yīng)用程序架構(gòu)的轉(zhuǎn)變是什么樣子的!Harry和Bob展示了在一個優(yōu)雅、動態(tài)的語言中依賴倒置原則的美感?!?br /> ——Brandon Rhodes
Python-patterns.guide作者
“到目前為止,幾乎沒有任何關(guān)于如何在Python中編寫可維護(hù)的大規(guī)模系統(tǒng)的Python原生材料。這本書展示了Python完全勝任嚴(yán)肅的軟件開發(fā)?!?br /> ——Hynek Schlawack
Pythonista、博客作者和演講者
隨著Python的受歡迎程度不斷增加,項目也變得越來越大且復(fù)雜。許多Python開發(fā)人員對高層次的軟件設(shè)計模式感興趣,例如六邊形/整潔架構(gòu)、事件驅(qū)動架構(gòu)和領(lǐng)域驅(qū)動設(shè)計(DDD)推薦的戰(zhàn)略模式。但是,將這些模式應(yīng)用于Python項目中并不總是那么簡單。
在這本實用指南中,來自MADE.com的Harry Percival和Bob Gregory介紹了經(jīng)過驗證的架構(gòu)設(shè)計模式,幫助Python開發(fā)人員管理應(yīng)用程序復(fù)雜性,并從他們的測試套件中獲得最大價值。
每種模式都用優(yōu)雅且慣用的Python實例進(jìn)行了說明,避免了一些Java和C#語法的冗長。模式包括:
● 依賴倒置及其與端口和適配器(六邊形/整潔架構(gòu))的聯(lián)系。
● 領(lǐng)域驅(qū)動設(shè)計中的實體、值對象和聚合之間的區(qū)分。
● 持久存儲的倉儲和工作單元模式。
● 事件、命令和消息總線。
● 命令查詢責(zé)任分離(CQRS)。
● 事件驅(qū)動架構(gòu)和反應(yīng)式微服務(wù)。
  1. 前言
  2. 第0章 概述
  3. 第一部分 構(gòu)建支持領(lǐng)域模型的架構(gòu)
  4. 第1章 領(lǐng)域建模
  5. 1.1 什么是領(lǐng)域模型
  6. 1.2 探索領(lǐng)域語言
  7. 1.3 單元測試領(lǐng)域模型
  8. 1.3.1 數(shù)據(jù)類非常適合值對象
  9. 1.3.2 值對象和實體
  10. 1.4 并非一切都必須是對象:領(lǐng)域服務(wù)函數(shù)
  11. 1.4.1 基于Python的魔法方法利用Python使用我們的模型
  12. 1.4.2 異常也可以表達(dá)領(lǐng)域概念
  13. 第2章 存儲庫模式
  14. 2.1 持久化我們的領(lǐng)域模型
  15. 2.2 一些偽代碼:我們需要什么
  16. 2.3 將DIP應(yīng)用于數(shù)據(jù)訪問
  17. 2.4 回顧:我們的模型
  18. 2.4.1 一般的ORM方式:模型依賴于ORM
  19. 2.4.2 反轉(zhuǎn)依賴關(guān)系:ORM依賴于模型
  20. 2.5 介紹存儲庫模式
  21. 2.5.1 抽象的存儲庫
  22. 2.5.2 什么是權(quán)衡
  23. 2.6 構(gòu)建用于測試的假存儲庫現(xiàn)在變得微不足道
  24. 2.7 在Python中,什么是端口和適配器
  25. 2.8 總結(jié)
  26. 第3章 一個簡要的插曲:關(guān)于耦合和抽象
  27. 3.1 抽象狀態(tài)有助于增加可測試性
  28. 3.2 選擇正確的抽象
  29. 3.3 實現(xiàn)我們所選擇的抽象
  30. 3.3.1 使用偽造和依賴注入進(jìn)行邊緣到邊緣測試
  31. 3.3.2 為什么不直接修補(bǔ)呢
  32. 3.4 總結(jié)
  33. 第4章 我們的第一個用例:Flask API和服務(wù)層
  34. 4.1 將我們的應(yīng)用程序連接到真實世界
  35. 4.2 第一個端到端測試
  36. 4.3 直接實現(xiàn)
  37. 4.4 需要數(shù)據(jù)庫檢查的錯誤條件
  38. 4.5 引入服務(wù)層,并使用FakeRepository對其進(jìn)行單元測試
  39. 4.6 為什么一切都被稱為服務(wù)
  40. 4.7 將事物放入文件夾以查看它們的歸屬
  41. 4.8 總結(jié)
  42. 第5章 高速擋和低速擋的TDD
  43. 5.1 我們的測試金字塔看起來怎么樣
  44. 5.2 應(yīng)該將領(lǐng)域?qū)訙y試轉(zhuǎn)移到服務(wù)層嗎
  45. 5.3 在決定編寫哪種測試時
  46. 5.4 高速擋和低速擋
  47. 5.5 將服務(wù)層測試與領(lǐng)域完全解耦
  48. 5.5.1 改進(jìn):在Fixture函數(shù)中保留所有領(lǐng)域依存關(guān)系
  49. 5.5.2 添加缺失的服務(wù)
  50. 5.6 將改進(jìn)貫穿到E2E測試中
  51. 5.7 總結(jié)
  52. 第6章 工作單元模式
  53. 6.1 工作單元與存儲庫協(xié)作
  54. 6.2 通過集成測試驅(qū)動UoW
  55. 6.3 工作單元及其上下文管理器
  56. 6.3.1 真正的工作單元使用SQLAlchemy會話
  57. 6.3.2 用于測試的假工作單元
  58. 6.4 在服務(wù)層中使用工作單元(UoW)
  59. 6.5 提交/回滾行為的顯式測試
  60. 6.6 顯式提交與隱式提交
  61. 6.7 示例:使用工作單元將多個操作分組到一個原子單元中
  62. 6.7.1 示例1:重新分配
  63. 6.7.2 示例2:更改批次數(shù)量
  64. 6.8 整理集成測試
  65. 6.9 總結(jié)
  66. 第7章 聚合和一致性邊界
  67. 7.1 為什么不直接使用電子表格運(yùn)行所有內(nèi)容
  68. 7.2 不變量、約束和一致性
  69. 7.3 什么是聚合
  70. 7.4 選擇聚合
  71. 7.5 一個聚合=一個存儲庫
  72. 7.6 關(guān)于性能
  73. 7.7 樂觀并發(fā)控制與版本號
  74. 7.8 測試我們的數(shù)據(jù)完整性規(guī)則
  75. 7.8.1 使用數(shù)據(jù)庫事務(wù)隔離級別強(qiáng)制執(zhí)行并發(fā)規(guī)則
  76. 7.8.2 悲觀并發(fā)控制示例:SELECT FOR UPDATE
  77. 7.9 總結(jié)
  78. 7.10 第一部分概述
  79. 第二部分 事件驅(qū)動架構(gòu)
  80. 第8章 事件和消息總線
  81. 8.1 避免造成混亂
  82. 8.1.1 首先,讓我們避免弄亂我們的Web控制器
  83. 8.1.2 不要弄亂我們的模型
  84. 8.1.3 或者嘗試一下使用服務(wù)層
  85. 8.2 單一職責(zé)原則
  86. 8.3 全部都使用消息總線
  87. 8.3.1 模型記錄事件
  88. 8.3.2 事件是簡單的數(shù)據(jù)類
  89. 8.3.3 模型觸發(fā)事件
  90. 8.3.4 消息總線將事件映射到處理程序
  91. 8.4 選項1:服務(wù)層從模型中獲取事件并將其添加到消息總線
  92. 8.5 選項2:服務(wù)層自己觸發(fā)事件
  93. 8.6 選項3:工作單元將事件發(fā)布到消息總線
  94. 8.7 總結(jié)
  95. 第9章 深入探討消息總線
  96. 9.1 新的需求引導(dǎo)我們走向新的架構(gòu)
  97. 9.2 將服務(wù)層方法重構(gòu)為消息處理程序
  98. 9.2.1 消息總線現(xiàn)在從工作單元(UoW)收集事件
  99. 9.2.2 我們所有的測試也是根據(jù)事件編寫的
  100. 9.2.3 丑陋的處理方法:消息總線必須返回結(jié)果
  101. 9.2.4 修改API以處理事件
  102. 9.3 實現(xiàn)我們的新需求
  103. 9.4 測試驅(qū)動新的處理程序
  104. 9.4.1 實現(xiàn)
  105. 9.4.2 領(lǐng)域模型的新方法
  106. 9.5 選讀:使用模擬消息總線對事件處理程序進(jìn)行單元測試
  107. 9.6 總結(jié)
  108. 9.6.1 我們實現(xiàn)了什么
  109. 9.6.2 我們?yōu)槭裁催@么實現(xiàn)
  110. 第10章 命令與命令處理程序
  111. 10.1 命令與事件
  112. 10.2 異常處理的差異
  113. 10.3 討論:事件,命令,以及錯誤處理
  114. 10.4 同步錯誤恢復(fù)
  115. 10.5 總結(jié)
  116. 第11章 事件驅(qū)動架構(gòu):使用事件集成微服務(wù)
  117. 11.1 分布式泥球和名詞思維
  118. 11.2 分布式系統(tǒng)中的錯誤處理
  119. 11.3 替代方案:使用異步消息進(jìn)行時間解耦
  120. 11.4 使用Redis發(fā)布/訂閱通道進(jìn)行集成
  121. 11.5 使用端到端測試進(jìn)行全面測試驅(qū)動
  122. 11.5.1 Redis是另一個圍繞消息總線的輕量適配器
  123. 11.5.2 新發(fā)出的事件
  124. 11.6 內(nèi)部事件與外部事件
  125. 11.7 總結(jié)
  126. 第12章 命令–查詢責(zé)任分離
  127. 12.1 領(lǐng)域模型用于寫
  128. 12.2 大部分用戶不會買你的家具
  129. 12.3 Post/Redirect/Get和CQS
  130. 12.4 抓緊你的午餐,朋友們
  131. 12.5 測試CQRS視圖
  132. 12.6 “顯而易見”的替代方案1:使用現(xiàn)有存儲庫
  133. 12.7 領(lǐng)域模型未針對讀取操作進(jìn)行優(yōu)化
  134. 12.8 “顯而易見”的替代方案2:使用ORM
  135. 12.9 SELECT N+1和其他性能考量
  136. 12.10 是時候完全隨波逐流了
  137. 12.11 更改讀取模型的實現(xiàn)很容易
  138. 12.12 總結(jié)
  139. 第13章 依賴注入和Bootstrapping
  140. 13.1 隱式依賴與顯式依賴
  141. 13.2 顯式依賴不是很奇怪和Java式嗎
  142. 13.3 準(zhǔn)備處理程序:帶有閉包和部分函數(shù)的手動DI
  143. 13.4 使用類的備選方案
  144. 13.5 Bootstrap腳本
  145. 13.6 消息總線在運(yùn)行時提供處理程序
  146. 13.7 在程序入口使用Bootstrap
  147. 13.8 在測試中初始化DI
  148. 13.9 “正確”構(gòu)建適配器:一個可用示例
  149. 13.9.1 定義抽象和具體實現(xiàn)
  150. 13.9.2 為你的測試完成一個假的版本
  151. 13.9.3 找出如何集成測試真實事物的方法
  152. 13.10 總結(jié)
  153. 后記
  154. 附錄A 圖表和表格匯總
  155. 附錄B 項目結(jié)構(gòu)模板
  156. 附錄C 交換基礎(chǔ)設(shè)施:全部使用CSV
  157. 附錄D 存儲庫和工作單元Django模式
  158. 附錄E 驗證
書名:Python設(shè)計模式
譯者:柴一平, 徐海洋 譯
國內(nèi)出版社:中國電力出版社
出版時間:2025年03月
頁數(shù):304
書號:978-7-5198-9182-4
原版書書名:Architecture Patterns with Python
原版書出版商:O'Reilly Media
Harry J.W. Percival
 
Harry Percival做了幾年的管理顧問,他對自己當(dāng)時的工作并不是很感興趣。后來他終于發(fā)現(xiàn)了自己真正的極客本性,幸運(yùn)地結(jié)識了一群XP狂熱者,創(chuàng)立了Resolver One電子表格,可惜的是該產(chǎn)品已經(jīng)不存在了。Harry曾在Pythonywhere LLP工作,他一直致力于在演講、研討會和會議上向全世界傳播TDD?,F(xiàn)在,Harry在Made.com工作。
 
 
Bob Gregory
 
Bob Gregory是Made.com的一位在英國工作的軟件架構(gòu)師。十多年來,他一直在使用領(lǐng)域驅(qū)動設(shè)計構(gòu)建事件驅(qū)動系統(tǒng)。
 
 
本書封面上的動物是緬甸巨蟒(學(xué)名:Python bivitattus)。如你所料,緬甸蟒蛇原產(chǎn)于東南亞。如今,它生活在南亞、緬甸、中國和印度尼西亞的叢林和沼澤中,在佛羅里達(dá)州的大沼澤地也被發(fā)現(xiàn)過。
緬甸蟒蛇是世界上最大的蛇種之一。這些夜間活動的食肉性蟒蛇可以長到23英尺,體重約200磅。普遍雌性比雄性大。緬甸蟒蛇一窩最多能產(chǎn)一百個蛋。在野外,緬甸蟒蛇的平均壽命為20~25年。
緬甸巨蟒身上的斑紋從頭頂上的一個箭頭狀淺棕色斑點(diǎn)開始,然后沿著身體呈矩形,與褐色鱗片形成鮮明對比。緬甸蟒蛇在長到完全體型之前(需要2~3年時間),一般生活在樹上捕食小型哺乳動物和鳥類。它們還可以在不需要呼吸的情況下長時間游泳,最長可達(dá)30分鐘。
由于棲息地遭到破壞,緬甸蟒蛇處于弱勢保護(hù)狀態(tài)。O’Reilly出版物的封面上的許多動物都瀕臨滅絕;所有這些保護(hù)動物對我們的世界都具有重大意義。
購買選項
定價:98.00元
書號:978-7-5198-9182-4
出版社:中國電力出版社