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[1]。
主要思路是對目標變量進行追蹤,通過可視化界面查看與該變量相關的操作過程,從而幫助快速定位 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[2],該項目與之前類似功能的 Swig 相比,c2py 更加易用,不需要像 Swig 寫接口文件,just run c2py & build。
本次大會的觀後感
相較於往期有非常大的進步,主要是:
•本屆大咖雲集,通過多位著名項目核心開發者的分享,學習他們在各自領域中獨到的見解;•分會場的設立,充分擴大演講的主題範圍,也滿足了不同方向的開發者不同的關注點。
但依然有部分遺憾之處,比如:
•第一場半程,某贊助商的 AI 翻譯就莫名罷工,並且一上午都沒有再啓動,導致我等英語苦手,對三位國外大佬的演講吸收量大減;•WorkShop 設置在下午分會場,如果選擇了就相當於無緣同時間段的三場演講,糾結之下我只能放棄參與。
總體本屆還是收穫滿滿,票價超值了,也看出主辦方想辦好 PyCon China 的決心,希望明年再加油,PyCon 明年見!
所有圖片來自 PyCon China 官方拍攝
轉載本文請在公衆號「面向人生編程」後臺留言
References
[1]
Cyberbrain: https://github.com/laike9m/Cyberbrain[2]
c2py: https://github.com/nanoric/c2py
本文分享自微信公衆號 - 面向人生編程(LifeOriented)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。