-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
健壯的Python 版權信息
- ISBN:9787111721444
- 條形碼:9787111721444 ; 978-7-111-72144-4
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
健壯的Python 本書特色
適讀人群 :有一定Python編程經驗的開發人員本書適用于任何希望以可持續和可維護的方式開發代碼的Python開發人員。 注意,這并不是您的第1本Python書;閱讀本書前您應該熟悉Python控制流,并且以前使用過類。 如果:你正在尋找更具入門性的圖書,建議先閱讀Mark Lutz(O'Reilly)的《Learning Python》(中文版:《Python學習手冊》) 本書將研究用戶定義的類型,例如類和枚舉,以及Python的類型提示系統。還將探討如何使Python可擴展,以及如何使用一個全面的測試策略作為安全網。讀完本書你將能夠使用Python類型編寫更清晰、更易于維護的代碼。 主要內容: 第1部分“為代碼添加類型注解”。介紹類型檢查如何在保證健壯性的工作中扮演重要角色。第2部分“定義你自己的類型”。用面向對象的思維增加代碼的健壯性。第3部分“可擴展的Python”。借助一些設計思想和常見架構,進一步提升代碼質量。第4部分“構建安全網”。用靜態檢查和測試完善整個代碼的安全網。讀者得以從四個不同的角度了解各種Python技巧,并借助其中的例子加強“編寫良好代碼”(不只是Python)的意識。希望閱讀此書的讀者都能有所收獲,并能夠將其中一些做法或者思想應用到自己的職業生涯或者編碼工作中。
健壯的Python 內容簡介
你的Python項目是否正在變得越來越龐大?隨著代碼的擴展,調試和維護工作變得更加艱難,你是否感到痛苦?Python是一種容易學習和使用的語言,但這也意味著系統可以迅速發展到無法理解的程度。值得慶幸的是,Python具有幫助開發者克服可維護性困境的功能。在這本實用的書中,作者Patrick Viafore將告訴你如何優選限度地使用 Python的類型系統。你將看到用戶定義的類型(如類和枚舉),以及Python的類型提示系統。你還將學習如何使Python代碼具有可擴展性,以及如何基于一個全面的測試策略構建安所有渠道。利用這些知識和技術,你將編寫更清晰、更易于維護的代碼。通過學習本書,你將:*了解為什么類型在現代開發生態系統中是必不可少的。*了解類、字典和枚舉等類型選擇是如何反映特定意圖的。*在不加劇臃腫的情況下使Python代碼在未來可擴展。*使用流行的Python工具來提高代碼庫的安全性和健壯性。*評估當前的代碼以檢測常見的可維護性問題。*通過linter和測試構建代碼庫的安所有渠道。
健壯的Python 目錄
第1章 健壯的Python簡介9
1.1 健壯性9
1.2 你的意圖是什么12
1.3 Python中的意圖示例18
1.3.1 集合18
1.3.2 迭代21
1.3.3 *小驚訝原則22
1.4 小結24
**部分 為代碼添加類型注解
第2章 Python類型簡介27
2.1 類型中有什么27
2.1.1 機器表達27
2.1.2 語義表達29
2.2 類型系統32
2.2.1 強類型與弱類型32
2.2.2 動態類型與靜態類型33
2.2.3 鴨子類型34
2.3 小結36
第3章 類型注解37
3.1 什么是類型注解37
3.2 類型注解的好處41
3.2.1 自動補全41
3.2.2 類型檢查器42
3.2.3 練習:找出bug43
3.3 什么時候使用類型注解45
3.4 小結46
第4章 約束類型47
4.1 Optional類型48
4.2 Union類型53
4.3 Literal類型57
4.4 Annotated類型58
4.5 NewType58
4.6 Final類型60
4.7 小結61
第5章 集合類型62
5.1 向集合添加類型注解62
5.2 同構集合與異構集合63
5.3 向字典添加類型67
5.4 創建新的集合類型69
5.4.1 泛型69
5.4.2 修改現有的類型71
5.4.3 像ABC一樣簡單74
5.5 小結76
第6章 自定義你的類型檢查器77
6.1 配置類型檢查器77
6.1.1 配置mypy78
6.1.2 mypy報告81
6.1.3 加速mypy82
6.2 其他類型檢查器83
6.2.1 Pyre83
6.2.2 Pyright88
6.3 小結90
第7章 采用類型檢查的實踐91
7.1 權衡利弊92
7.2 早日實現投入產出平衡93
7.2.1 找到你的痛點93
7.2.2 從戰略上選擇目標代碼94
7.2.3 依靠工具95
7.3 小結101
第二部分 定義你自己的類型
第8章 用戶自定義類型:枚舉105
8.1 用戶自定義類型105
8.2 枚舉106
8.2.1 Enum108
8.2.2 何時不使用109
8.3 高級用法109
8.3.1 自動分配值109
8.3.2 Flag111
8.3.3 整數轉換112
8.3.4 唯一性114
8.4 小結115
第9章 用戶自定義類型:數據類116
9.1 數據類實戰116
9.2 用法120
9.2.1 字符串轉換120
9.2.2 相等性121
9.2.3 關聯性比較121
9.2.4 不變性123
9.3 與其他類型的比較124
9.3.1 數據類與字典124
9.3.2 數據類與TypedDict125
9.3.3 數據類與命名元組125
9.4 小結126
第10章 用戶自定義類型:類127
10.1 類的剖析127
10.2 不變量129
10.2.1 避免損壞的不變量131
10.2.2 為什么不變量是有益的132
10.2.3 溝通不變量134
10.2.4 消費你的類134
10.2.5 維護者怎么辦136
10.3 封裝和維護不變量137
10.3.1 封裝137
10.3.2 保護數據訪問138
10.3.3 操作140
10.4 小結142
第11章 定義你的接口144
11.1 自然接口設計145
11.2 自然的交互148
11.2.1 自然接口實踐149
11.2.2 魔法方法153
11.2.3 上下文管理器155
11.3 小結158
第12章 子類型159
12.1 繼承159
12.2 可替代性163
12.3 設計方面的考慮168
12.4 小結171
第13章 協議172
13.1 類型系統之間的張力172
13.1.1 留空類型或使用Any類型174
13.1.2 使用Union174
13.1.3 使用繼承174
13.1.4 使用mixin176
13.2 協議177
13.3 高級用法179
13.3.1 復合協議179
13.3.2 運行時可檢查協議180
13.3.3 滿足協議的模塊180
13.4 小結181
第14章 使用pydantic進行運行時檢查183
14.1 動態配置183
14.2 pydantic189
14.2.1 驗證器190
14.2.2 驗證與解析193
14.3 小結194
第三部分 可擴展的Python
第15章 可擴展性197
15.1 可擴展性是什么197
15.2 開閉原則203
15.2.1 檢測OCP侵犯203
15.2.2 缺點204
15.3 小結205
第16章 依賴關系206
16.1 關系207
16.2 依賴關系的類型209
16.2.1 物理依賴關系209
16.2.2 邏輯依賴關系212
16.2.3 時間依賴關系213
16.3 可視化你的依賴關系215
16.3.1 可視化包215
16.3.2 可視化導入216
16.3.3 可視化函數調用217
16.3.4 解釋依賴關系圖219
16.4 小結220
第17章 可組合性221
17.1 可組合性介紹221
17.2 策略與機制225
17.3 較小規模的組合228
17.3.1 組合函數228
17.3.2 組合算法231
17.4 小結234
第18章 事件驅動的架構235
18.1 工作原理235
18.2 簡單的事件237
18.2.1 使用消息代理237
18.2.2 觀察者模式239
18.3 事件流241
18.4 小結243
第19章 可插入的Python245
19.1 模板方法模式246
19.2 策略模式248
19.3 插件式架構250
19.4 小結253
第四部分 構建安全網
第20章 靜態分析257
20.1 lint檢測257
20.1.1 編寫自己的Pylint插件259
20.1.2 分解插件261
20.2 其他靜態分析器263
20.2.1 復雜度檢查器264
20.2.2 安全分析266
20.3 小結267
第21章 測試策略268
21.1 定義測試策略268
21.2 降低測試成本273
21.3 小結282
第22章 驗收測試283
22.1 行為驅動開發284
22.1.1 Gherkin語言284
22.1.2 可執行規范286
22.2 額外的behave特性288
22.2.1 參數化步驟288
22.2.2 表格驅動的需求288
22.2.3 步驟匹配289
22.2.4 定制測試生命周期289
22.2.5 使用標記選擇性地運行測試290
22.2.6 報告生成290
22.3 小結292
第23章 基于屬性的測試293
23.1 用Hypothesis開展基于屬性的測試293
23.1.1 Hypothesis的魔力297
23.1.2 與傳統測試的對比298
23.2 充分利用Hypothesis299
23.2.1 Hypothesis策略299
23.2.2 生成算法300
23.3 小結303
第24章 突變測試305
24.1 什么是突變測試305
24.2 用mutmut進行突變測試307
24.2.1 修復突變體309
24.2.2 突變測試報告310
24.3 采用突變測試311
24.4 小結314
健壯的Python 節選
*“時人不識凌云木, 直待凌云始道高。”這些保證/增強代碼健壯性的做法往往在一開始并不會彰顯它的魅力,但只要你堅持做正確的事情,它的作用和影響便一定會在日后慢慢凸顯。“不積跬步,無以至千里。”希望大家不僅在編程過程中能夠保持追求完美、持續改進的習慣,而且在自己的學習生活過程中同樣能夠如此。從日常中積累,從細微處成長,早日實現自己工作和生活中的每一個目標。與君共勉!姚文杰,凱捷咨詢數字化團隊架構師 *市場上介紹Python編程的書籍很多,許多開發人員只接觸了Python語言的表面,而沒有深入學習Python編程的所有工具和技巧。通過閱讀本書,你將學會如何更好地使用Python,你將接觸許多使得Python整潔并可維護的方法。這樣,未來的維護者也將會喜愛并使用你寫出的每段代碼,因為它是預先“精心設計”的。本書不只是編程的參考書,更是便于與公司和組織內的開發人員一起探討如何好地應用這些編程原則的指南。周偉凱捷咨詢數字化團隊資深項目經理 *我們都知道Python是一門語法簡單、設計優雅的語言,“低門檻”和“易用”這兩個特點造就了它活躍的生態,進而使它擁有了大量庫和語法糖,并成為編程零基礎選手快速入門的不二之選。但與此同時,作為Python語言的使用者和軟件交付咨詢師,我深知我們不能因為手里有把好的砍柴刀就對危機四伏的軟件世界掉以輕心甚至洋洋得意。軟件工程所要應對的根本問題并不會憑空消失,很慶幸有Patrick Viafore這樣務實的技術作者能深入淺出地給軟件從業者分享寫出好代碼的原則、方法與工具,因此本書也同樣適用于使用其他編程語言的讀者。梁凌銳凱捷咨詢數字化團隊敏捷咨詢顧問 *Python是一門簡單易學并且功能非常強大的編程語言,所以即使你是編程新手,也可以通過自學很快上手。但是隨著軟件系統變得越來越復雜,僅僅接觸Python的表面是遠遠不夠的,否則軟件系統會因為膨脹而變得脆弱。因此,深入學習編寫健壯的Python代碼所需的所有工具和技巧是非常重要的。本書適用于有一定Python編程經驗的讀者,涵蓋許多高級Python特性,但目的不僅僅是讓讀者會使用這些特性,而是基于這些特性去討論你的選擇會對代碼的可維護性產生哪些影響。楊凌云凱捷咨詢北方測試團隊負責人
健壯的Python 作者簡介
Patrick Viafore在關鍵任務軟件領域有超過14年的工作經驗,專業方向涉及雷電檢測、電信和操作系統。他通過開發管道和工具,將Ubuntu鏡像部署到公有云供應商,并通過Kudzera有限責任公司進行軟件咨詢和項目承包(他是這家公司的負責人)。他的目標是使計算機科學以及軟件工程主題對開發者社區來說更加容易理解。
- >
小考拉的故事-套裝共3冊
- >
中國歷史的瞬間
- >
龍榆生:詞曲概論/大家小書
- >
【精裝繪本】畫給孩子的中國神話
- >
朝聞道
- >
自卑與超越
- >
二體千字文
- >
我從未如此眷戀人間