Flask 工作机会

最近在找工作,发现了一些和 Flask 相关的工作机会。因为目前并没有一个收集 Flask 相关职位的平台,所以就在 GitHub 上创建了一个仓库来分享这些职位,希望可以帮到其他正在找工作的 Flask 用户:

职位以 issue 的形式列出。目前列出来的几个都是和 Flask 关联非常大的职位,这里面有的我投递了申请(比如戴尔),有的收到了拒信(比如育碧),有的收到对方的面试邀请(比如 Dropbase)但并没有通过面试……所以这些职位都在开放中,如果你在找工作的话,尽管投递简历。同时也欢迎在投递之后回来分享面试进度/经历/经验。

如果你所在的公司正在招聘 Flask 相关的职位,或是你在未来发现某个公司发布新的 Flask 相关的职位,欢迎在这个仓库创建 issue 分享。创建 issue 时请遵循下面的格式要求:

  • 在标题注明「公司-职位-城市」,远程工作统一使用「Remote」。
  • 把职位描述里的 requirements 部分贴到 issue 内,并在最后给出职位详情链接。
  • 建议发布和 Flask 技术栈关联比较大的职位,不过 Python 相关的职位也欢迎。

顺便说一句,有很多 Python 相关的工作都会要求掌握某一种 Python Web 框架,类似这样的描述:

  • Good knowledge of web frameworks like Flask, Django, etc.

即使对应职位实际不用 Flask 也不用担心,当你掌握了某一种框架,其他的框架学习起来会非常容易,因为大部分的概念都是相通的。而面试时也会根据你擅长的框架提问,所以尽管申请就好。

祝大家都能找到自己喜欢的工作。

开始找工作

在过去的几年里,虽然也有过几次找工作经历,但都是被别人推荐后去试一试,结果无一例外全失败。不过,除了学历、英语和申请时间点的问题,这些失败的职位大都不是我的强项所在(Python/Flask)。这一次我决定主动起来,以自己擅长的方向出发,努力在 2022 年之前找到人生的第一份正式工作。

我想是时候了。我在写书这件事上很难挣到足够多的钱,不应该再抱有写出畅销书的幻想(至少短期内不可能),所以找工作才是下一步应该要做的事情,这样才能让写书和做开源项目这些事变得可持续。

我会在拿到第一个 offer 的时候开下面的薯片庆祝!

P.S. 这盒薯片的过期时间是 2022 年 7 月 14 日。两个星期以来,它已经陪伴我经历四场面试,收到一封拒信。


2021/12/29 Update:

终于拿到了 offer,撒花!开吃!

拍抖音不尴尬

今晚出去散步,火车经过的时候我举起手机录像。身边有几个路人走过来,这让我感觉尴尬,像是手机烫手。但是当走过的大妈对身边的同伴说——“拍抖音的”,我一下就释然了。

想起以前经常拿着相机到处拍。骑着自行车在各种村子里闲逛,拍那些不一样的房子,破旧的,畸形的,门前有着小花园的,墙上写了毛笔字的。拍那些在门口发呆的老头老太太们。也会在某个城市暴走,拍躺倒在路边的工人(别担心,只是在午睡),破旧的没人注意的角落,旧市场沿街二楼趴在窗户边的孩子。这些时候就会很在意别人的眼光,感觉自己像是一个在人流里停下,让时间变慢的那个人;或者是升旗时迟到,需要穿过所有的人走到第一排的人。担心被被拍摄的人发现,也担心被路人发现。

一定是这种尴尬心理阻碍了我成为一个青年摄影家或是纪录片导演。当然,也可能罪魁祸首是高二偷走我装满照片的 U 盘的凶手,毕竟我青年时代的伟大作品都在那个 U 盘里 :D。

而有的人就可以完全做到不在意别人的眼光。在南京的时候,有一次步行去超市,在路上看到前面的人举着手机走路,走着走着就停住了,走过很远回过头看他还在那里,仿佛被人凭空点了穴一样。不知道他在那里站了多久,会不会一抬头发现天已经黑了。很显然,他有自己的世界和宇宙。我很羡慕。

