如何評價《python web開發實戰》?


我是第一批入手python web開發實踐的,書中第一版錯漏是不少,自己也在github上給@董偉明提過issue,作者本人非常平易近人並且會耐心回答各種問題,如果大家有什麼困惑的話,試著諮詢一下作者相信作者也多半都會耐心地回答。

作者之前也就這本書在微信群中說過自己的這本書是一本大學老師畫重點的存在。現在自己看了一段時間感覺確實是這樣的。做web開發,你需要用到的技術非常的廣,資料庫、緩存、甚至數據分析和展示都會涉及到,每個方面背後都是各種各樣的問題和解決方案。問題體量不大的時候還好,自己造個輪子不計性能怎麼都可以解決了。如果數據的體量上來了,需要投入生產環境對性能有要求的時候,市場上成熟的輪子就必不可少了。當然你可以去百度谷歌針對不同的問題都有怎樣的庫和解決方案,然後按照官方文檔一步步探索,但是每個人的精力都是有限的,每個庫在不同方面的表現都不一樣,且不說不少庫的官方文檔的相對於庫所擁有的功能是多麼的粗淺,這就導致每個人在面對不同的庫的選擇和上手的時間成本異常地高。如果你在一個擁有成熟技術框架的公司倒問題不大,你只需要熟悉公司正在用的幾個庫就可以完成你的工作了,但對於業務快速擴張的公司或在做自己項目的開發者來說,在面對某個問題python有些怎樣的庫,用什麼樣的庫和如何快速入門就成了個很頭疼的問題。縱觀目前出版的python web方向的書籍,像狗書這樣的入門書籍面在對這樣的問題的時候好像也沒有什麼太大幫助,而python web開發實踐正正解決了目前國內python web開發者頭疼的問題:基本覆蓋web開發需求,每個需求2到3個成熟的適用的庫,每個庫簡易的入門和小技巧。

總結一下就是python web開發實踐這本書是用來開眼的,能縱觀目前web方向各個方面python中成熟主流的庫,並快速應用到項目中。而不是目前python書籍中從零開始到實踐的書(因為這本書不符合自己的預期而吐槽這本書的人可能是被書名所誤導了吧)。所以如果希望轉python或者剛入門的python小白(其實自己也是小白),在買之前應該想清楚自己的需求,web方向入門的話還是老老實實的看看linux基礎,資料庫,HTTP,然後挑一個框架(flask的話狗書是個不錯的選擇,但是不是學完python就能看懂的)做一個項目就入門了。


我先說一個「為什麼給人沒有太多實戰的感覺」的問題吧。我這本書借著「豆瓣」這個title出版,相信很多人對其中豆瓣相關的內容都很關注,最後可能會比較失望,因為比較少的介紹到豆瓣自己造的輪子。另外我給其他關於「實戰」書被如此吐槽的也洗個地。這部分解釋在我之前公眾號文章中有提到:

我剛工作的時候特別願意混各種技術會議和活動。經常有一些專家在上面講:我們自己實現了一個XXX,它有如下多的特性,現在支持了多少個產品線的多少個應用,每天的數據量YY PB,流量ZZ...
通篇在講架構,擺幾張高大上的圖,甚至能說幾個大家不了解的新的玩法都很少,還不斷的問坐在下面的領導或者法務:額,這個我能說嘛;那個我能分享么?最最重要的是,他們講的這些東西大多不是開源的.... 也基本沒有一個可以拿得出手的論文,甚至說白了,如果你正好專註這一部分,會發現它也是根據了FLAG公司的論文在造輪子罷了,說不定造的還不如你。
聽過之後,也沒有收穫,都是「別人家」的,甚至有種炫耀的感覺而已,至於有什麼苦可能只有他們自己知道吧。我就越來越不願意參加這種會議了。
寫書或者博客也是這樣。一切東西脫離了公司能提供的基礎設施和環境都是空談,但是這些鋪墊說起來就太大了,先不討論公司有沒有授權你在外面說,就是沒開源這點就不好弄。說的人都是在虛化的講一大坨的東西,最多來幾個截圖之類的(應該還打了馬賽克)。等這一大坨東西說的讓大家明白了,一本書的厚度肯定不夠。但是這些內容呢,只是你為了寫書的某一(幾)章做鋪墊而已,有些內容太專太偏,讀者大部分場景下是用不到的,好吧,又得罵娘說你這本書不實用...

