豆瓣工程師爲你解答關於 Python3 編程方面的問題

Python是如此活躍的一種語言,幾乎伴隨互聯網的發生而創立,又伴隨互聯網的極速發展而繁榮。使用Python會遇到這樣的問題:何時該用多進程?怎樣提升代碼執行效率?Flask爲何流行?學習Python要不要直接學Python 3? Python 3有哪些優勢,遷移成本如何?豆瓣這種大廠對Python有何見解?css

所以咱們 OSC 第 128 期高手問答請來了豆瓣工程師爲你們解答關於Python的相關問題。本文挑選了部分精彩的問答內容,分享給各位交流、學習。也能夠轉到原連接繼續瀏覽。html

(一)版本選擇——Python 3 發佈也有很長的時間了,但如今業界的主流好像仍是使用Python 2。所以有很多程序員在糾結是選用Python 2仍是Python 3,董偉明老師給出了本身的見解。

Q:Python確實愈來愈火了,知乎就是Python作的,偶爾搞了一點,發現確實很高級,至少比Java語言高級一些,某些功能Java須要寫100行,而Python可能只要20行。作一些外維繫統仍是挺方便的,好比日誌的提取等,以前學的是2.7版本,如今Python3比以前的版本有哪些新特性呢?node

A:Python 3是至關於站在Python2的肩膀上,摒棄了早年設計Python 2的錯誤思想(因此有的地方向前不兼容),加了一些新的語法,好比asyncio,甚至type hint(我不喜歡)。 具體的內容能夠看 https://docs.python.org/3/whatsnew/index.html。 整體上和Python 2區別不大。不用糾結Python 2/3python

Q: 我惟一關心的是Python如今進入Python3時代了嗎?我如今的Macbook上默認裝的仍然是Python 2.7。做爲新手,這種時候來學Python總以爲很尷尬。難以抉擇從哪一個版本開始。react

A:編程重在編程思想的理解和經驗積累,語法其實只是表達方式而已,Python 2/3思想是相通的,只有少許語法差異和不兼容。對Python熟悉到必定程度能夠在很短期寫Python 3。書中還說了更細的選擇建議。Python 3是將來,可是如今潮流尚未來,因此不用有太大的擔憂。我我的以爲Python 2會在至關長時間內存在,維護老的項目還須要寫Python2/3兼容的代碼。webpack

Q:做爲一個打算學習Python的新手,首先想知道目前或者說最近兩年Python2.7更爲主流,更適合新手學習,仍是Python3.0?其實咱們都知道Python語言極其簡潔優美,實現相同功能代碼要比C++少太多,那爲何C++的普及程度要比Python高這麼多?nginx

A:有很是多的人建議直接學Python3,我並不認同。由於並非2020年到了Python 2就會死掉。新手學習選2仍是3我卻是以爲無所謂,關鍵是真的去學,而不是糾結。其實你如今不管先學那個,到Python 3的潮流到來的時候,去兼容2仍是邁入3都很容易。 好比我,並沒看過Py 3的書或者文檔,可是靠着對Python的理解,現場翻文檔查Google就能夠寫Python 3的效果,並不花費更多精力。
C++有很深的歷史緣由,尤爲是在中國。Python其實也就是最近3-5年的事, 並且一個語言的使用廣度和使用它的公司和人有關,一個廠使用XXX,他們離職出來創業或者去其餘公司仍是用XXX,這種毒藥同樣的方式蔓延開來,勢不可擋啊。反觀Python,更像是一些人中意的小玩具,就是那麼一撥人喜歡。就算Python作的再好,BAT也不會替換成Python,由於老的東西已經作得不錯了,爲啥要換呢?git

Q:Python3在好久之前就出來了。到如今還沒成爲主要版本程序員

A:是的。這實際上是有歷史遺留問題的。目前看來Python 3並無什麼足夠的優點和吸引力讓你們火燒眉毛的升級。你們也都採起觀望的態度。並且目前在國內甚至國外都沒有看到2to3的一些真的好的經驗。可是繼續關注吧,這個潮流預計1-2年就會出現了github

Q:我記得2009年就存在這個問題,如今都過去7年多了,仍是這個情況,難免讓人等得有些鬱悶。

A:如今已經改善了不少。剛出3的時候,別說咱們開發者,就是Python社區,包含一些核心開發者也是有意見的。如今你們已經有個共識,就是Python3是將來。

