Python高效編程實踐指南:編碼、測試與集成
楊勇; 楊杭之
- 出版商: 機械工業
- 出版日期: 2024-06-01
- 售價: $534
- 貴賓價: 9.5 折 $507
- 語言: 簡體中文
- 頁數: 232
- 裝訂: 平裝
- ISBN: 7111756754
- ISBN-13: 9787111756750
立即出貨
買這商品的人也買了...
-
$480$379 -
$354$336 -
$301混沌工程實戰 手把手教你實現系統穩定性
-
$560全棧性能測試修煉寶典 JMeter 實戰, 2/e
-
$654$621 -
$414$393 -
$1,200$948 -
$621使用 GitOps 實現 Kubernetes 的持續部署:模式、流程及工具
-
$654$621 -
$653機器學習項目交付實戰
-
$714$678 -
$1,200$948 -
$594$564 -
$774$735 -
$342$325 -
$539$512 -
$490$387 -
$774$735 -
$690$538 -
$474$450 -
$520$390 -
$556智慧汽車電子與軟體:開發方法、系統整合、流程系統與專案管理
-
$800$600 -
$780$616 -
$654$621
相關主題
商品描述
本書先簡單介紹了建構開發環境的相關知識,然後以一個規範的Python專案的檔案版面總攬全局,
依照編碼、單元測試、程式碼管理、整合測試、撰寫技術文件、發布安裝包的順序,逐一剖析Python開發中所涉及的規格和工具。
書中介紹了基於語意的版本管理、依賴解析、建構打包、程式碼樣式、API文檔格式等規格。
透過不同開發工具(服務)之間的對比,向讀者介紹了poetry、MkDocs、tox、Flake8、Black、
Git、GitHub CI、Codecov、GitHub Pages、pre-commit hooks等符合最佳實務的開發工具和服務。
隨書附贈本書案例源碼,取得方式見封底。
本書在講解上本著知其然,更要知其所以然的求知態度,力求講清楚技術的來龍去脈。
任何Python愛好者都適合閱讀此書,且本書更是Python初學者實現向專業開發人員蝶變的推薦書籍,
使用本書介紹的最佳實踐,可以建立與優秀開源專案媲美的框架程式碼,並獲得與專業開發者協同工作的能力。
目錄大綱
序一
序二
前言
第1章 為什麼要學Python1
第2章 建構高效率的開發環境10
2.1 選擇哪一種作業系統10
2.1.1 Windows下的Linux環境11
2.1.2 Docker方案16
2.1.3 虛擬機器方案17
2.1.4 小結17
2.2 整合開發環境17
2.2.1 使用哪一個IDE:VS Code或PyCharm18
2.2.2 VS Code及擴充18
2.3 其他開發環境27
2.3.1 Jupyter Notebook27
2.3.2 Spyder28
第3章 建構Python虛擬環境30
3.1 依賴地獄31
3.2 使用虛擬環境逃出依賴地獄31
3.3 Python套件安裝工具pip37
3.4 配置VS Code中的解譯器37
第4章 專案佈局與專案生成精靈39
4.1 標準項目佈局40
4.1.1 一般性文檔41
4.1.2 幫助文件41
4.1.3 API文件41
4.1.4 工程建置設定檔42
4.1.5 代碼目錄42
4.1.6 單元測試檔目錄43
4.1.7 Makefile43
4.1.8 相關工具的設定檔43
4.1.9 tox設定檔43
4.1.10 CI配置檔43
4.1.11 code coverage設定檔44
4.2 專案生成嚮導44
4.2.1 Cookiecutter44
4.2.2 Python Project Wizard45
4.3 如何使用 Python Project Wizard46
4.3.1 安裝Python Project Wizard(PPW)46
4.3.2 生成專案框架47
4.3.3 安裝pre-commit hooks47
4.3.4 安裝開發依賴48
4.3.5 建立GitHub Repo48
4.3.6 進行發布測試49
4.3.7 設定GitHub CI49
4.3.8 設定Codecov49
4.3.9 設定GitHub Pages49
4.3.10 GitHub自動化腳本50
4.3.11 PPW產生的文件清單51
第5章 poetry:讓專案管理輕鬆一些53
5.1 Semantic Versioning57
5.2 poetry:簡潔清晰的專案管理工具60
5.2.1 版本管理64
5.2.2 依賴管理66
5.2.3 虛擬運行時72
5.2.4 建置發行包72
5.2.5 其他重要的poetry命令73
第6章 實現高效率的Python編碼74
6.1 AI賦能的程式碼編寫74
6.1.1 GitHub Copilot74
6.1.2 Tabnine76
6.2 Type Hint78
6.3 PEP 8:Python程式碼風格指南82
6.4 lint工具82
6.4.1 Flake883
6.4.2 mypy86
6.5 Formatter工具91
6.6 pre-commit hooks93
第7章 單元測試97
7.1 測試程式碼的組織98
7.2 Pytest99
7.2.1 測試案例的組裝99
7.2.2 Pytest 斷言100
7.2.3 Pytest fixture101
7.3 魔法一樣的mock105
7.3.1 基礎概念與基本使用106
7.3.2 特殊場合下的mock108
7.4 Coverage:衡量測試的覆蓋率113
7.5 發布覆蓋率報告115
7.6 使用tox實現矩陣化測試116
7.6.1 什麼是tox117
7.6.2 tox的工作原理117
7.6.3 如何配置tox118
第8章 版本控制—基於Git和GitHub122
8.1 版本控制的意義122
8.2 版本管理工具Git123
8.2.1 創建Git倉庫124
8.2.2 建立與遠端倉庫的關聯:git remote125
8.2.3 儲存變更:add、commit、stash等126
8.2.4 與他人同步變更:git push和git pull131
8.2.5 Git標籤131
8.3 分支管理134
8.3.1 功能分支136
8.3.2 發布分支137
8.3.3 熱修復分支138
8.4 高級Git操作139
8.4.1 分支合併和三路歸併139
8.4.2 變基143
8.4.3 分支比較:git diff145
8.4.4 reset與checkout146
8.4.5 gutter change148
8.5 案例:如何追蹤程式碼變化148
8.6 GitHub和GitHub CLI150
8.6.1 安裝GitHub CLI150
8.6.2 GitHub CLI的主要命令151
8.6.3 GitHub CLI應用舉例153
第9章 持續集成154
9.1 盤點CI軟體與線上服務154
9.2 GitHub Actions155
9.2.1 GitHub Actions的架構與概念155
9.2.2 工作流程語法概述156
9.3 第三方應用程式和Actions163
9.3.1 GitHub Pages部署164
9.3.2 建置與發布Docker映像164
9.3.3 在GitHub上進行發布164
9.3.4 制訂發布日誌草案164
9.3.5 通知訊息165
9.3.6 Giscus165
9.4 透過GitHub CI發布Python庫165
第10章 撰寫技術文件168
10.1 技術文件的組成168
10.2 兩種主要的文檔格式170
10.3 rst文檔格式170
10.3.1 章節標題(section)170
10.3.2 列表(list)171
10.3.3 表格172
10.3.4 圖片173
10.3.5 代碼區塊173
10.3.6 警示文173
10.4 Markdown文檔174
10.4.1 章節標題175
10.4.2 列表175
10.4.3 表格176
10.4.4 插入連結176
10.4.5 插入圖片177
10.4.6 代碼區塊178
10.4.7 警示文178
10.4.8 其他語法179
10.5 兩種主要的建置工具179
10.6 使用Sphinx建置文件180
10.6.1 初始化文檔結構180
10.6.2 文件重定向181
10.6.3 主控文檔和工具鏈181
10.6.4 產生API文檔182
10.6.5 docstring的樣式183
10.6.6 混合使用Markdown185
10.7 使用MkDocs建置文件186
10.7.1 配置MkDocs187
10.7.2 更換主題190
10.7.3 檔案重定向191
10.7.4 頁引用191
10.7.5 API文件和mkdocstrings192
10.7.6 多版本發布194
10.8 線上託管文件194
10.8.1 RTD195
10.8.2 GitHub Pages195
10.9 結論:究竟選擇哪一種技術196
第11章 發布應用程式198
11.1 以Python庫的方式打包和分發198
11.1.1 打包與分發流程199
11.1.2 TestPyPI和PyPI203
11.1.3 pip:Python套件管理工具204
11.2 應用程式