Python之美
首发于Python之美
回应「如何评价《python web开发实战》?」的评价

回应「如何评价《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高手出来写书,如果你没有途径欢迎各种方式找我引荐。
编辑于 2017-03-29

文章被以下专栏收录