再写一本 Flask 书

593 阅读4分钟

把自己的目标公之于众,有可能会因为受到监督而更容易完成目标,也有可能会让你潜意识里感觉自己好像已经完成了目标,从而让计划更难执行。我更相信前一种理论,所以决定现在公布第二本 Flask 书的写作计划。

为什么要再写一本 Flask 书?

尽管我很想早一点深入学习更多的东西,而不是局限在 Flask(或 Python) 领域,但事实是,在这一个领域就已经有太多的东西需要研究和学习……目前来说,我最想解决的就是 Web API 的编写问题。《Flask Web 开发实战》虽然在第十章介绍了 Web API 的大部分基础概念,但是只实现了一种 OAuth 认证流程,也没能深入更多内容,包括数据校验、请求封装等。因此,我决定再写一本书来覆盖这个主题。

另一个原因是,我在上一本书的电商页面、豆瓣条目还有其他地方收集到了一些批评,其中有一些很中肯,所以我想写一本更好的 Flask 书。除了克服这些批评里提到的缺点,我也会尝试更科学的写作方式,不会像上一本书那样包含那么多的笔误和疏漏。

作为试水,我在 PyCon China 2019 上海场会有一个相关主题的演讲:《基于 Flask 的 REST API 开发指南》,如果你感兴趣的话,可以考虑报名参加

新书会包含哪些内容?

不同于《Flask Web 开发实战》所追求的大而全,这本书的定位是一个小而精的 Flask 书。它会包含下面这些内容:

  • 一个更轻松简单的入门部分。
  • 作为重点的 Web API 开发部分,如果可能的话,会包括 REST API 和 GraphQL 两种实现。
  • Flask 相关的进阶部分,包括缓存、异步任务、容器部署等。

这本书一来可以衔接《Flask 入门教程》,二来可以补充《Flask Web 开发实战》没有覆盖的内容。对于相同的主题,我会考虑使用不同的工具,比如《Flask Web 开发实战》里单元测试使用 unitttest,那么这本书就会介绍用 pytest。

下面是这本书的其他具体设计:

  • 只使用一个示例程序,贯穿全书。
  • 使用中文作为示例程序的界面语言。
  • 使用 Python3,但在书中对 Python2 兼容部分添加必要的提示。
  • 对书中的代码块添加尽可能多的注释。
  • 添加一个「术语表」,收集所有 Flask 和 Web 开发相关的术语,尝试给它们下一个简单易懂的定义。
  • 添加一个「常见错误速查表」,列出常见错误、错误解释和对应的解决方法(在维护上一本书的时间里,我处理了大量提问,见识过各种错误和误区)。

作为后续,在这本书完成后,我计划写一本电子书来介绍如何使用 Vue.js 基于这本 Flask 书编写的 Web API 来开发客户端。尽管我现在还没入门 Vue.js……但是我已经把放相关内容的网站域名准备好了:HelloVuejs.com(它和 HelloFlask.com 是兄弟域名 :p)

什么时间能完成?

预计的发售时间是明年愚人节,即 2020 年 4 月 1 日。因为 Flask 的诞生时间是 2010 年的愚人节,所以明年愚人节会是 Flask 诞生十周年纪念日,一个很完美的发售时间。

如果你对这本书感兴趣,可以关注我的微信公众号Twitter豆瓣账号获取最新动态。

你想看到什么内容?

在公开上一本写作消息的文章里,我征集到了大约 40 条建议,虽然没能完全采纳,但我都一一考虑过这些很有价值的建议。对于这本新书,在内容、形式或是其他任何方面,你有什么意见和建议?欢迎发评论或私信分享你的想法,谢谢。