Q:Python 3 和 2 到底哪個在互聯網行業產品中用的多,初學者怎麼選擇?

A:目前還沒聽過那個相對有點名氣的產品宣稱用Python3。 預計在明後年會有少量。 通常的企業也不會就爲了用Python 3,而讓那些跑了可能10多年,幾十萬行代碼的項目必須遷移(這不符合KPI啊,boss那裏說不過去),其實最多就是在新的項目上用Python 3,老的項目仍是維持現狀。 若是如今是2018年,我建議直接學Python3,若是是如今,哪一個均可以。

Q:學Python2 好仍是Python3好呢,哪一個更好向後面的python版本過渡?

A:Python 3是將來,這個是毋庸置疑。 只是目前看潮流尚未到。並且各大公司對Python 3興趣也不大,包括我。前面的答案說過一些,總結下就是若是如今到了2018,首選Python3,不然選哪一個都無所謂。關鍵是要去練,而不是在糾結。

沒錯,編程重在編程思想的理解和經驗積累,語法其實只是表達方式而已,Python 2/3思想是相通的,關鍵是要去練,去使用,不用糾結Python 2/3。

(二)入門相關——初識Python,總有些迷茫,該選擇如何選擇方向、制定學習路線,這裏有一些經驗分享給新手。

Q:Python的Web開發方向,須要學習哪些重要技術?

A:Web開發有不少方便,好比Web框架,Python語言,系統架構等等。你從零開始作一個大型的網站應用就知道了。個人書算是給你劃了一個比較完成的圖。

Q:Python Web 開發一個比較好的學習路線是怎樣的?

A:我在知乎回答過一個Flask學習的路線,供你參考: https://www.zhihu.com/question/20135205/answer/123224570?group_id=764428290671783936 其實萬變不離其宗。

Q:初入門Python,有C、Java基礎。再看《Python基礎教程(第二版)》。請問您有推薦的書籍嗎?

A:我我的在知乎專欄寫過一篇推薦書的文章 https://zhuanlan.zhihu.com/p/22198827。我建議有一些其餘語言基礎的同窗好好地看看《Python學習手冊》,若是你英語比較好,建議直接看原著。《Python基礎教程》雖然是一個經典的入門教程,寫做風格也相對輕鬆幽默,可是因爲本書寫做於2010年,書中有大量內容已通過時,因此不推薦!

Q:請問你目前最好的入門書是那本?有沒有和PHP或者其餘語言對比講Python的呢?

A:我認爲最好的入門書是《Python 學習手冊》和 《"笨辦法"學Python》。 不懂「這個世界上最好的語言」,因此不知道,並且一個新的語言有本身的理解,爲啥要對照其餘語言看呢,你在學習過程當中不斷的思考和領悟,偶爾發出:額 原來這個就是XX語言的YY啊。 這樣很差麼?

Q:做爲10多年IT從業人士,已經不想也用不到學具體的開發了,可是想經過Python這幾類Web框架了解下Python Web開發的精華,在這種目的下,哪一種框架更適合呢,或者說大致都一致?

A:Flask,一天可上手。代碼質量也很高。

Q:最近自學Python,想作Python Web開發,感受遇到瓶頸了。網上的教程不是太詳細,只能本身一點點照着框架的文檔去嘗試,一個簡單的問題可能要很長時間才能解決,好崩潰。感受好難啊。誰有這方面的經驗,但願多分享下,交流下。

A:這是一個新手到高手的過程。這個世界沒有那麼多不付出努力就能收穫頗豐的機會。在我工做不久,參與屢次公司季度、年度會議無一中獎的時候我就意識到了。 因此,你想成爲何人,你就要付出相匹配的努力和代價。 我是非計算機專業專科畢業,專業叫作《烹飪工藝與養分》。我英語水平也沒過四級(專科不考),並且我自認爲是一個資質平平的人。和別人不同的就是捨得花時間,願意堅持有興趣,和你們共勉吧。

(三)使用Python進行開發的程序員也會遇到一些困惑,這裏整理有關使用Python 進行Web開發的一些問題,包含了性能、適用範圍、開發效率、框架選擇和使用、運維相關等內容。

Q:不知做者有沒有涉及過大數據方向的?我看部分大數據相關的都要用到Python這是爲何?Hadoop整個生態圈都是Java的,Python的定位是什麼?

