標籤:

回應「如何評價《python web開發實戰》?」的評價

這篇文章是「洗地」帖。

知乎上有一個問題 如何評價《python web開發實戰》?感謝幾位同學邀請,現在距離出版已經半年了,今天突然想起來回應下這個回答,發現想說的還挺多,直接寫一篇專欄吧。

我先說一個「為什麼給人沒有太多實戰的感覺」的問題吧。我這本書借著「豆瓣」這個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. 我這本書這種效應也會給他們帶來新的流量,這種流量的價值很高,因為都是真的目標用戶。

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

@許辰: 性價比太低

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

匿名用戶:@蕭井陌 說這本書代碼垃圾,邏輯也垃圾。培訓課上經常手撕董明偉的代碼。

曾經拒過蕭井陌的那家大公司的某Python牛親自表示,這本書是從宏觀講web,狗書是從細節講web,至於好不好不予對比。

但我不小心看過這本綠書,代碼確實不咋地讓人微微泛噁心。

A:知乎看世界。比如我之前寫的那個網雲爬蟲最後被寄了律師函,我覺得這應該是被人舉報的。有些人技術不行,代碼寫的也爛,但是看不了別人好啊,就得背後干點什麼。一看這問題下不少回答都覺得我的書有用,有些人很難受,雖然那我不能理解這種難受,但是我勸你,有病就早點看。哥,辛苦你千萬別匿名。怕啥啊?不要只說結論,你可以給我錄個培訓過程小視頻啊證明 @蕭井陌 手撕我,你完全可以說這個「某Python牛」的名字,別給人編造的感覺啊?至於你說的「但我不小心看過這本綠書,代碼確實不咋地讓人微微泛噁心。」,很抱歉讓你的產生了這種奇妙的感覺,你可以show me your code呀,別光噁心啊!!!你說對吧,我等你手撕我,但是千萬別給我裝某個東西的感覺。對了,我叫董偉明,你找撕我的人親自來,你蹭熱度,又匿名,不是蠢就是壞。

結束語

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

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

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

國內有哪些 Django 牛人?
Python從零開始系列連載(12)——Python的基本運算和表達式(下)
為什麼感覺django裡面class based view很難呢?
關於python Django與Flask學習的一些疑惑?
用django建一個簡單的購物網站需要多久?

TAG:Python |