回答正題,按著目前的回答順序開始:

匿名用戶:跳躍性很大,感覺吧,作者是想把他畢生經驗寫在這本書里,所以覆蓋面很廣。但是又都不精。
作者定位有點模糊。這本書如果是面向初學者,那不如《Python核心編程》《flask web開發實戰》,如果是面向有經驗的開發者,又不如Python cookbook。
看看目錄就好了。比如他會介紹什麼時候用什麼包,用什麼庫。但是他介紹的未必詳細。你看到那些包名,去網上搜官方文檔自己看看就好了。

A: 不知道大學時候老師給劃考試重點的美好日子是否還記得? 等你工作了,發現不太容易有人給你給你指明一條路,一切要靠自己,先不說走錯了,走的不是最近那條路或者在路口徘徊要多花費多少時間和精力,我一本書告訴你目前現在的主流,告訴你在什麼時候該用什麼?是不是有點老師劃重點的感覺?我覺得 @李粵強 一句話說的很好:

沒有一定項目經驗的,是寫不出這樣子的書的;沒有一點項目經驗的,也是讀不懂這樣子的書的。

各位捫心自問,不買書,只看我目錄列出來的那些東西你就能學好了么?看看README,參與下tutorial寫個hello world級別的例子就算行了?你就知道什麼時候怎麼用了?那考研培訓還有什麼市場?

如果說定位,我覺得你的對比體不對,你說的初級或者高級那是Python語言尤其是語法而言,Web開發是一項設計非常廣領域的職業,哪怕加上Python這個限定詞。現在世界上有那本書說自己是Web開發初級或者高級的書?書,只能是某個很細分的領域?而我這本書的目的是讓讀者了解一下web開發及其周邊,這個看目錄就知道了。裡面的每章甚至每節我都可以寫成一本厚厚的書,那麼按你的非黑即白的理論,只能是初級了,好吧,和《Python核心編程》《flask web開發實戰》這種專門講Python語法和flask的書比,我要講的東西很多,頁數就那點,你覺得我怎麼能實現對每個技能點都講到那樣詳細的程度?

@老李瘦不下來 :我覺得《Python web開發實戰》適合做為任何一門python web框架官方入門教程之外的補充讀物,儘管書里介紹的是Flask,但其實真正跟Flask有關的只有第三第四章。你不能指望通過閱讀這樣一本書迅速掌握Flask的核心API,或是學會如何從0開始搭建一個輕博客之類的,如果有這樣的需求,建議先看Flask官方文檔,再看Miguel Grinberg的Flask Web Development或是Mastering Flask。如果已經能用Flask/Django寫一個簡單的webapp了,但對web開發的全流程缺乏系統了解的,看這本書還是能學到不少乾貨的。
缺點是書價太貴,想要省錢的話,可以按著本書的目錄了解一下web開發及其周邊的基本概念。然後去書里提到的幾個python module,例如celery / gunicorn /supervisor / ipython notebook的官網上去看相應的介紹。

A:非常中肯的回答。我這本書幹不了所有事情,我只是在鋪一個藍圖,其中的某些東西真的自己看官方文檔,買其他書來深入。我這本書無法覆蓋全部,如果我貪心覆蓋,必然是4-5k頁的樣子,就沒人買了。我和狗書(Flask Web Development,封面是一隻狗)的關係就是互補的,它教你用起來,我來幫助讀者了解Flask實現上的一些原理和更多的插件應用。你要知道狗書上的一些插件已經是落伍的東西了,有些是寫博客等社交應用才用得到,我的書裡面的內容是普適的。最後一點,我的書基於最新Flask版本。

