眾咖雲集的 PyCon 2019 上海站,大佬們都講了啥

来源:https://www.cnblogs.com/zkqiang/archive/2019/09/25/11581994.html
-Advertisement-
Play Games

PyCon China 是一年一度的 Python 中國開發者大會,今年上海站國內外大佬雲集,「流暢的 Python」作者、Flask 作者及核心維護者、PyCharm 開發者等等大佬都登臺演講。 ...


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 插件
回覆【知乎】獲取最新知乎模擬登錄


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 場景 系統架構設計師考試,屬於全國電腦技術與軟體專業技術資格考試(簡稱電腦軟體資格考試)中的一個高級考試。 系統架構設計師考試,考試不設學歷與資歷條件,不論年齡和專業,考生可根據自己的技術水平,選擇合適的級別合適的資格,但一次考試只能報考一種資格。 之前分享過一次mp3教程資源。 https:/ ...
  • 裝飾者模式(wrapper): 允許向一個現有的對象添加新的功能,同時又不改變其結構。裝飾器模式是一種用於代替繼承的技術,無需通過繼承增加子類就能擴展對象的新功能。使用對象的關聯關係代替繼承關係,更加靈活,同時避免類型體系的快速膨脹。 示例:英雄學習技能 裝飾者模式有四個角色: 1)抽象構建(Com ...
  • PHP字元串函數是核心的一部分。無需安裝即可使用這些函數 ...
  • 一 ORM簡介 MVC或者MVC框架中包括一個重要的部分,就是ORM,它實現了數據模型與資料庫的解耦,即數據模型的設計不需要依賴於特定的資料庫,通過簡單的配置就可以輕鬆更換資料庫,這極大的減輕了開發人員的工作量,不需要面對因資料庫變更而導致的無效勞動 ORM是“對象 關係 映射”的簡稱。(Objec ...
  • 預設方法 步驟 1 : 什麼是預設方法 預設方法是JDK8新特性,指的是介面也可以提供具體方法了,而不像以前,只能提供抽象方法 Mortal 這個介面,增加了一個 預設方法 revive,這個方法有實現體,並且被聲明為了 default package charactor; public inter ...
  • 一、記憶體分析 代碼:引用可以是局部變數也可以是成員變數 二、對象之間建立關係 二、源碼: D34_husband_and_wife.java 地址: https://github.com/ruigege66/Java/blob/master/D34_husband_and_wife.java​ 2. ...
  • 夢中驚醒 在Tomcat的線程池裡,有這樣一個線程,自打出生後,從來不去幹活兒,有好多次走出線程池“這座大山”去看世界的機會,都被他拱手讓給了弟兄們。弟兄們給他取了個名字叫二師兄。沒錯,好吃懶做,飽了睡,醒了吃。這不,又迷迷糊糊睡著了,還打呼嚕呢。“快起來,起來,幹活去了”,有人在喊他。只見二師兄轉 ...
  • 在上篇文章中 "SpringApplication到底run了什麼(上)" 中,我們分析了下麵這個run方法的前半部分,本篇文章繼續開工 6. 獲取系統屬性 但是這個屬性的作用還真不知道。。 7. 列印banner 8. 根據當前環境創建ApplicationContext 基於咱們的Servlet ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...