專訪豆瓣網首席架構師洪強寧:Python,簡單的力量
【51CTO獨家報導】豆瓣網對網際網路使用者來說是知名的Web 2.0社群,但對開發者而言,更重要的是一個應用Python打造的非常成功的Web 2.0站點。
Python誕生已有20年的歷史,目前國內的Python發展狀況如何?與其他語言(平臺)相比,Python有哪些顯而易見的優點?豆瓣應用Python進行Web開發有哪些成功經驗可以借鑑?帶著這些問題,51CTO記者在Qcon 2010會場有幸採訪到豆瓣網首席架構師洪強寧先生,由他來向我們講解Python的Web開發之道。
Python正在成為一門主流語言
Python在國內的興起已經有近五年的時間,在2004年底豆瓣剛剛開始起步的時候,國內Python使用者已經初步形成一個小圈子,集中在CPUG社群(CPUG是中國第一個正式成立的Python社群,聚集了大量Python愛好者,為Python的普及和推廣起到重要作用);現在,GPUG的老使用者散佈在國內各大軟體公司,在他們的推動下,現在國內非常多的軟體公司在使用Python。
除了社群的推動,榜樣的力量也很重要。隨著豆瓣的成功,瞭解Python、學習和應用Python的人也越來越多,它已經不再是幾年前的一門小眾語言。洪強寧說:“Python在國內的使用已經像前幾年在國外的發展一樣,逐漸成為一門主流的語言”。
Python簡單的力量
近年,Python的應用範圍越來越廣,也吸引了.NET和Java平臺的注意,比如.NET平臺上的IronPython和JVM上的Jython。Python的哪些特性吸引了這些平臺對它的引入?
“因為Python的簡單,它比Java簡單,比C#簡單”,洪強寧說道:無論在JVM平臺還是.NET平臺,用Jython和IronPython來做開發,從開發效率上講,Python的開發上是要比直接使用Java和C#的開發效率高。
在.NET或Java平臺,語言上的選擇更多的是從效能角度來考慮,Java和C#在效能上的優勢Python可能無法追趕,但從實現業務邏輯和功能的角度看,Java和C#可以做的,Python也可以做,而且更加簡單。
Python vs Ruby
Python是一門動態語言,在開發效率上有著先天的優勢;但我們也會想到近年大熱的Ruby語言,同樣具有動態特性,同樣長於敏捷,它們兩者之間有哪些差別呢?
洪強寧指出,豆瓣在剛開始技術選型時考慮過Ruby,但在當時看來,Python的庫要比Ruby更成熟;Ruby強於Rails框架的應用,但涉及到後臺計算方面的能力,Python的優勢更加明顯。Python和Ruby兩種語言本身沒有好壞之分,兩種語言都有非常成功的案例,都能做出好的Web應用,更多的選擇還是開發者的個人喜好問題。
豆瓣Python應用開發經驗談
豆瓣是一個Web 2.0網站,這類網站的特點就是“Always Beta”,不斷有新的產品和功能升級來為使用者提供更好的服務。作為使用Python進行開發的網站,豆瓣有效的程式開發配置和版本控制值得我們學習。
豆瓣的主要開發環境配置就是SVN+Trac+Bitten。豆瓣的版本管理系統使用的是Subversion(SVN),使用Trac來管理協同開發,同時使用Trac的Bitten外掛進行持續整合。
在開發模式方面,由於是Always Beta,豆瓣採用的方式是:站點執行在主分支上,開發者在開發新功能時會建立一個子分支,新功能開發並測試完成後,會更新伺服器的主分支版本,之後上線。
在開發框架方面,豆瓣主要使用Quixote(被稱之為“堂吉訶德”,一個輕量級的Python Web框架,簡單、高效,程式碼簡潔);後臺執行的Web服務主要使用Web.py(web.py也是一個Python的Web框架,簡單且功能強大)。
後記
最近有一本新書叫《豆瓣,流行的秘密》,我想,豆瓣的流行不僅是依靠成功的產品,對於開發人員而言,產品的背後是實現它的技術——Python。在此次Qcon大會上,洪強寧先生與參會者分享了Python於Web 2.0網站的應用,強調了Python簡單的特性。對於技術而言,簡單也是一種力量。
關於Python
Python語言的歷史可以參考51CTO的Python創始人小傳《Guido Rossum:打造Google第三大開發語言》
關於Subversion
Subversion(簡稱SVN)是一款開源的版本控制管理系統,被認為是CVS的替代者。Subversion的版本庫可以透過網路訪問,從而使使用者可以在不同的電腦上進行操作。從某種程度上來說,允許使用者在各自的空間裡修改和管理同一組資料可以促進團隊協作。
關於Trac
Trac是一個開源軟體平臺,整合了Wiki和問題跟蹤管理系統。Trac以簡單的方式建立了一個軟體專案管理的Web應用,以幫助開發人員更好地寫出高質量的軟體。Trac採用Python語言開發的,因此Trac的在執行的時候,需要有Python環境的支援。
關於Quixote
Quixote是一個Python的Web框架,它基於簡單靈活的方案設計,可以進行快速地開發專案,而且使用很多Python第三方模組。透過恰當地配置,可以讓Quixote發揮巨大能量,這使得它可以被用於大規模系統當中。
©著作權歸作者所有:來自51CTO部落格作者red7的原創作品,如需轉載,請註明出處,否則將追究法律責任
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2334/viewspace-2820390/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 前豆瓣首席架構師:如何保持團隊的技術氛圍?架構
- 李道兵:輟學的首席架構師架構
- 專訪蘇寧李曉健:窺探企業前端架構升級的前因後果!前端架構
- 大劉跌倒,老田吃飽——首席架構師之爭架構
- 精簡化事件:事件驅動架構的精益力量事件架構
- 專訪阿里陳康賢:我所理解的網站架構阿里網站架構
- 從程式設計師到解決方案架構師的簡單指南 - Dev程式設計師架構dev
- 紅帽首席架構師:CentOS Stream 並非要革了 CentOS 的“命”架構CentOS
- 轉轉首席架構師 孫玄:如何成為一個有情懷的工程師?架構工程師
- 網易易盾首席安全架構師沈明星分享DDoS防護如何建設架構
- 超簡單易懂的LNMP架構LNMP架構
- BPAAS 簡單架構圖架構
- Rancher首席架構師解讀Fleet:它何以管理百萬叢集?架構
- 羅輯思維首席架構師:Go微服務改造實踐架構Go微服務
- React專案架構,掌握前端架構師的核心本領React架構前端
- 在阿里架構師眼中構建一個較為通用的業務技術架構就是如此簡單阿里架構
- Gopher China 2019 講師專訪-Grab/地圖團隊資深架構師胡泊Go地圖架構
- 蘇寧11.11:蘇寧易購訂單搜尋系統架構及實現架構
- 簡單瞭解 TiDB 架構TiDB架構
- 阿里P9架構師簡述從單機至億級流量大型網站系統架構的演進過程阿里架構網站
- 資深架構師Sum的故事:正則!入門就是這樣簡單架構
- 構建自己的簡單微服務架構(開源)微服務架構
- AC2016 大會講師專訪—— 億萬頁面直出架構專家何駿架構
- 我對微服務架構的簡單理解微服務架構
- 【開源力量】雲原生架構概述架構
- 我的物聯網專案之單體應用架構不行?應用架構
- 簡單vue專案腳手架Vue
- 極簡架構模式-資料訪問物件模式架構模式物件
- IBM架構師分享:極簡主義軟體架構 - Neal HuIBM架構
- 視訊:豆瓣資料架構實踐DX架構
- Vue3專案的簡單搭建與專案結構的簡單介紹Vue
- 英特爾挖走AMD首席獨顯架構師,曾是現任CEO基辛格老部下架構
- 簡單地聊一聊Spring Boot的構架Spring Boot
- 簡單介紹架構設計的原則!架構
- MVVM架構在Flutter中的簡單實踐MVVM架構Flutter
- 架構師修煉之道(二)——架構?設計?架構師?架構
- 企業架構師、解決方案架構師和技術架構師的異同 - Briqi架構
- 架構師的工作架構