我想这种不在意别人目光的能力是需要培养的。这样的锻炼我不常有,还记得我做的最大胆的一次。那是和女朋友刚刚认识的时候。那一天是 8 7 日,之所以记得那么清楚,因为我们把这一天叫做哑巴日,不过后来就慢慢丢失了这个传统。那天我们在车站见了面,见面之后不知道为什么我们都没有说话,就看着对方傻笑。于是我提议今天作为哑巴日,谁都不许说话,谁先说话就算谁输。我们到了肯德基,面对面坐着,不说话,憋着笑比划手势。然后我决定迎接更大的挑战,所以主动去点餐,对着菜单指着一个汉堡,比出「2」的手势,店员错愕后点头并且投来关切的眼神。我们在沉默中吃完了汉堡。不过那天谁先说了话我已经记不起来了。

开始写作《Flask Web 开发实战》第二版

Flask Web 开发实战》第二版已经开始写作,计划在今年完成这本书。那本《Python Web API 设计与开发》一直拖着没写完,让我感觉很焦虑。因为拖得太久,HelloFlask 群聊里已经开始谣传我转行送快递了 :D。

所以我想先把《Flask Web 开发实战》新版完成,这样这一年我至少完成了三个年度目标中的一个。「优化」是我擅长和喜欢做的事情,除了要用 Word 写之外,我很乐意给这本书写新版。

内容变动

在各处收集了很多读者反馈和建议,综合我自己的规划,第二版主要有这些大的变动:

  • 不再兼容 Python 2.7,基于 Python 3.x、Flask 2.x。
  • 把大部分知识点集中到第一部分,让第二部分的示例程序内容更精简。
  • 第 1 章使用 pip+venv(+pip-tools) 或 PDM 替代 Pipenv,增加更多对 PyCharm 的介绍。
  • 第 6 章使用 Flask-Mailman 替代 Flask-Mail(同时引入介绍一些新的扩展,比如 Flask-Admin)。
  • 删除第 9、10、11 章(删除后 3 个实战项目),仅保留 Sayhello 和 Bluelog,删减项目的部分功能会合并到这两个项目。
  • 第 10 章删除实战项目,只保留 Web API 开发部分,会新引入 marshmallow 和 APIFlask。
  • 第 12 章添加异步任务相关内容。
  • 第 14 章添加 Docker 相关内容。
  • 删除第 15 章(Flask 扩展开发)。
  • 删掉一些在国内访问有问题的服务介绍,比如 SendGrid(第 6 章)、Heroku(第 14 章)、Twitter 第三方登录(第 11 章)。

大部分内容变动是在做删减,第一版 704 页,第二版内容会删减到 450 页左右。

代码片段

第一部分每一章都有一个示例程序,读者需要切换到每一个子文件夹运行,如果同时自己编写练习代码的话,很容易产生混乱。所以新版的考虑是,第一部分的示例程序不再给出可运行的示例文件(至少不在书里介绍),而是把所有的代码片段放到 HelloFlask 文档,以代码片段的形式组织。读者需要的话可以自己复制代码到本地运行。作为示例,第一章的代码片段可以在这里看到:https://docs.helloflask.com/book/4/snippets/c1/。因为前六章的代码片段变化不大,所以第一版的读者也可以使用这些文档。

