眾咖雲集的 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
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...