@刁民日報 :知識面比較廣,但都點到為止。滿書的代碼,並沒有比官方文檔入門介紹深入多少。從目錄結構看取名開發實戰倒也合適,從內容看不到太多實戰的影子。全書最讓我驚奇的是定價。

A: 我不認同「並沒有比官方文檔入門介紹深入多少」這句話,有些確實是的,因為它確實不難,而且官網寫的非常好,甚至可能我還參與過,具體的可以看 我的開源世界觀 ,我參與的文檔你說我不深入不合適吧?原創就是我。但更多的我不背,我這本書並不是深入介紹XX的一本書,而是在說Web開發這件事,我非揪住那些用da機會很少的細節來炫耀下「你竟然這個都不知道」就好了?另外我至少覺得在Flask 上下文,Flask-login、DebuggedApplication、
RESTful API、Supervisor、Ansible、Celery、RabbitMQ、PIDL、DPark、數據報表、IPython、Notebook、並發編程、CFFI/Cython等方面都介紹的比官方甚至外面其他渠道你看到的要深。另外你說「從內容看不到太多實戰的影子」,我在思考你是不是在從事Python Web開發的工作,我寫的東西有沒有好好的看,因為我覺得你看完應該會在工作上和我有共鳴,甚至能夠想起當年和我一樣踩過的坑兒那個難忘的過程。然而...

匿名用戶:當時買書完全是沖著作者來的,買來後最大的感覺是:失望。

從目錄應該就能看出來了,通篇羅列概念,沒有按照一本書的標準組織內容結構,一會蹦出一個新概念,完全不知道在講什麼。

A: 感謝你沖著我來的,相信我在某些方面還是給你「乾貨」的感覺。我不止聽過一個人對我組織這本書有意見,這是我的風格吧。想必你聽過看過市面上很多「21天精通XX」、「從入門到精通」這些的看起來讓人會產生強烈迷幻作用的書,現在互聯網這麼浮躁,和這些書給人的誤導也是離不開的。如果你希望一本書讓你精通,不可能。看過我這篇專欄的同學也千萬別買。你完全不知道我在講什麼,我覺得可能因為如下:

1. 你是一個Python或者Web開發的初學者。我在序言裡面說過,看我的書還是需要一些基礎的,對你負擔太大,需要你先補齊一些Python語法和相關模塊、第三方庫(類似IPython、Web框架)的相關知識。

2. 你完全沒有用心,不願意花時間挨個會深入,只希望一口吃成個胖子。抱歉,這病得治。現在不治,未來這個社會會幫助你長記性。

@李粵強:第一版的印刷,錯漏都還是挺多的,但瑕不掩瑜。這不是一本面向初學者的書,而是對python基礎比較了解,但沒有形成自己的知識體系的人應該讀的書。書里介紹了相當多的輪子,也可以說是工具,學到一定程度,人應該找到自己稱手的工具,打造或學會使用別人打造的優秀的工具,怎麼組合運用一些好的工具。這就是我在此書學到最關鍵的思想,了解各種輪子,了解各種輪子的適用場景,如何去組合輪子,如何開發輪子的擴展達到優化使用體驗的效果...

沒有一定項目經驗的,是寫不出這樣子的書的;沒有一點項目經驗的,也是讀不懂這樣子的書的。這書更傾向是導讀之類的書箱,書里每一兩章的內容估計都可以擴展成另一本書,全部湊在一起就是整個web 開發的流程,看完此書(甚至是看完此書的目錄),就可以大概了解web 開發的流程是什麼,然後自己缺哪補哪吧。介於書中的篇幅,很多話題是點到即止的,想了解更多就自己去挖掘吧。俗話說得好,「師傅領入門,修行靠自己」。這句話就是對此書的高度總結了。

A: 也是很中肯。我都沒法說什麼了。

