1. 程式人生 > >眾咖雲集的 PyCon 2019 上海站,大佬們都講了啥

眾咖雲集的 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 外掛
回覆【知乎】獲取最新知乎模擬登入