-
内容大纲
本书先简单介绍了搭建开发环境的相关知识,然后以一个规范的Python项目的文件布局总揽全局,按照编码、单元测试、代码管理、集成测试、撰写技术文档、发布安装包的次序,逐一剖析Python开发中所涉及的规范和工具。书中介绍了基于语义的版本管理、依赖解析、构建打包、代码风格、API文档格式等规范。通过不同开发工具(服务)之间的对比,向读者介绍了poetry、MkDocs、tox、Flake8、Black、Git、GitHub CI、Codecov、GitHubPages、pre-commit hooks等符合最佳实践的开发工具和服务。随书附赠本书案例源码,获取方式见封底。
本书在讲解上本着知其然,更要知其所以然的求知态度,力求讲清楚技术的来龙去脉。任何Python爱好者都适合阅读此书,且本书更是Python初学者实现向专业开发人员蝶变的推荐书籍,使用本书介绍的最佳实践,可以构建出与优秀开源项目媲美的框架代码,并获得与专业开发者协同工作的能力。 -
作者介绍
杨勇,毕业于华中科技大学计算机专业,获硕士学位。从事软件开发和量化交易研究超二十年。曾服务于趋势科技(中国)、IBM、Oracle、百纳(海豚浏览器),先后担任高级软件研发经理、研发副总裁。精通多种开发语言与云计算架构设计。在Oracle期间,领导团队与电信巨头Verizon合作开发在线视频点播系统;在百纳期间,带领团队实现年营收过亿。现从事量化投研系统研发,研发的大富翁(Zillionare)投研系统具有高性能、容纳海量数据、完全基于Python设计、软件开发流程和质量管控领先等特点。个人媒体号“量化风云”在全网拥有超过7万名量化人粉丝。 -
目录
序一
序二
前言
第1章 为什么要学Python
第2章 构建高效的开发环境
2.1 选择哪一种操作系统
2.1.1 Windows下的Linux环境
2.1.2 Docker方案
2.1.3 虚拟机方案
2.1.4 小结
2.2 集成开发环境
2.2.1 使用哪一个IDE:VS Code或PyCharm
2.2.2 VS Code及扩展
2.3 其他开发环境
2.3.1 Jupyter Notebook
2.3.2 Spyder
第3章 构建Python虚拟环境
3.1 依赖地狱
3.2 使用虚拟环境逃出依赖地狱
3.3 Python包安装工具pip
3.4 配置VS Code中的解释器
第4章 项目布局和项目生成向导
4.1 标准项目布局
4.1.1 一般性文档
4.1.2 帮助文档
4.1.3 API文档
4.1.4 工程构建配置文件
4.1.5 代码目录
4.1.6 单元测试文件目录
4.1.7 Makefile
4.1.8 相关工具的配置文件
4.1.9 tox配置文件
4.1.10 CI配置文件
4.1.11 code coverage配置文件
4.2 项目生成向导
4.2.1 Cookiecutter
4.2.2 Python Project Wizard
4.3 如何使用 Python Project Wizard
4.3.1 安装Python Project Wizard(PPW)
4.3.2 生成项目框架
4.3.3 安装pre-commit hooks
4.3.4 安装开发依赖
4.3.5 创建GitHub Repo
4.3.6 进行发布测试
4.3.7 设置GitHub CI
4.3.8 设置Codecov
4.3.9 设置GitHub Pages
4.3.10 GitHub自动化脚本
4.3.11 PPW生成的文件列表
第5章 poetry:让项目管理轻松一些
5.1 Semantic Versioning
5.2 poetry:简洁清晰的项目管理工具
5.2.1 版本管理
5.2.2 依赖管理
5.2.3 虚拟运行时
5.2.4 构建发行包
5.2.5 其他重要的poetry命令
第6章 实现高效的Python编码
6.1 AI赋能的代码编写
6.1.1 GitHub Copilot
6.1.2 Tabnine
6.2 Type Hint
6.3 PEP 8:Python代码风格指南
6.4 lint工具
6.4.1 Flake
6.4.2 mypy
6.5 Formatter工具
6.6 pre-commit hooks
第7章 单元测试
7.1 测试代码的组织
7.2 Pytest
7.2.1 测试用例的组装
7.2.2 Pytest 断言
7.2.3 Pytest fixture
7.3 魔法一样的mock
7.3.1 基础概念与基本使用
7.3.2 特殊场合下的mock
7.4 Coverage:衡量测试的覆盖率
7.5 发布覆盖率报告
7.6 使用tox实现矩阵化测试
7.6.1 什么是tox
7.6.2 tox的工作原理
7.6.3 如何配置tox
第8章 版本控制—基于Git和GitHub
8.1 版本控制的意义
8.2 版本管理工具Git
8.2.1 创建Git仓库
8.2.2 建立与远程仓库的关联:git remote
8.2.3 保存更改:add、commit、stash等
8.2.4 与他人同步变更:git push和git pull
8.2.5 Git标签
8.3 分支管理
8.3.1 功能分支
8.3.2 发布分支
8.3.3 热修复分支
8.4 高级Git操作
8.4.1 分支合并和三路归并
8.4.2 变基
8.4.3 分支比较:git diff
8.4.4 reset与checkout
8.4.5 gutter change
8.5 案例:如何追踪代码变化
8.6 GitHub和GitHub CLI
8.6.1 安装GitHub CLI
8.6.2 GitHub CLI的主要命令
8.6.3 GitHub CLI应用举例
第9章 持续集成
9.1 盘点CI软件和在线服务
9.2 GitHub Actions
9.2.1 GitHub Actions的架构和概念
9.2.2 工作流语法概述
9.3 第三方应用和Actions
9.3.1 GitHub Pages部署
9.3.2 构建和发布Docker镜像
9.3.3 在GitHub上进行发布
9.3.4 制订发布日志草案
9.3.5 通知消息
9.3.6 Giscus
9.4 通过GitHub CI发布Python库
第10章 撰写技术文档
10.1 技术文档的组成
10.2 两种主要的文档格式
10.3 rst文档格式
10.3.1 章节标题(section)
10.3.2 列表(list)
10.3.3 表格
10.3.4 图片
10.3.5 代码块
10.3.6 警示文本
10.4 Markdown文档
10.4.1 章节标题
10.4.2 列表
10.4.3 表格
10.4.4 插入链接
10.4.5 插入图片
10.4.6 代码块
10.4.7 警示文本
10.4.8 其他语法
10.5 两种主要的构建工具
10.6 使用Sphinx构建文档
10.6.1 初始化文档结构
10.6.2 文件重定向
10.6.3 主控文档和工具链
10.6.4 生成API文档
10.6.5 docstring的样式
10.6.6 混合使用Markdown
10.7 使用MkDocs构建文档
10.7.1 配置MkDocs
10.7.2 更换主题
10.7.3 文件重定向
10.7.4 页面引用
10.7.5 API文档和mkdocstrings
10.7.6 多版本发布
10.8 在线托管文档
10.8.1 RTD
10.8.2 GitHub Pages
10.9 结论:究竟选择哪一种技术
第11章 发布应用
11.1 以Python库的方式打包和分发
11.1.1 打包和分发流程
11.1.2 TestPyPI和PyPI
11.1.3 pip:Python包管理工具
11.2 应用程序分发
11.2.1 桌面应用程序
11.2.2 移动应用程序
11.2.3 基于云的应用部署
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...