@韓雨 :這本書,充滿了豆瓣(知乎)風氣,同時很接地氣。作者經歷豐富,知識面很廣,所以想帶給大家很多東西,對於新手來說不太合適。
Flask有兩章,並不是本書的重點,而是每一部分都是重點,對於開發的規範化很有幫助。
另外小白說一句,配圖太少了,作者很實誠的用代碼鋪滿了全書。

A: 感謝。確實對新手不太合適,我在序言裡面說過》,Flask也確實不是本書的重點,我這本書的私心之一就是開發的規範化,被你發現了。

@鄒扒皮 :包教包會不包分配
在看,看目錄覺得很棒,在只看了目錄的情況下安利了幾個人。

補充下面這段和python高手之路一模一樣的:

A: 說我目錄不錯,我就當是褒義了哈(′゜ω。‵)。 哥,你從哪裡看一模一樣?打包工具就是那幾個啊?難道我寫書還是挨個找書看看有沒有差不多的內容然後故意的刪除/添加其中一部分?你這....

@尊重:這是廣告么?@李浩宇: 這本書最近做了那麼多廣告啊…

A: 我覺得「尊重」這個名字起的好尷尬。雖然你這個回答被摺疊了,因為我覺得很多人確實這麼看的,也回應下。

首先那段時間,我盡量的用不被嫌棄的方式在「刷廣告」,知乎、開發者頭條、各大Python相關公眾號、csdn/oschina活動等等。我首先也是一個程序員,煩廣告,相當反感侮辱我智商的事情,不過各位問問自己,你買我的書之前,有沒有通過我的回答和分享學到乾貨?我發使用Celery的樣章之前,國內是否有人寫過更好的Celery內容?在我發了之後出現了4-5篇Celery相關的問題,問問他們不是基於我這篇么?

給大家大量廣告刷屏的感覺其實更多的是因為國內程序員寫書的很少,並且相當一部分不願意出來也不會搞宣傳這種程序員不擅長的事情。那段時間我做了很多營銷的工作,但沒有花一分錢,我也沒有什麼特殊關係。 這聽起來好像沒人信,我解釋下:

  1. 我一直願意和他們維護良好的關係,這是互惠互利的好事,我發的文章授權他們可以隨意轉載,我願意接受邀請參與一些相關社群的活動討論,如果不是因為我感覺欠個人情我才不會參與這種活動,了解我的人都知道我的性格。我個人很鄙視花錢做廣告賣書這種行為,而且我選擇的都是我認為不錯的渠道,最後大家雙贏。我也不靠「自己買票送人提高參與人數」這種高階玩法讓數據好看,只是第三次送過3張票。
  2. 我這本書這種效應也會給他們帶來新的流量,這種流量的價值很高,因為都是真的目標用戶。

知乎是我的一個重要渠道,我看中知乎是因為它的社交因素,對我的書的傳播有巨大的幫助。事實上也證明了這件事,之後我看好幾本書的作者也是這麼做的。

@許辰: 性價比太低

這回答不太好吧。別只說結論來些論點啊?互聯網是透明的,談談你覺得差的原因,如果你要寫這本書,怎麼寫?

結束語

這本書早已經越過1w本的大關,現在每月500+的銷量,我一直比較相信亞馬遜的評分體系,我混了一個4星評價,京東上好評也達到了98%,感謝大家對我的支持和認可。對於買了我的書不滿意的同學,無論什麼原因,先說一聲抱歉了,限於能力和精力,我已經儘力讓大家都有所收穫了,相信有了這一次的經驗下次寫書會更好。

我格外的注意了一下,在我之後出版的國內書基本都淪落了,這說明國內的技術圖書還有很長的一段路要走。大家加油

雖然現在已經集齊了各出版社的邀約,我的書也出版到了台灣,不過未來1-2年我不再寫書了,不過還會寫一些技術文章,大家可以關注微信公眾號「Python之美」及時看到。希望越來越多的人,尤其是真正的Python高手出來寫書,如果你沒有途徑歡迎各種方式找我引薦。

原文:回應「如何評價《python web開發實戰》?」的評價 - 知乎專欄


十分贊同 @李粵強 的回答。

