众咖云集的 PyCon 2019 上海站,大佬们都讲了啥
9 月 21 号周六,我参加了 PyCon China 2019 上海站,这是每年一届的 Python 中国开发者大会。
今年的上海站比往年的阵容扩大很多,「流畅的 Python」作者、Flask 作者及核心维护者、PyCharm 开发者等等大佬都登台演讲。
本文将总结一下我观看的演讲,但并不会深入和完整,如有感兴趣的主题,可以等待官方后续放出的视频,我的公众号到时候也会转载。
Python 的永恒之美
「流畅的 Python」作者 Luciano Ramalho,作为首场演讲的嘉宾,他的讲题围绕着 Python 之禅(PEP 20: The Zen of Python),结合了国际象棋、围棋、甚至易经,再次诠释 Python 语法的优美之处。
他还表示 Python 非常适合女性开发,介绍了 Python 开发团队拥有很多女性加入,顺带调侃了 Python 作者 Guido 在演讲中只回答女性的提问。
通过 Azure 实现图片分类
第二场是由微软开发者 Dave Glover,介绍如何使用 Python 与微软 Azure 的免费云服务,构建一套 IoT 图片分类系统,并演示了开发一个水果分类功能,将不同水果的图片进行简单训练后,就可以用于超市收银台快速计算不同水果的价格(不过现场似乎因为音画不同步,导致有些小意外...)。
另外下午场微软 VS Code 还现场发布了在 Python 领域的新功能,具体可见公众号次条推送。
AWS Serverless 一站式开发
结束了前两场英语听力后(翻译在文末吐槽),第三场是来自宝岛台湾的谢洪恩,他是 AWS 无服务器与容器专家解决方案架构师。他介绍了 AWS 近几年在 Serverless 领域发布的新技术,主要包括:
- AWS Lambda
- AWS SAR(Serverless Application Repository)
- AWS CDK(Cloud Development Kit)
利用这些技术让 Python 开发者在无服务器的情况下,完成一站式开发部署(也支持其它多种语言),并且还介绍了在微服务框架中的应用。
另外在下午场中,谢老师还进行了三个小时的 AWS WorkShop 专场,现场指导开发者们,在 AWS CDK 中从零开始完成一个完整项目。但可惜由于时间冲突,我没有选择参加。
Flask 作者谈调试
Flask、Werkzeug、Jinja2、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 数据中台与 Python
下午场都是同时开始的分会场,所以我只能选择听自己感兴趣的场次。
最近两年“中台”概念比较火,我公司也已经有中台,所以我首场选择了这个中台话题的场次,嘉宾是来自阿里云日志服务的丁来强。
他演讲的内容主要是介绍目前市面上众多 AIOps 平台,并介绍如何通过开源的 AIOps 搭建数据中台,来解决数据收集、算法处理海量日志等以往需要大量人工的问题。
至于 Ops 的未来趋势,他表示:
根据 Gartner 的报告,AIOps 将在未来 5-10 年落地开花,并集中统一各种 Ops 平台(Dev、IT、Net、Sec)。
Django 中运用 GraphQL
先介绍一下 GraphQL,它是 Facebook 发布 API 查询语言,旨在提供 RestFul 架构体系的替代方案,但一直鲜有人用,甚至鲜有人知。
目前 RestFul API 存在的问题是,返回的数据结构和类型都是后端定义,前端需求变化,后端也要随之改变,如果是中大型项目,改动接口是会产生大量连带工作量。
而 GraphQL 就是解决这一痛点,它实现了前端可以自定义请求字段与结构,而后端则专心处理请求逻辑与数据库映射。具体不再多介绍,可查阅相关资料。
LeetCode 后端架构师李齐雨,介绍了 LeetCode 在最近两年,已经将十几万行 Django 代码构成的所有接口,更换为了 GraphQL。
更换后的好处则如上面所介绍,让接口迭代更加灵活。他主要分享的是期间遇到的一些问题,以及如何攻克,比如数据转换、查询性能优化等。
不过他也直言,如果对接口性能要求很高,建议暂时不要使用 GraphQL。
构建自动化测试集群
这一场是网易 Airtest 团队负责人杨柳,前半部分是介绍 Airtest 这一开源的自动化测试框架,在跨平台特别是 App、手游这方面的优势,框架集成的图像识别、控件识别大幅增加了自动化能力。
后半部分是分享网易游戏如何将自动化测试逐步扩展为大规模测试集群,并且介绍了如何使用 3x4 小型机柜,实现一个企业级、私有化的测试解决方案。
通过 Python 构建 RPC
来自饿了么的资深工程师张汝家,先是介绍了 thrift 这一款 RPC 协议,在目前微服务架构中的应用,以及目前 Python 实现的 thriftpy 和 thriftpy2 的区别和各自的应用场景。
然后他分享了使用 thriftpy 构建一套 RPC 协议架构的过程,中间不同分层该如何设计,并且其中一些通信与传输问题是如何解决的。
闪电演讲
最后的场次,是本届 PyCon 设置的新环节,每位嘉宾只有 5 分钟时间演讲,可惜部分嘉宾超时未完成演讲,实际效果欠佳。
不过有一个印象深刻的主题是将 C/C++ 代码转换为 .pyd 文件,Python 可直接调用。
演讲者是上海韦纳科技的韦泽华,他实现了此功能并开源名为 c2py,该项目与之前类似功能的 Swig 相比,c2py 更加易用,不需要像 Swig 写接口文件,just run c2py & build。
本次大会的观后感
相较于往期有非常大的进步,主要是:
- 本届大咖云集,通过多位著名项目核心开发者的分享,学习他们在各自领域中独到的见解;
- 分会场的设立,充分扩大了演讲的主题范围,也满足了不同方向的开发者不同的关注点。
但依然有部分遗憾之处,比如:
- 第一场半程,某赞助商的 AI 翻译就莫名罢工,并且一上午都没有再启动,导致我等英语苦手,对三位国外大佬的演讲吸收量大减;
- WorkShop 设置在下午分会场,如果选择了就相当于无缘同时间段的三场演讲,纠结之下我只能放弃参与。
总体本届还是收获满满,票价超值了,也看出主办方想办好 PyCon China 的决心,希望明年再加油,PyCon 明年见!
所有图片来自 PyCon China 官方拍摄
本文属于原创内容,首发于微信公众号「面向人生编程」,如需转载请在公众号后台留言。
关注后回复以下信息获取更多资源
回复【资料】获取 Python / Java 等学习资源
回复【插件】获取爬虫常用的 Chrome 插件
回复【知乎】获取最新知乎模拟登录
众咖云集的 PyCon 2019 上海站,大佬们都讲了啥的更多相关文章
- 速石科技携HPC混合云平台亮相AWS技术峰会2019上海站
2019年6月20日,全球云技术盛会——AWS技术峰会2019(上海站)在上海世博中心举行.作为AWS的技术合作伙伴,速石科技携旗下基于混合云的一站式高性能计算(HPC)平台首次公开亮相. 速石科技向 ...
- 大咖云集!IMWebConf 2017 前端大会即将在深圳盛大开幕
2017年火热的夏季,一年一度的IMWebConf强势来袭!9月16日,深圳科兴国际会议中心,我们将全心全意打造一场前端盛宴,恭候各位的光临. 作为一名前端老鸟,笔者有幸也参与了本次的大会的主题分享& ...
- 大咖云集!Kubernetes and Cloud Native Meetup 深圳站开始报名!
由阿里技术生态联合 CNCF 官方共同出品的 Kubernetes & Cloud Native Meetup 将在 8 月 31 日来到深圳.届时,阿里云.蚂蚁金服高级技术专家将携手来自国内 ...
- 2019年JVM面试都问了什么?快看看这22道面试题!(附答案解析)
一. Java 类加载过程? Java 类加载需要经历一下 7 个过程: 1. 加载 加载是类加载的第一个过程,在这个阶段,将完成一下三件事情: • 通过一个类的全限定名获取该类的二进制流. • 将该 ...
- 2019年的代码都写完了吗?不如做个Python进度条看看还剩多少
我们都知道,进度条是用来直观展示流程所需时间的优秀工具,以免我们担心流程会突然挂掉,而且我们可以用它来预测代码运行是否正常,借助进度条,每个人都能直观地看到脚本最新的进展情况. 如果你之前没用过进度条 ...
- hihoCoder挑战赛29
多打打不同的比赛,找经验啊 题目4 : 不上升序列 时间限制:40000ms 单点时限:2000ms 内存限制:256MB 描述 给定一个长度为 n 的非负整数序列 a[1..n]. 你每次可以花费 ...
- 邀您共赴数据库学术顶会ICDE 2019——阿里云专场 零距离接触达摩院数据库“最强大脑”
摘要: 当学术大家遇到技术大拿,会碰撞出怎样的火花?为进一步加深产学研学术交流,阿里云将于ICDE 2019大会期间(4月9日)举办以“云时代的数据库”为主题的技术专场(Workshop) 作为全球数 ...
- 2019年终总结:10场演讲、内推20人、公众号2万粉丝、Code Runner 1000万下载
2019年是值得记录的一年,成长许多,也收获许多. 做了 10 场大会的技术演讲,成功内推 20 人拿到微软 Offer,知乎 Live 2000 听众,公众号 2 万粉丝,GitHub 2万 sta ...
- $2019$各种$WC$没去记
\(2019\)各种\(WC\)没去记 太弱了去不了啊. 至少我联赛没退役是吧...(退役感++ 不过这个分数线还是有点让人自闭啊,划线人绝对有毒,有人关照一下空巢老人\(mona\)喵? 这里大概是 ...
随机推荐
- 在vue.js引用图片的问题
<div id="img"> <img src="img.png" class="img"> </div> ...
- Java生产者消费者的三种实现
Java生产者消费者是最基础的线程同步问题,java岗面试中还是很容易遇到的,之前没写过多线程的代码,面试中被问到很尬啊,面完回来恶补下.在网上查到大概有5种生产者消费者的写法,分别如下. 用sync ...
- maven构建springmvc过程中遇到的一些问题
1.spring的配置文件,xsd不要配版本号 2.spring配置datasource的三种方式 3.springmvc与spring扫描注解的冲突 4.NoClassDefFoundError: ...
- 牛客暑假多校第二场 F trade
题意: 白兔有n个仓库,每个仓库有啊ai个货物,在每个仓库白兔可以装上任意数量的货物,也可以卸下任意数量的货物,现在有k个圆形信号阻隔器,然后有m个顾客下个一个订单,每个顾客的收货量有一个上限, 在每 ...
- poj 3468 A Simple Problem with Integers(原来是一道简单的线段树区间修改用来练练splay)
题目链接:http://poj.org/problem?id=3468 题解:splay功能比线段树强大当然代价就是有些操作比线段树慢,这题用splay实现的比线段树慢上一倍.线段树用lazy标记差不 ...
- yzoj P1948 取数字问题
题意 sb题目,不多说,爆搜就能过. 代码 #include<bits/stdc++.h> using namespace std; int n,m,ans=1<<30,a[1 ...
- Java微服务(一):dubbo-admin控制台的使用
1.环境准备 使用CentOS7+Docker+Zookeeper3.4.10搭建dubbo微服务 1.1.安装docker容器 (1).uname -r:docker要求CentOS的内核版本高于3 ...
- 快速构建第一个Flink工程
本文简述通过maven和gradle快速构建的Flink工程.建议安装好Flink以后构建自己的Flink项目,安装与示例运行请查看:Flink快速入门--安装与示例运行. 在安装好Flink以后,只 ...
- 2018 Multi-University Training Contest 3(部分题解)
Problem F. Grab The Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Ja ...
- Altera Quartus II 15.0安装
写在前面的话 开始学习之前,我们首先应该选择并安装好自己的开发工具,那么我们用什么软件来编译代码呢?梦翼师兄推荐给大家的是Altera 目前最新的Quartus II 15.0 版本,当然啦,这 ...