A:在NLP,算法,推薦,數據挖掘,神經網絡,機器學習,深度學習等領域都有很是好的現成的Python的庫, 如NTLK,Theano,Tensorflow,scikit-learn,以及作數據分析的NumPy和Pandas。 學術界和科學家們還特別偏好Juypter/iPython。對一些經常使用的統計和算法使用Python顯然很方便,驗證起來也很方便。 Python的優點不在於運行效率,而在於開發效率和可維護性。
Python一直被稱爲膠水語言,基本各個領域都有所涉獵。學習一下沒有壞處。

Q:其實我是一個狂熱的Python愛好者,可是仍是想問:
用Python來進行Web開發,與它的其餘競爭者相比,有什麼優點呢?好比,與Ruby On Rails相比,它能更敏捷(快速)地開發,用寫儘可能少的代碼來完成任務嗎?與Node.js和Golang相比,它在支持高併發、多線程、執行性能等方面有什麼優點嗎?若是一些性能方面的優化能夠經過編寫C擴展模塊,或者經過cffi、Boost.Python、Cython等方式進行優化,Node.js、Ruby等一樣能夠作到。一句話歸納上面的問題就是:是什麼緣由吸引咱們使用Python來進行Web開發呢?

A:ROR我倒沒有實際的用過,不敢妄言。Python最大的優點是他是一個「膠水」語言,在工做中的各個方向都能看到Python對應的庫的身影,學會Python會讓你的路比較寬,可是用ruby,可能在我印象裏面就是Web開發比較有名。我如今尚未發現作Web開發有比Python效率高的方式。
其實不少人都擔憂Python的執行效率,然而其實絕大多數狀況Python足夠快,不快的話要先看看本身是否是用得不對或者很差。如今硬件資源很廉價,除非上升到BAT那種規模,不然基本尚未到達討論語言瓶頸的問題。如今豆瓣絕大多數基礎設施都是使用Python開發的。在Web開發中,咱們不多經過寫擴展的方式提升性能,其實編程語言通常都不是網站性能的瓶頸,還能夠經過其餘方式解決。

Q:以前學ROR是由於老師要求用這個,我沒有用Python進行Web開發的經驗,稍微有一點了解的也只是Flask或者Falcon這種輕量級的,感受可以快速開發小巧的應用,可是不知道有哪一個特別出名的應用或者網站系統是由Python開發的(好比WordPress和Discuz用的PHP,Gitlab用的Ruby,OSC好像用的是Java吧)。Python確實是一種比較萬能的語言,但有點萬金油卻不夠專精的感受。好比在科學計算方面很流行,可是論效率不如Julia,論支持庫的豐富和使用普遍度不如Matlab(特別是學校裏面,教授作研究或者教學通常都會用Matlab);在系統管理方面看,能用Python乾的腳本化工做,用shell或者perl基本上都能幹,並且須要寫的代碼行數說不定更少。若是說用Python進行Web開發效率高,是有特指某一個框架嗎,仍是泛指?
我在寫程序時首先會想到用Python,是由於喜歡tial-and-error這種方式,可以在正式寫代碼前確認想法能不能實現,可以讓我有興趣和信心繼續下去。但真要提及來,可以提供REPL特性的語言也很多。
Python的執行效率貌似永遠是Python熱門的討論話題,好比GIL的存在必需要用特殊的方式來優化。像gevent和Tornado之類的存在也適用於高併發的網絡鏈接(不過Python在這方面的性能不必定是最高的,沒有看過相關的測試)。再說Python的實現,除了最出名的CPython和PyPy以外,甚至還有爲嵌入式設備開發的MicroPython(這也在另外一方面說明了Python的萬能性)。Dropbox的技術棧中也使用了Python,而且有開發面向性能的Python實現pyston,此外還有Stackless Python(聽名字感受很厲害,雖然其實我並無去了解這究竟是什麼),但它家也在用Golang和Rust開發高性能的東西。那麼,豆瓣的基礎設施實現中,用Python開發的應用效率如何?也有使用除了CPython以外的實現來進行優化嗎?(我是否是扯得有點偏題了?)

A:嚯,你的問題好長。 進行Web開發效率高算是泛指,包含Django和Flask。效率高也體如今它們的第三方擴展和支持比較完善,基本能想到的都有對應的項目支持,這樣少造了不少輪子。 豆瓣天天服務着千萬級別的用戶(抱歉不能說具體數字)的請求,絕大多數應用和基礎設施都是Python實現的。因此應用效率不用擔憂。雖然可使用C/C++的擴展提升運行效率,可是我接觸的場景裏面不多。至關於寫擴展的維護性和成本,你們更願意從架構,算法等方面來解決。