這本書對我最大的幫助就是告訴我這些 Web 開發必然會遇到的問題,可以用哪些工具和技術去解決,這些工具和技術有什麼特點,局限性等等,這是其他 Python 相關書籍都沒有的內容。


第一版的印刷,錯漏都還是挺多的,但瑕不掩瑜。

這不是一本面向初學者的書,而是對python基礎比較了解,但沒有形成自己的知識體系的人應該讀的書。書里介紹了相當多的輪子,也可以說是工具,學到一定程度,人應該找到自己稱手的工具,打造或學會使用別人打造的優秀的工具,怎麼組合運用一些好的工具。這就是我在此書學到最關鍵的思想,了解各種輪子,了解各種輪子的適用場景,如何去組合輪子,如何開發輪子的擴展達到優化使用體驗的效果...

沒有一定項目經驗的,是寫不出這樣子的書的;沒有一點項目經驗的,也是讀不懂這樣子的書的。這書更傾向是導讀之類的書箱,書里每一兩章的內容估計都可以擴展成另一本書,全部湊在一起就是整個web 開發的流程,看完此書(甚至是看完此書的目錄),就可以大概了解web 開發的流程是什麼,然後自己缺哪補哪吧。介於書中的篇幅,很多話題是點到即止的,想了解更多就自己去挖掘吧。俗話說得好,「師傅領入門,修行靠自己」。這句話就是對此書的高度總結了。


這本書,充滿了豆瓣(知乎)風氣,同時很接地氣。作者經歷豐富,知識面很廣,所以想帶給大家很多東西,對於新手來說不太合適。

Flask有兩章,並不是本書的重點,而是每一部分都是重點,對於開發的規範化很有幫助。

另外小白說一句,配圖太少了,作者很實誠的用代碼鋪滿了全書。


沖著豆瓣的名頭,去年還在預售中我就買了。

很失望,定價也偏高。

我覺得這本書適合翻著目錄,對照知識點,然後自己去google學習。


跳躍性很大,感覺吧,作者是想把他畢生經驗寫在這本書里,所以覆蓋面很廣。但是又都不精。

作者定位有點模糊。這本書如果是面向初學者,那不如《Python核心編程》《flask web開發實戰》,如果是面向有經驗的開發者,又不如Python cookbook。

看看目錄就好了。比如他會介紹什麼時候用什麼包,用什麼庫。但是他介紹的未必詳細。你看到那些包名,去網上搜官方文檔自己看看就好了。


完全就是報菜名嘛,把作者工作以來接觸到的東西列了一遍,整本書都是

  1. 舉個NB名詞
  2. 說一下作用
  3. 舉個十幾二十行的小示例講一個單一的小功能,多的什麼都沒有
  4. over ...

也不能說完全沒有價值,只能說看完了,哦,有這個東西,然後,沒有然後了,自己去找官網文檔或者買書來看吧,整本書給人的感覺就是急,就像讀書時候老師要急著下課回家的感覺一樣,在黑板上寫一下,這個是XXX,它是用來做XXX的,一般這麼用,好,下一題!

知乎上的書,買了采銅一本精進,剛買回來看的時候得把「如何成為一個厲害的人」這一行用紙蒙住,太羞恥了,初看還覺得高深,現在再看覺得自己是SB;

第二本就是董偉明的這本,看目錄,好像擺了一大桌子菜,看著很豐盛,結果一下筷子,咦!這水煮牛肉就面上有薄薄的一兩片,下面全是豆芽嘛!這個烤鴨也是,就鴨骨頭撐著一層滋滋流油的皮,肉呢?!!!娘希匹,老闆過來!退錢!

各位也別迷信什麼知乎上的大V,真的有實力的人早就在現實中混出名頭了,逛知乎就當看個樂,就像買耳機聽個響一樣,學知識還是老老實實買經過時間考驗的經典來學吧。

另外,我話撂這兒了, 我再從知乎上買一本書自己剁JJ,連蛋蛋一起剁!


