推荐序一
干一行,爱“一行”

几年创业,几经浮沉,我又回到了编码一线,重拾写代码的乐趣。幸好当年读过几本经典图书打底,如今重操旧业,尚能游刃有余。感慨中刚好春雨兄找我为《Python一行流》作序,读来很有感触,堪比当年经典,便欣然应允。

其实我一直是“一行流”的爱好者。早在使用Python 2.3版本的时代,我便尝试如何用一行代码完成字符串里的字符排序,并将过程和结果记录在博客[1]上。虽然自从Python 2.4版本增加了sorted()函数后我的奇技淫巧便没了用武之地,但这种追求精确与极简的Pythonic哲学持续地影响着我,多年后我以改善Python程序为名出版了自己的第一本书。

与我的浅尝辄止不同,这本书把一行流当作了一个研究课题,所以整书极具体系。作者从Python语言、库和算法多个层面和角度去探寻更简明的代码写法,有助于读者建立深入挖掘语言特性的动力,最终提升读者的知识水平,写起代码如臂使指,“码”上生花。我曾在网上分享过一段利用数字图像形态学实现茶滤孔数计算的Python程序,需要80行代码,而网友Arkbird用一行mathematica代码完成了同样的算法[2],“我看不懂,但我大受震撼。”[3]读者们纷纷点赞。编写一行流的代码是一个“好程序员”的普遍追求,也是对语言、库和算法的掌握程度和编码能力的体现,阅读本书显然有助于此,读完本书后我编写了自己的“一行流”版本:

代码行数“浓缩”后,性能也提升了约37倍[4],同时自我感觉对Python语言、skimage库和数字图像算法的理解更进了一步。许多初学者入门后陷入不知道能用Python做什么的困惑,那么不妨读一下这本书,然后尝试把之前写过的代码改为“一行流”风格,应该能大有所获。

本书译者苏丹网名Su27,他是圈内驰名“文艺青年”,前几年一直听说他在写小说,搞文学创作。作为程序员长年混迹文青基地豆瓣网,这并不奇怪,奇怪的是他突然翻译了这本书。不过Su27毕竟是在Python的“黄埔军校”豆瓣团队中成长起来的,这对本书的品质提供了保障。这本书也印证了我的所想,整本书清晰明了,极有美感,加上作者精心编排的知识体系,读来如上云梯,愉悦中知识就得到了提升,是以为序。

赖勇浩

广州齐昌网络科技有限公司创始人兼总经理

《编写高质量代码:改善Python程序的91个建议》作者


[1] 网址见链接列表“文前1”条目,[python]一行搞定字符串排序。

[2] 网址见链接列表“文前2”条目,你都用Python来做什么?—laiyonghao的回答—知乎。

[3] 导演李安在纪录片《打扰伯格曼》(2013)里评价一部影视作品的话,后来成为网络流行语。

[4] 测试环境:MacBook Pro(15-inch,2016)16GB内存,macOS 11.3.1、Python 3.9.5、scikit-image 0.18.3;使用time命令测时3次取平均值,80行版本耗时约72.2秒,1行版本耗时约1.9秒,提速约37倍。