Q:按照「沒有銀彈」一說,Python應該也有本身的適用範圍吧,是否是比較適用於機器學習,不適合於Web開發呢?

A:Python被稱爲「膠水語言」,雖然沒有「統治」哪一個領域,可是基本上個個領域都把手伸了進去。機器學習我不熟不敢妄談是否是更合適。我只能說,Python很適合Web開發。

Q:Python Web相對Java Web有什麼特別明顯的優點嗎,在運行機理上,應該仍是Java的性能又好一些

A:選擇Python是由於他的開發效率和高可維護性。並且Python絕大多數狀況足夠快,足夠快。就算不夠快,如今互聯網公司也有不少解決方案。其實一個網站基本不受限於編程語言的限制,每每是數據庫,存儲等等方便會遇到瓶頸。大部分是網站設計的架構有問題,或者寫Web用的不對或者很差。Python表示很無辜。

Q:大神您當初建站的時候爲啥要選擇Python這門語言,開發Web Python與Java、PHP之間有什麼異同?

A:其實我也使用Node.js/Golang寫過Web,可是我的都以爲沒有Python喜歡和熟悉。 我以爲當初選擇他而且堅持下來,第一是開發效率和上手速度,基本熟手花一週一個功能齊備的網站就作好了,Java我比較擔憂。實際上是語言的使用範圍,PHP好像就是作Web開發,太窄,我仍是喜歡用一個語言掌控這個產品流程。

Q:能分享下大家那是怎麼完成網頁組件化的嗎?組件化須要考慮CSS,JS的引入問題。如今ng,React之類的Web框架能很好的解決這個問題。大家都是怎麼來管理?