如果是沒從事過web開發初學者,看起來會雲里霧裡。因為書中很多內容都是作者在生產環境下的經驗總結。

初學者光是研究上下文估計就要想半天。後面又講緩存(memcache, redis),消息系統(celery),多線程,非同步io,測試工具……也許正本書啃完還是不知道怎麼開發一個完整應用。

所以我建議先擼一遍狗書,再利用這本書擴展下自己的應用。因為這本書的好處知識點很新,是對狗書很棒的擴展。比如,我最近就利用flask_admin,flask_restful重寫了狗書中的管理部分和api系統。


還沒看完就來評論,對於剛入門的開發小白,這類書籍很重要,可以避免走很多不必要的彎路。我覺得這本書完全複合作者的寫作目的。而我可能要兩年可能才能把web開發的方方面面涉獵到,要到作者的技術水平可能甚至更久。所以這本書的確像大學老師畫重點,讓你在開發的道路上絕對不翻車。當然,也有可能自己摸索出一條更好的道路,不過既然面前有一條不錯的路,為什麼不去試試呢?技術本來就是用來革新的,也許不久以後對於作者今天推薦的技術,大家會有自己的不同看法,這也是很好的。

總之感覺乾貨滿滿。

為作者的誠意點個贊,希望以後有更多的大牛出來分享(我個人更喜歡以書的方式,哈哈)!


一本用來劃重點的書。


當時買書完全是沖著作者來的,買來後最大的感覺是:失望

從目錄應該就能看出來了,通篇羅列概念,沒有按照一本書的標準組織內容結構,一會蹦出一個新概念,完全不知道在講什麼。


這本書更像是個人筆記的堆砌

真心推薦先去看看《Flask Web開發》,然後再翻翻這本書1小時左右,然後決定買不買。


用windows的孩子表示在ssh-kengen就跪了

作者表示「我不用windows,所以建議你用Linux或者Mac。下次我在書中寫明不支持Windows算了」

google解決這個問題後,vagrant up又跪了!用戶體驗相當不好。


看完Flask Development一書,在公司書櫃里看到這本書,正打算看。個人學習網路和運維,打算看看小明這本書,哈哈。提升下個人實力。


本職是數據分析師,但是不少工作時間花在了用Flask + jQuery/React 把一些業務報表或是預測建模的模型做成網頁端的數據產品上。所以算是半個兼職Web開發。

我覺得《Python web開發實戰》適合做為任何一門python web框架官方入門教程之外的補充讀物,儘管書里介紹的是Flask,但其實真正跟Flask有關的只有第三第四章。你不能指望通過閱讀這樣一本書迅速掌握Flask的核心API,或是學會如何從0開始搭建一個輕博客之類的,如果有這樣的需求,建議先看Flask官方文檔,再看Miguel Grinberg的Flask Web Development或是Mastering Flask。如果已經能用Flask/Django寫一個簡單的webapp了,但對web開發的全流程缺乏系統了解的,看這本書還是能學到不少乾貨的。

缺點是書價太貴,想要省錢的話,可以按著本書的目錄了解一下web開發及其周邊的基本概念。然後去書里提到的幾個python module,例如celery / gunicorn /supervisor / ipython notebook的官網上去看相應的介紹。


占坑 等我看完再答


沒看,只說一句價格有點高,目錄看著還行,應該有點貨


怎麼感覺評價差的基本被摺疊了?

這本書剛出版我就買了。

然後直接送人了。


包教包會不包分配

在看,看目錄覺得很棒,在只看了目錄的情況下安利了幾個人。

補充下面這段和python高手之路一模一樣的

python高手之路的描述


知識面比較廣,但都點到為止。滿書的代碼,並沒有比官方文檔入門介紹深入多少。從目錄結構看取名開發實戰倒也合適,從內容看不到太多實戰的影子。全書最讓我驚奇的是定價。

一本技術書能結合官網和google學到東西就是好書。適合有一定基礎,向進階邁進的程序員。


推薦閱讀:

TAG:Web開發 | Python | 實戰 |