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 官方拍攝
本文屬於原創內容,首發於微信公衆號「面向人生編程」,如需轉載請在公衆號後臺留言。
關注後回覆如下信息獲取更多資源 回覆【資料】獲取 Python / Java 等學習資源 回覆【插件】獲取爬蟲經常使用的 Chrome 插件 回覆【知乎】獲取最新知乎模擬登陸