看作者自序里的目标读者群,也许我不能算在其中。不过,这本书我是怀着一种追星族的心态买的,我可以说是在李先静老师的影响下才进入移动开发这个行业的。我毕业后,一直是做windows桌面app的,后来天天在google reader上看李老师的blog,感觉是发现了一片令人激动的新天地,咬咬牙,离开了那个猪圈似的外企,进入了移动开发的行业。
所以,我几乎是第一时间就在china-pub上购买了这本书,每天晚上睡前读一读,今天算是读完了。不过,我却感觉到有点小失望,可能这本书并不是我的茶吧。
这本书有很多优点,语言流畅,全面地覆盖了系统开发的要点部分,该讲的都讲到了,重点也很突出,着力写了状态机的应用这样的关键点。总之,这本书和李先静老师人给我的印象一样,就是两个字,靠谱。
另外一面是,我是个看书不大仔细的人,也发现了几处有点可疑的地方,有些自己的意见。
p45,对assert的使用,我一直认为,assert用于断言绝不可能发生之事,所以有assert,就不应该再用运行时检查。发布版本中不打开assert,就是因为开发人员至少再把他认为绝不可能发生之错误全部排除掉。
p57,快速排序不是不需要额外的空间的,递归时在栈上保存状态也是空间消耗,我觉得这个只是看的角度的问题,但是如果定位是初学者,也是写清楚为好。
p75,最下面单线程版本和多线程版本两个序号写反了吧。
第十章那个xml解析器,我看到几个if ... else 中的 else 是写的 else {},我想,虽然大家都知道这里应该放错误处理(后来我下了随书代码,这里的确写了错误处理),但是还是加个注释说明吧,这样空在那里,多难看。
最后还有一点我最不满的,就是整本书里附带的例子代码,缩进都十分混乱。我最讨厌看没有格式的代码,所以我开始还读得比较认真,后来就没有什么心情了,我理解这是把代码直接粘贴到word文档的结果,但是编辑同学,你这是出书啊,麻烦专业点好不好。
最后说下这本书的整体感受,国人写的技术书大多是这个范儿,有点料,但是又不是太多料。你可以学到一些东西,但是又不可能学到很多东西。整本书是一个经验传授+知识点滴的结构,也不方便拿来当字典。不过李先静老师已经说了他的书是面向初学者,是给那些最早一行程序也写不出来的同学的培训材料,我买来看明显是自作多情了。