9 月 21 号周六,我参加了 PyCon China 2019 上海站,这是每一年一届的 Python 中国开发者大会。前端
今年的上海站比往年的阵容扩大不少,「流畅的 Python」做者、Flask 做者及核心维护者、PyCharm 开发者等等大佬都登台演讲。python
本文将总结一下我观看的演讲,但并不会深刻和完整,若有感兴趣的主题,能够等待官方后续放出的视频,个人公众号到时候也会转载。git
「流畅的 Python」做者 Luciano Ramalho,做为首场演讲的嘉宾,他的讲题围绕着 Python 之禅(PEP 20: The Zen of Python),结合了国际象棋、围棋、甚至易经,再次诠释 Python 语法的优美之处。github
他还表示 Python 很是适合女性开发,介绍了 Python 开发团队拥有不少女性加入,顺带调侃了 Python 做者 Guido 在演讲中只回答女性的提问。算法
第二场是由微软开发者 Dave Glover,介绍如何使用 Python 与微软 Azure 的免费云服务,构建一套 IoT 图片分类系统,并演示了开发一个水果分类功能,将不一样水果的图片进行简单训练后,就能够用于超市收银台快速计算不一样水果的价格(不过现场彷佛由于音画不一样步,致使有些小意外...)。数据库
另外下午场微软 VS Code 还现场发布了在 Python 领域的新功能,具体可见公众号次条推送。编程
结束了前两场英语听力后(翻译在文末吐槽),第三场是来自宝岛台湾的谢洪恩,他是 AWS 无服务器与容器专家解决方案架构师。他介绍了 AWS 近几年在 Serverless 领域发布的新技术,主要包括:后端
利用这些技术让 Python 开发者在无服务器的状况下,完成一站式开发部署(也支持其它多种语言),而且还介绍了在微服务框架中的应用。性能优化
另外在下午场中,谢老师还进行了三个小时的 AWS WorkShop 专场,现场指导开发者们,在 AWS CDK 中从零开始完成一个完整项目。但惋惜因为时间冲突,我没有选择参加。服务器
Flask、Werkzeug、Jinja二、Click 等开源项目的做者 Armin Ronacher,讲述他在 Python 调试方面的新见解,并经过最近使用 Rust 语言的开发经历,发现了 Python 在性能上较慢反而对调试有帮助。
遗憾的是他英语语速很快,PPT 文字内容也比较少,我并无听懂太多细节,须要等待视频再复习一波。
上午最后一场,是由 Google 软件工程师、《捕蛇者说》播客创始人 laike9m 演讲,一样是调试的话题,但他带来的是一个新思路,以及已经实现的开源库 —— Cyberbrain。
主要思路是对目标变量进行追踪,经过可视化界面查看变量从初始化一直到目标行的过程,从而帮助快速定位 BUG。
如下是一段示例代码:
def func_f(bar):
x = len(bar)
return x
def func_c(baa):
baa.append(None)
baa.append('?')
def func_a(foo):
for i in range(2): pass
ba = [foo]
func_c(ba)
foo = func_f(ba)
cyberbrain.register(foo)
import cyberbrain
cyberbrain.init()
fo = 1
func_a(fo)
复制代码
经过对 foo
变量的注册,能够产生如下输出:
而且支持持久化存储,即便在服务器上也能够 DEBUG。
下午场都是同时开始的分会场,因此我只能选择听本身感兴趣的场次。
最近两年“中台”概念比较火,我公司也已经有中台,因此我首场选择了这个中台话题的场次,嘉宾是来自阿里云日志服务的丁来强。
他演讲的内容主要是介绍目前市面上众多 AIOps 平台,并介绍如何经过开源的 AIOps 搭建数据中台,来解决数据收集、算法处理海量日志等以往须要大量人工的问题。
至于 Ops 的将来趋势,他表示:
根据 Gartner 的报告,AIOps 将在将来 5-10 年落地开花,并集中统一各类 Ops 平台(Dev、IT、Net、Sec)。
先介绍一下 GraphQL,它是 Facebook 发布 API 查询语言,旨在提供 RestFul 架构体系的替代方案,但一直鲜有人用,甚至鲜有人知。
目前 RestFul API 存在的问题是,返回的数据结构和类型都是后端定义,前端需求变化,后端也要随之改变,若是是中大型项目,改动接口是会产生大量连带工做量。
而 GraphQL 就是解决这一痛点,它实现了前端能够自定义请求字段与结构,然后端则专心处理请求逻辑与数据库映射。具体再也不多介绍,可查阅相关资料。
LeetCode 后端架构师李齐雨,介绍了 LeetCode 在最近两年,已经将十几万行 Django 代码构成的全部接口,更换为了 GraphQL。
更换后的好处则如上面所介绍,让接口迭代更加灵活。他主要分享的是期间遇到的一些问题,以及如何攻克,好比数据转换、查询性能优化等。
不过他也直言,若是对接口性能要求很高,建议暂时不要使用 GraphQL。
这一场是网易 Airtest 团队负责人杨柳,前半部分是介绍 Airtest 这一开源的自动化测试框架,在跨平台特别是 App、手游这方面的优点,框架集成的图像识别、控件识别大幅增长了自动化能力。
后半部分是分享网易游戏如何将自动化测试逐步扩展为大规模测试集群,而且介绍了如何使用 3x4 小型机柜,实现一个企业级、私有化的测试解决方案。
来自饿了么的资深工程师张汝家,先是介绍了 thrift 这一款 RPC 协议,在目前微服务架构中的应用,以及目前 Python 实现的 thriftpy 和 thriftpy2 的区别和各自的应用场景。
而后他分享了使用 thriftpy 构建一套 RPC 协议架构的过程,中间不一样分层该如何设计,而且其中一些通讯与传输问题是如何解决的。
最后的场次,是本届 PyCon 设置的新环节,每位嘉宾只有 5 分钟时间演讲,惋惜部分嘉宾超时未完成演讲,实际效果欠佳。
不过有一个印象深入的主题是将 C/C++ 代码转换为 .pyd 文件,Python 可直接调用。
演讲者是上海韦纳科技的韦泽华,他实现了此功能并开源名为 c2py,该项目与以前相似功能的 Swig 相比,c2py 更加易用,不须要像 Swig 写接口文件,just run c2py & build。
相较于往期有很是大的进步,主要是:
但依然有部分遗憾之处,好比:
整体本届仍是收获满满,票价超值了,也看出主办方想办好 PyCon China 的决心,但愿明年再加油,PyCon 明年见!
全部图片来自 PyCon China 官方拍摄
本文属于原创内容,首发于微信公众号「面向人生编程」,如需转载请在公众号后台留言。