5月初看到征文活动,我想到的第一本书就是《Flask Web开发:基于Python的Web应用开发实战》,这是我今年读的最多的一本书,也会是印象最深的一本书(没有之一)。前一段时间看到此书关于第二版的相关信息,非常期待,编辑说预计今年7月出版,到时候一定再买一本支持。

之前学习Python,但都没有具体到项目,偶尔写一些工作中用到的小脚本、写写爬虫。今年3月企鹅云有活动,可以以很优惠的价格购买云服务器,就想认真的写一个博客于是又读到这本书。读到第六章的时候需要通过手机短信配置邮件客户端获取授权码,然后发了条短信,发现这个收件人已经存在,而且上一条短信是2016年7月发的。两年的时间过去了,我居然又回到了这里,顿时有些感慨。以前读过因为没有太多实践再次阅读这本书居然没有太多印象,书还是很新,翻开每一章都成如初次见面。于是在4月5月把这本书又反复读了好几遍,代码也敲了一遍又一遍。

有很多人推荐这本书,因为这本书在国内绝对是Python web开发的第一本书。内容由浅入深,从一个基础项目扩展到一个实战项目再深入到测试及部署的有关问题,可以说非常全面了。现在回想一下当时读这本书之所以没有太多印象很大一部分原因是因为当时读的时候都是直接git checkout源码运行,觉得跑起来就行了,其中涉及的前端及HTTP知识并不理解,知识不够全面导致的。今年再看的时候由于已经有了HTML/CSS/JS、前端库和框架的了解,每一个章节的代码都认证的敲了好多遍,所以于模板、ORM、flask-login、blueprint等于有了更深的理解。当然,中间少不了踩坑、走弯路的过程,我还记得第一次用Gunicorn把项目真正的部署到企鹅云时的感觉,那真是太棒了。

几天前和一个同事聊关于读书这件事,他说:每一本书都像一个朋友,陪你走过一段不一样的时光。但是我觉得一本真正的好书,有价值或有意义的好书,更可以陪你走未来的时光。当你读完了一本书,一读再读的时候,这本书会融入你的身体,成为影响你思考的力量。最近在学着写小程序,用flask做后端,这种感觉很棒,偶尔会有这样一种感觉,代码随着指间的跳跃,仿佛是从身体里流出,很熟悉的感觉。

相对于我喜欢的另一项运动:跑步,写代码是另一个极端。跑步的时候对手是自己,无论是10公里、马拉松、还是越野跑,无论有多少参赛选手,在什么样的跑道,要对抗的只有身体的不适和内心的声音,你能感觉到的只有自己的呼吸、心跳和跑鞋落地的声音。所有要做只有坚持、坚持完赛、坚持取得最好的成绩,坚持就是胜利。但写代码很不一样,写代码的时候你会遇到很多问题,这个怎么会有错误,要尝试怎么解决,去使用搜索引擎查看是否有好的方案。这个代码很好,能不能写个函数或者对象,不要忘了注释,很多时候写的时候你和上帝都懂这个代码是什么意思,但过一段时间再看可能就只有上帝一懂这个代码是什么意思……如果说跑步是专一,是单线程,那么写代码就需要多线程,从template切换到static再到sqlachemy,你要考虑到代码的复用性、可读性等。你可能会多次回头,重写代码,你很少看到一场马拉松比赛有人从中途往回跑,跑步只有一个终点,当然写代码的时候终点是不存在的……

其实在群里看到这个公告的时候就想写,忙是一方面,主要还是拖延症晚期……想着还有一周的时间、还有一天的时间,好吧,现在还有不到一个小时的时间。

总之,我非常感谢作者写了这样一本书,我也向很多朋友推荐了这本书,最近Flask有了一个比较大的版本升级1.0,相对于之前的版本有了很多新功能,有时间的话会去读官方文档,再次翻开这本书,开卷有益,总有收获。