P.S. HelloFlask 文档(https://docs.helloflask.com)是我最近刚创建的一个文档集合。所有和书相关的内容都会放到这里,比如勘误、代码片段、衍生文章等。后续也会在这里写一些扩展快速入门介绍、Flask 基础知识等 Flask 相关的东西。

书名

第二版因为有独立的书号,所以可以改书名。责编老师认为原书名就很好,换书名会浪费掉第一本书建立的品牌。我也基本同意这个观点。目前的考虑是主书名不变,出于营销的考虑,副书名或许可以加一个「Python」关键字,比如改成「Python Web 开发入门、进阶与原理解析」。

封面

目前这本书主页上的封面不是正式封面(我用画图软件在初版封面上随手涂了两笔 >_<)。目前的想法是把封面标题颜色换成深红色,然后换一个封面图案,不过暂时还没想好换成什么。

措辞

第一版是用 Word 写的,排版很痛苦,毕竟要在 Word 里面排版代码。第二版也要继续用 Word 写,而且更加痛苦,因为第二版的书稿是编辑老师用工具从 PDF 文件转制成 Word 的,大部分格式都变得很混乱。希望这是我最后一次用 Word 来写技术书。

对于第一版,我交的终稿和最终成书有一些内容的变化,编辑老师会修正错别字和一些病句。但是后面也发现有一些句子修改得并不合理,导致句子原意产生了变化。这次我会在出版前过一遍校正后的书稿,确保不会再出现这样的情况。

另外,编辑老师还会替换一些词汇用法,比如把「我」替换为「笔者」,这个笔者勉强能接受,但是笔者最不能接受的就是要把所有的「点击」改成「单击」。单击一个链接?这太奇怪了。今年和编辑老师再次沟通了这件事,事情终于有了变化,书中的「点击」在这一版不用再死板的按照出版社的规定修改为「单击」。新的读者不会被指导在网页上单击一个链接了。

周边开源项目

我的很多开源项目的开发都是写作驱动的,上一本书驱动我开发了那几个 Flask 示例程序和扩展,这一次同样会有一些开发计划:

  • APIFlask:补齐所有文档,发布 1.0 版本。
  • Bootstrap-Flask:添加 Bootstrap 5 支持。
  • Flask-CKEditor:添加 CKEditor 5 支持,同时集成新版本内置的 Markdown 支持。
  • Flask-WTF:添加多文件上传验证支持。
  • Sayhello:添加分页、多语言、Markdown 支持等功能(总之就是尽可能把删减的示例程序里比较有意思的功能合并到这里)。
  • Bluelog:把 Albumy 的除了图片相关的功能合并过来,会换一个名字(暂定 WeBlog),作为一个社交博客。

如果你对这本书的新版有其他建议和想法,欢迎提出。这两本新书相关的动态会发到 Twitter @helloflask 和我的公众号,欢迎关注。

和中学生们聊聊学习和使用 Python 的趣事

  • 录像:bilibiliYouTube
  • 嘉宾:王俊杰 / 胡博文 / Andy Zhou / Rice Zong
  • 主持人:李辉
  • 详情页:https://cn.pycon.org/2021/talks/young-pythonistas
  • 介绍:高中生和初中生们是怎么学习 Python 的?他们都开发了什么项目?他们未来会计划做程序员吗? 在这场圆桌里,一个高中生和三个初中生会一起聊一聊他们学习和使用 Python 的经历,以及他们的未来畅想。

这是 PyCon China 2021 第一天的一场圆桌讨论(PyHouse)。辛庆老师跟我说的时候,本来没打算参加,后来想到可以邀请我的两个小读者来聊聊,所以在前一天决定来策划和主持这场圆桌。

邀请的两个人一个是 Andy Zhou,他在六年级就开始学习 Python 了,初中时通过读我的书学习了 Flask,然后做了一个班级网站(博客程序 Flog),让同学们可以注册在上面写东西。另一个是陈绍坤(现在才想起来他似乎还在上六年级),知道他是因为他在一个知乎回答里介绍了自己学习编程的经历,而且提到有读我的书(文章?)。不过因为我在大会前一天才发出邮件,陈绍坤没来得及看到,看到邮件时圆桌讨论已经接近尾声……

第二天上午,Andy 的同学 Rice Zong 突然发邮件给我,做了一番相当正式的自我介绍,然后说想和我做朋友,原话是「我正式向你发出交朋友的邀请。希望你能接受这个朋友。」。哈哈,感觉好可爱(希望这样说他不会觉得冒犯)。他告诉我 Andy 跟他嘚瑟我发出去的圆桌邀请邮件,所以问我「作为初中生,如何才能参加 PyCon China 2022?就像 Andy 一样。」。看到最后这个问题,还没看清他说的是 2022,我就赶紧补了一封邀请邮件给他,这样我们就有了一位新嘉宾。再加上辛老师邀请的两位在上海现场的王俊杰和胡博文同学,四人成行。

我一开始准备了很多问题,但是几个人三下五除二就回答完了,而这时圆桌还剩一个小时。后面我已经不知道要说什么了,好在 Andy 和 Rice 实在是能聊,他们完全撑起了整场圆桌。再后来他们久仰大名的 Frost Ming 神秘现身;shell 叔给我们科普了很多法律相关的事情;现场的其他老师也加入进来聊起了网络安全……最后我实在坐不住了,只好把已经跑到月球的话题拉回来,给这场圆桌收了尾。这些跑题内容在最终视频里都剪掉了,要不然视频足足有两小时那么长。

也许是我笑点太低,不过和他们聊天真的非常开心,你很难不被他们的单纯和热情感染。希望明年可以看到他们几个来 PyCon China 演讲,期待明年的 PyCon China。

P.S. 这个视频是基于直播录屏的私人剪辑版本。视频中使用了冒险岛(MapleStory)的背景音乐 101 Building,我知道这样使用属于侵权,但我还是用了……版权属于 Nexon 公司。希望这是我最后一次未经授权使用版权音乐。

和捕蛇者说聊聊自由职业

上一次参加捕蛇者说播客不仅聊了 Flask 和开源(见《和捕蛇者说聊聊 Flask 2.0》),也聊了自由职业。这个话题分为上下集,上集是和 Flask 那一期一起录的,下集对相关话题作了更深入和完善的补充。欢迎收听,希望可以给你带来一些启发和帮助:

算起来今年是我自由职业第五年了,尝试找过几次工作,但都没有成功,最终还是从毕业一直待业到现在。除了播客里聊到的内容,关于自由职业相关的话题我还有很多想法,有时间会写一篇文章来总结这几年的经历。

最后,感谢 laike9m 邀请,也感谢捕蛇者说给我机会学习和练习剪辑播客(感谢 laixintao 教给我很多剪辑技巧)。这三期播客的录制、剪辑(还有学习剪辑)加上写 show notes 以及两篇分享文章,一共花费了 64 个小时多一点。在第三期时,主播们还把播客后台权限开放给我,让我自己完成了播客的上架和发布。总之是一次非常有趣的体验。欢迎访问捕蛇者说的主页和 Twitter 了解关于它的更多信息。

2021 年 Flask 用户调查报告

七月份创建了一个 Flask 用户调查问卷,到目前为止一共收集到 104 份提交,感谢各位的参与!这篇文章会对问卷收集结果做一个总结,作为一份(非官方的)2021 年(104 位中国)Flask 用户调查报告。

如果你想自己看原始数据,下面是剔除了隐私信息的问卷提交数据文件(CSV 格式):

https://helloflask.com/downloads/flask_report_2021.csv

blank

如果你现在还想参与的话,完全来得及,下面是问卷的地址:

https://jinshuju.net/f/UY6Rd8

你在工作中使用 Flask 吗?

在提交的 104 份问卷里,接近一半的人在工作中使用 Flask,详情如下:

你在工作中使用 Flask 吗?

算上我,还没找到工作的人竟然只有 5 个(《震惊!某份民间调查显示 Flask 用户无业率仅有 4.8 %!》:P)。

Flask 中文文档标语翻译

前段时间发起了 Flask 中文文档翻译,目前正在龟速进行中,欢迎英语比较好的同学参与(翻译或审核已经提交的 PR)。文档首页的 logo 图片里有一句标语——「web development, one drop at a time」,我临时翻译为「Web 开发,一次一滴」。在 GitHub 仓库的讨论里,大家给出了更多更好的备选项。根据这次问卷投票的结果,「Web 开发,起于点滴」排在第一位(由 HelloFlask QQ 群里一位翻译专业的同学翻译),详情如下:

Flask 标语翻译

更保险的选择是「不作翻译」,在投票中排在第二位,最终我会考虑从这两者之间选择。另外,如果翻译的话,如果翻译的话,「Web」会考虑按照英文近年的惯用趋势而使用全小写(你觉得呢?​)。

P.S. 在 GitHub 上的投票结果里,@abersheeran 翻译的「Web 开发,起自微毫」和「任取随用的 Web 框架」票数最高

对 Flask 的新功能请求 & 改进建议

剩下几个问题不方便详细统计和展示,我粗略看了一遍,整理出了关注度最高的几件事。我一一在下面评注了我的想法以及相应的动态。

添加更多 Web API 开发支持

开发接口时自动生成swagger

对 Web API 很友好的支持

加入pydantic用于类型检查

Flask 作为一个通用型框架,不会添加太多关于 Web API 这种细分方向的支持。除了手动集成这些功能/工具,你可以考虑选择基于 Flask 而且集成了这些功能的二次框架,比如 APIFlaskflask-smorestSpectree 等。

添加基于 ASGI 的异步实现

加强对异步的支持

异步支持的不是很成熟

可能是速度吧,据说现在很多新框架都比Flask快,要淘汰Flask云云

Flask 目前的异步支持已经能够满足大部分使用场景。据我所知,基于 ASGI 的异步支持短期内不会实现。

而对于鼓吹性能的文章可以不用太在意:异步和高性能不直接划等号。技术选型不会只考量性能。benchmark 未必客观和能够反映真实情况。如果对异步有强需求,可以考虑用和 Flask 相同 API 的 Quart(一个 Flask 的 ASGI 异步实现),或是换用其他异步框架。

官方维护的扩展列表

一个针对新手的 flask extension 的指南

由Pallets Projects开发团队的成员或者flask官方统一所有第三方插件的开发与发布,目前太乱了,有些都快停更十年了,还占用名字。

各种插件扩展选择太多,但是又质量层次不齐,此外很多个人维护的扩展可能由于开发者精力有限在后期会出现项目生命周期的问题,如:flask_restful,需要官方对常用扩展维护一套比较简洁的扩展。当然这样的话可能又走上了Django的老路,可能作者正在计划的“Flask扩展收容计划”是一个不错的选择,起码可以管理起来。但是脱离原作者维护的项目后期发展如何又成为另一个话题。比如需要对插件进行遴选,另外需要对该计划由官方进行宣传等

这件事我之前有计划在做,前段时间注册了 flaskextensions.org,想用来做一个这样的扩展推荐列表。在 Pallets 会议上沟通之后,决定交给 Pallets 官方来做,所以把域名转给了 Pallets 团队,后续会做一个这样的列表出来:列出来推荐的 Flask 扩展,并给出失去维护扩展的替代品。

另外 Pallets 在 GitHub 创建了一个 pallets-eco 组织,用来收纳失去维护(维护者不想再继续维护)的流行 Flask 扩展,让它们保持健康的维护状态(由社区维护)。目前有两个扩展进入这个组织,分别是 Flask-CachingFlask-OpenID

脚手架工具和大型项目组织

统一并明确开发的工程化流程,包括项目应该新建那些文件夹等。

缺少小白懒人快速一键生成集成框架(webadmin, mysql)

引入蓝图想搞玩大型项目,可大型项目又需要自己组织好项目结构,需要一个对flask很熟悉的人做这事 还不如用django。官方推一个脚手架生成项目模板吧像vue-cli一样 包括是否使用orm等插件,不然还不如django搭建起来快。。

作为一个微框架,Flask 的初衷是不限定项目文件组织形式,所以官方不太可能会出一个脚手架工具或是项目组织指南。在工厂函数和蓝本这两个概念的基础上,你可以自由组织你的项目。另一方面,市面上已经有很多项目模板或是脚手架工具(比如 cookiecutter-flask),也有很多介绍 Flask 项目组织的文章,你可以根据这些工具和文章制定自己的规则,然后为你的组织或团队确定一个项目组织规范或是写一个脚手架工具,或许这才是 Flask 的「正确食用方式」。如果你更需要一个固定的项目组织模式,那么 Django 或许是更好的选择。

我也有计划写一个更简单的脚手架工具(对我来说市面上那些都太复杂,引入了太多扩展和工具),同时给出一份 Flask 项目组织建议,这件事也许会在写《Flask Web 开发实战》第二版的过程里完成。

Bootstrap-Flask 的 Bootstrap 5 支持

Bootstrap-Flask 希望可以早点同步 Bootstrap5 的相关内容。因为Bootswatch的最新版本有我想要使用的组件,但是Bootstrap-Flask只支持到Bootstrap4,所以有些宏无法正常显示,比如render_form等。还有希望Bootstrap-Flask的wiki能够更加的完善和细节,我会持续关注,大佬辛苦

提交的问卷里有一条说到这件事,此前在 TwitterGitHub 上也有人提到,所以也放到一起说一下。我已经在做这件事了,基本的 Bootstrap 5 支持已在 #161 完成,完整的实现会在下个月完成(详见 #162),届时会随 2.0 版本发布。

除了这些,提交的问卷里还有很多其他的建议和问题,我没法一一回应。有时间我会看看问题里提出的问题有哪些我可以试着解决和改善。同时也欢迎你一起尝试解决这些提出的问题,感兴趣的话,去翻翻上面给出的问卷数据吧。

总结

总体来看,Flask 社区在朝着好的方向发展,希望明年这里提到的大多数计划都会有着落。一起加油!

P.S. FlaskCon 2021 会在今年 12 月举办,如果你有 Flask 相关的内容想分享,欢迎报名(英文,预录制演讲)。


相关链接:

欢迎填写 Flask 用户调查问卷

以参加捕蛇者说播客录制 Ep 30 为契机,创建了一个 Flask 用户调查问卷,用来收集 Flask 用户的反馈和建议。尽管这个问卷是由我个人而不是 Flask 官方(Pallets)发起(不过 Flask 官方也在计划着做一个调查问卷),但是我会把收集到的信息反馈到 Flask 开发团队进行讨论。因此,你的建议的确有可能让 Flask 变得更好。

不管你对于 Flask 是有明确的变动建议,还是只是对某个功能不甚满意,都可以把你的想法写下来。谢谢!

问卷地址:https://jinshuju.net/f/UY6Rd8


同时借这个问卷送出四本《Flask Web 开发实战》,填写问卷即可参与。每份问卷会有一个提交序号,中奖序号为 27、36、41、58。预计抽奖会在 7 月 22 号完成,届时抽奖结果会更新到这篇文章。

7 月 21 日更新,抽奖结果已产生:

blank

和捕蛇者说聊聊 Flask 2.0

六月初,应 laike9m 邀请做客捕蛇者说录了一期播客。今天中午发布了上半部分:Ep 30. 和李辉聊聊 Flask 2.0,关于自由职业的下半部分正在剪辑中,预计八月初发布。

这是我第一次录播客。录制那一天,房间里还没有装空调,而开风扇会导致风声录进去,我只能用静静降温法;为了防止录进邻居打骂孩子的声音,我又把门窗闭紧,所以录到临近中午,感觉越来越热。一开始还有点紧张和兴奋,但是我从来没有和别人聊过两小时那么久,录到后面,我就像漏气的气球一样,慢慢瘪了下去。

七月初拿到剪好的第一期,觉得可以再优化一下,所以就自告奋勇再剪一遍。花了接近十个小时,剪掉了很多「呃」、「嗯」、「对」、「然后」、「所以」……在这个过程里也发现不少自己说话上的毛病。

这一期上半部分聊了我从学习 Flask 到成为维护者的经历,这些在 19 年的 COSCUP 演讲简单介绍过。下半部分关于自由职业本来有不少内容想聊,但是因为说太多话有点累,所以有一些漏掉的话题就没有再提出来。录完的这些天有时会突然想到一些很有趣但忘记说的事情,偶尔还会想要不要再约着录一个补丁,也计划着写文章作补充。另外这一期虽然聊到了 FastAPI,但我对它了解并不多,如果有机会的话,以后还想再录一期详细聊聊 FastAPI 和 APIFlask,或是再聊一聊技术写作、翻译和演讲。

最后,如果你用过 Flask,欢迎来填写这个 Flask 用户调查问卷。关于捕蛇者说播客的更多信息,可以访问它的主页Twitter 了解。

下期:和捕蛇者说聊聊自由职业

欢迎来 GOTC 大会听我的演讲

GOTC(The Global Opensource Technology Conference,全球开源技术峰会)是由开源中国(OSCHINA)和 Linux 软件基金会(The Linux Foundation)联合主办的开源技术大会。上海站(上海世博中心 SECC)在 7 月 9 日 ~ 7 月 10 日举办;深圳站(深圳会展中心)在 7 月 31 日 ~ 8 月 1 日举办。大会邀请到很多非常厉害的开发者,比如 Linus Torvalds。两个会场均免费开放,仅需报名即可。欢迎参加!

我的演讲主题是《基于 Python 的 OpenAPI 实践》,介绍如下:

OpenAPI(原 Swagger)是一个流行的 REST API 描述规范,围绕它有许多非常实用的 Web API 开发工具。而 Python 是一门流行的编程语言,使用它可以非常高效地开发 Web API。这个议题将会以 OpenAPI 的入门介绍开始,探索如何在流行的 Python Web 框架中实现 OpenAPI 支持,并在最后介绍一些现有的解决方案和工具。

这个演讲基本上是正在写的《Python Web API 设计与开发》第八章的内容概括 + 开发 APIFlask 的一些想法 + 周边项目(FastAPIConnexion 等)研究总结。暂定大纲为:

  • OpenAPI 介绍
  • Code-first 模式(从 Python Web 框架代码生成 OpenAPI spec)
  • Design/API-first 模式(从 OpenAPI spec 生成 Python Web 框架基础代码)

我的演讲在深圳站第一天分会场「编程语言艺术」专题论坛。如果你感兴趣的话,欢迎来听;如果对演讲内容有任何建议,欢迎提出。

中场休息

今天在捕蛇者说录制了第一个播客,聊得很开心,虽然有时不知道自己在说什么……一开始还有点紧张,感觉像是在进行一场面试,而且一次来了四个面试官(大概是因为我已经很久没有这样跟别人聊过天了)。这次节目也让我偶尔想象做一个自己的播客,它大概会叫做「真实人类计划」,专门随机采访各种陌生人(尤其是活得不开心的那些人)。经过这一阵疲惫之后,刚好一年过半,是时候来一个中场休息了。

漫天的杨絮一飘完,天气就开始热了起来。西边的房间到下午就会被午后的太阳晒成桑拿房,所以我又搬回了冬天会被冻得头疼的东边的房间。院子外的蔷薇花开得非常鲜艳(不过下图里花已经快要谢了),我帮忙授粉的猕猴桃也结了非常多的果子,另外我还有幸参与了(一点点)今年的出蒜、种花生和种山芋活动。

blank

这半年来,家里的饮水机、洗衣机、楼下的莲蓬头和电视、厨房的灯泡都接连坏掉。因为爸不在家,所以我只好买了新的饮水机,但是洗衣机还是扔在一边,只能用来脱水。前段时间终于得知爸要回来了,我就去打印了一个欢迎横幅(「热烈欢迎李**同志回家!」),在院子里提前一周挂上,邻居们还以为我要结婚了。

虽然家人希望我有一个稳定的工作,但我如果可以一年写一本书,那就可以生活的很好不用找工作(基于暂时不结婚没孩子不买房和车的前提)。糟糕的是,我已经在一本书上耗了两年了,我想我可以给自己起一个新的笔名——「拖稿李天王」。两年里,大多数时间都偏离了写作这个主线,把精力过多的分散在了能够获得短期回馈的事情上,比如外包项目、演讲和开源。

我决定明天休息一天 ,然后开始专注写作。接下来的目标是:十月前完成《Python Web API 设计与开发》初稿,十月底交稿。