A:咱們的React組件化大部分是使用inline-styles(https://facebook.github.io/react/tips/inline-styles.html)。可是有一些通用的樣式使用css-loader。豆瓣的基礎設施能夠幫助項目自動「翻譯」ES6的JS代碼。同時也會使用webpack打包和壓縮成完整的JS文件。

Q:我如今在用Python寫爬蟲,有什麼好的建議?數據量大了有什麼好的處理方式?

A:爬蟲是Python領域中一個很簡單的活兒,其實主要是防爬和提升爬取速度,這個爬取速度不在你使用多線程仍是多進程仍是asyncio,而是待爬的網站對你的容忍度和你具有的對應策略。 數據量大的建議這個話題很大,主要是要設計好數據庫和存儲的方式。

Q:你好, 用Python最大的好處是實用庫多,無論是寫服務器仍是寫爬蟲都有庫,不過就Web開發來講感受最麻煩的就是想找到一個方法快速入門一個框架,畢竟如今各類框架變化太快,一會Django一會Flask,在這些框架的選擇上應該如何權衡呢?是隻掌握一個就夠了仍是應該多看幾個呢?還有就是在Python Web 開發過程當中 是否適合使用多線程的框架來響應請求呢?由於感受Java Web開發很看重多線程的使用,不過Java Web感受棘手的一個緣由是重,而後是須要編譯,最後是垃圾回收一搞很差就容易大量吃內存CPU,在使用Python Web開發的時候如何避免出現相似Java Web開發的那種狀況,謝謝。

A:我建議一個領域學好一個就能夠了。好比學Web框架,其實若是工做中沒有使用,學習Flask就夠了,等你學好了,再看Django其實也很容易,由於精髓就那些,只是不一樣框架的實現的方式和解決方案不一樣罷了。固然 先學Django也是能夠的,只是學習曲線高了一些。
響應請求有業界的標準解決方案,好比 nginx+ gunicorn, 具體到是否使用多線程,或者使用多少仍是和你的業務有關,你基本不用操心。 Python很是穩定,並且幫你完成回收,若是你發現很吃內存或者CPU,通常都是寫的邏輯有漏洞。

Q:爲何您當初選擇了呆板的Python而不是活力的Ruby?Python比起Ruby的優點是什麼?

A:沒看出來Ruby多有活力,而Python呆板。我看到的只是Python開發者在給各個領域貢獻優秀的庫,只是不出來宣傳。就像我在以前的公司。11個產品線,8個ruby的,1個node的和2個python。Ruby的整天在公司郵件組抄,Node的偶爾去混戰,只有咱們Python的啥也不說,作好本身。固然 在國內,開發者也是Ruby的更活躍。我所知的那些厲害的Python領域的老師和專家歷來不出來。好比Python,只有洪教授一人會出去,你們都不參與而已。我也喜歡這種低調的生活。

Q:這本書不是入門書籍吧?我看定位是進階讀者,從目錄上看是介紹了Python Web的生態,還有各類包及編程技巧,這本書有沒有圍繞着一個項目構建組織全書呢?有點期待想看。

A:書中是有一個完整的例子的 是一個文件託管服務, 效果相似這樣 https://vast-brushlands-4477.herokuapp.com/(在國外,因此慢)。有人把我這本書當成百科全書或者講生態的我都不反對,我我的的理解像是大學老師在給劃重點,講其中的起因,可是具體的還得去用,去看官方文檔。這本書其實不算進階吧,屬於有必定Python使用經驗的人就能夠看,書的內容也是我故意不喜歡關係太緊密。好比你能夠直接看第十章,前9章基本不用看也是能夠的。

Q:已經買了做者的書,感受比較有深度,就是有些代碼用的Python2,如今遷移到Python3有時候就迷亂了。還有就是做者能夠簡單介紹下Python如何鏈接其餘語言的C++和Node以及其餘的Go還有C#之類的。

A:嗯,Python 分2和3是很尷尬,我也想全書用Python 3,可是因爲有「實戰」的意味,擔憂不少尚未遷移到Python3的同窗用不了。隨意忍痛仍是用如今的主流Python2。假如如今已是2018年,個人書絕對是純純的Python3。C++和C#的內容確實沒有,恕我沒有相關的經驗,也沒機會去實驗,就不寫了。 在異構的場景我更喜歡服務化,用JSON或者一些自有的二進制協議通訊。

Q:Python Web 開發相對Java Web 有什麼優點?

A:前面已經說過了。並且我沒用Java寫過Web,不敢深刻的評價。有時候性能和開發效率以及維護成本要看場景,Java Web發展到近來有它存在的必然因素,其實不必比。

Q:本身一直用Django作Web開發,可是老是有一些困惑在於更新很頻繁。您有沒有一些較好的Django公共組件推薦?快速開發的同時,能夠學習別人是怎麼實現。如今先後端分離比較多,您認爲Django的MVC和使用Restapi作先後端分離,怎麼選擇合適?謝謝!

A:我的不喜歡Django,因此用的很少,尤爲是最近1-2年,因此就不推薦了。MVC和Restapi也不衝突啊,一個是項目的架構方式,一個是接口定義的模式約束。

Q:感受Django就是版本帝各類改變接口等……又不向下兼容,我這種業餘寫點程序的追起來心累

A:嗯 我以前用1.2.5,後來改爲1.4,結果密碼加密方式改了,害得我只能用低版本升不了級(總不能讓全部用戶都來重置一遍密碼吧)

Q:我自學過一段時間的Django,後來研究小米的開源監控系統,才瞭解到的Flask,如今正在研究Flask,對於Python進行Web開發,您是怎樣看這些框架,他們都適合什麼樣的環境,還有其餘的框架推薦嗎?謝謝

A:用Flask仍是Django可能更是工程師按性格。Flask是力求簡單,只保留核心,你想要什麼往裏面填,給你自由,缺點是這些擴展參差不齊,須要你用有必定的辨別的能力。Django是五臟俱全,大部分經常使用的啥都給你準備好了,用就行了,缺點是自由度不夠,你想定製點仍是要費一番周章的。學習曲線也是flask基本一天就可上手能用,Django也許得2周,越到最後越難(可是也別被我嚇到,只是從初學者的角度看)。 其實我我的比較喜歡Pyramid,可是隻推薦給有必定Python Web開發經驗的人,有時候得翻源碼解決問題或者找思路和靈感。

Q:您好,比較火的Web框架不少,常見的有Flask, Django, Tornado,這三個東西在開發上有什麼異同,或者說若是開發一些Restful接口或少許界面的功能,優先考慮哪一個?還有就是Python的部署只是把腳本放上去就好了,但環境還要本身配置,有什麼方法能像Java那樣打包部署麼?

A:不一樣的框架就是實現的思路,做者或者團隊的編程習慣不同,造就它們的用法看起來差異挺大,生態區別也很大,但事實上原理都差很少。不要問我選哪一個,我確定說Flask,由於我的喜歡Flask的哲學(精簡,自由,高效,代碼寫的好等等),可是你仍是要有本身喜愛。 Python沒有像Java那樣打包,這是不一樣語言的設計哲學。我我的願意花時間折騰,因此我喜歡Python!!

Q:你好,我學了快一年的Python,對Python的異步感到比較困惑,Python有多種方式能夠實現異步,事件循環、協程、多進程多線程什麼的,相關框架也是不少,gevent、twist、tornado,asyncio等等,真是有點眼花繚亂,像NodeJS就比較單一(貌似它的異步就是event loop),因此我想問問你以爲Python到底適不適合作異步編程?若是要學習Python的異步編程如何入手好一點呢?

A:說適不適合很奇怪,討論「某個場景下用哪一個(些)方式更適合」這樣的話題比較好。並且這些看起來比較讓人眼暈的概念其餘語言也都有,只是可能名字改一下,換湯不換藥,這也是學好一本語言再學其餘的會很容易的緣由吧。編程其實很無聊,寫好的庫,明確告訴你該怎麼用,你直接調用就行了。其實寫代碼不難,關鍵是要深入理解這些概念的原理和適用場景,這種資料一搜一大堆..... 除了看書,分別用用,加點調試代碼(好比print),看看他是否是按照你理解的方式在運行,想一想爲何。有過幾回實戰經驗就懂了。

Q:運維轉開發運維有什麼好建議?  學習路徑能推薦下嗎? 核心編程能力就想依靠Python

A:我就是運維轉運維開發,最後成爲了Web開發。這條路上和核心編程沒什麼關係,都是靠工做中去鍛鍊。我在運維轉運維開發的時候,其實已經拿到某大廠的運維的offer,可是一心要作開發。當時說的是哪怕被我一半的薪水我也願意作開發。 看書看博客只是輔導,實操才最重要。

Q:這個本書有沒有涉及Docker,請問你對Docker在Python Web應用部署方面有什麼見解,是否會獲得大規模的應用呢 ?

A:只涉及使用Docker運行能包含了本書絕大部分代碼的引導。沒有把它做爲書中的內容,由於第一個是和Web開發無關,第二是Docker不是Python實現的。如今Docker已經火的不要不要的,透露下,其實豆瓣現有的產品的部署都已經使用Docker了。

Q:瞭解Python基本知識,但願學習一門Python web框架學習後端開發。以前我對部分主流框架進行了一些瞭解:Django,Tornado,在知乎上有一個很是活躍的羣體。在框架的選擇問題上,只有最適合你本身、最適合你的團隊的框架。編程語言選擇也是一個道理,你的團隊Python最熟就用Python好了,其實大部分人是不必太關心框架的性能的,由於你開發的網站根本就是個小站,能上1萬的IP的網站已經很少了,上10萬的更是不多不多。在沒有必定的訪問量前談性能實際上是沒有多大意義的,由於你的CPU和內存一直就閒着呢。並且語言和框架通常也不會是性能瓶頸,性能問題最常出如今數據庫訪問和文件讀寫上。

A:嗯 贊同你的觀點。不少人在杞人憂天。先等活到有必要討論語言的那一天,那時候早就有錢有人有時間,哪怕Python真的不知足,重構唄。

(四)豆瓣與Python不得不說的祕密~

Q:使用豆瓣不少年,很喜歡豆瓣的風格。以前一直是在網頁端瀏覽,後來又到了手機app端。我整體感受豆瓣的進步很快。我想問的問題是,Python Web一直做爲豆瓣的開發首選,是由於什麼?還有關於豆瓣的權限模塊的設計時,Python Web發揮了什麼優點。做爲手機端app的開發,Python Web會起到什麼做用嗎?

A:豆瓣選擇Python,實際上是公司和語言的風格很類似的緣故吧。咱們作事喜歡優雅,清晰,高效,這正好也是Python但願的。 豆瓣的基礎設施基本都是使用Python完成,包含權限部分,可是Python Web和權限模塊設計感受沒啥直接的關係,就是抽出來的庫和使用它的關係,我也沒懂有什麼優點或者劣勢。 豆瓣app的API後端是使用PythonWeb完成的。

Q:Python的Web開發框架有不少,豆瓣用的是哪一個呢,爲何選這個呢?

A:用戶產品絕大多數使用定製版的 http://quixote.ca/。 選擇它有一些歷史緣由。那時沒有更好的框架。並且用了這麼久,夠用,簡單,性能知足需求,就不必換。固然如今廠內其它框架也都有在用。

相關文章
相關標籤/搜索