世界读书日荐书《健壮的Python》

4 月 23 日是世界读书日。笔者上次写读书笔记还是 2 年前的《置身事内》,过去两年时间里没有看完任何一本书。 为了沾点儿读书日的喜庆,笔者推荐正在看的一本编程书《健壮的 Python》(Robust Python),由美国 Patrick Viafore 著 O`Reilly 出版,中文翻译版由机械工业出版社出版。

该书不是类似《Python学习手册 (Learning Python)》的 Python 编程入门教程,也不像《Effective Python》那样介绍大量 Python 编程技巧,而是关注“如何编写一段好的代码”,以提高未来的可维护性为目标介绍 Python 编程的一些经验,也就是标题中的“健壮”。 作者在第一章中给出健壮性的定义:

尽管一直处在不断变化的环境中,但健壮的代码库是有弹性的和没有缺陷的。

– 摘自《健壮的 Python》第一章《健壮的 Python 简介》

全书共分四个部分,分别是

  • 为代码添加类型注解:代码注释
  • 定义你自己的类型:类型定义
  • 可扩展的 Python:代码扩展
  • 构建安全网:代码质量

目前笔者刚看完前两部分。 类型注解部分介绍如何使用 Python 的类型注解功能,从而形成与维护者的明确约定,也方便类型检查工具自动查找代码的缺陷。 类型定义部分则介绍如何为数据结构选择合适的表达方式,向维护者准确表达代码的意图,减少维护者思考的时间,从而降低维护成本。

增加限制也许会降低未来的维护成本,但必然会带来更多的即时开发成本。 因此该书介绍的经验更适合需要多人长期维护的 Python 项目,而不适合单人开发的 Python 脚本。 简单 Python 脚本的优势在于快速开发,应用书中的方法反而会降低开发速度。

看完前两章给笔者的感觉是书中介绍的经验都是在试图控制 Python 作为动态类型编程语言的灵活度,从而提高大型 Python 项目的可维护性。 这显然就会引出另外一个问题,是不是 Java、C++、Golang、Rust 等编译型语言更适合开发大型项目。 不过笔者认为 Python 最大的优势在于比较流行,会的人多,尤其是人工智能在科学领域的火爆让越来越多科学家接触 Python 编程,用 Python 开发大型项目更容易形成开发团队。

最后引用一句 Python 编程领域的名言:

人生苦短,我用 Python