论坛首页 移动开发技术论坛

垃圾书:杨丰盛的《Android应用开发揭秘》

浏览 119389 次
该帖已经被评为精华帖
作者 正文
   发表时间:2011-03-27  
cloixio 写道
看到javaeye很多人在吹嘘、推荐杨丰盛的《Android应用开发揭秘》,个人就买了一本。

我看到作者都上来讨论了,我就之前的百思不得其解的问题再发到1L:


李宁的《Android-OPhone开发完全讲义》,http://product.china-pub.com/196865

与杨丰盛的《Android应用开发揭秘》书中Examples_08_09例子,与李宁的《Android-OPhone开发完全讲义》中ch20_bluetooth例子完全一样。

李宁的《Android-OPhone开发完全讲义》中的ch12_3D(整章的所有示例)与杨丰盛的《Android应用开发揭秘》书中第12章的源码(整章的所有示例)又完全一样!

我这里说的完全一样,就是只有代码的包名不同,其他完全相同!

不知道作者对这件事情是否能解释一下,或者告诉我们:
李宁和作者是同一个人?我最倾向于这种解释。
李宁是个大黑客?他入侵了作者的电脑,下载了《Android应用开发揭秘》书中的案例代码?



首先拿到书时,再次感受到机工出版社的书的纸张独有的“薄如蝉翼、黄如粪便”的特征,不过想着javaeye一众人对书中内容的推荐,纸张的质量我忍了。

接着看书,不过我慢慢发现书中一堆晦涩不清的表述——这种表述可能是我自己的中文理解问题,算了不说了。

但书中还充斥着一堆垃圾代码,看下面书中代码(P270,免得说我诬陷):
 
private Runnable _discoveryWorkder = new Runnable() {   
    public void run()    
    {   
        /* 开始搜索 */  
        _bluetooth.startDiscovery();   
        for (;;)    
        {   
            if (_discoveryFinished)    
            {   
                break;   
            }   
            try    
            {   
                Thread.sleep(100);   
            }    
            catch (InterruptedException e){}   
        }   
    }   
};  


上面_bluetooth.startDiscovery();就是开始进行蓝牙搜索了,

接下来那段死循环就纯属多余!!代码判断_discoveryFinished为true时结束死循环,但这个死循环什么都没做啊。
事实上,完全可以把这段垃圾代码删除。

我不确定杨丰盛到底会不会Android,但我觉得这java代码写得也太垃圾了。

书中大量这种的代码,让人不堪入目。前几章,看过也就算了,后来发现越来越多
上来发发牢骚。




的确这段时间上javaeye的时间少了!,你最好拿到代码之后再真机上测试对比一下会比较好!
另外,对于你说的和李宁的书有代码相同的例子,我的回答如下:
首先,你说我和李宁是同一个人,我不明白你用心何在?希望是玩笑而已。
其次,对于李宁大师我并没有见过面,更没有通过任何方式交流过(非常遗憾!),只是在互动网上经常见到他的《Android-OPhone开发完全讲义》。故非常熟悉其名,希望能有机会多多交流。

最后,需要明确的是,《Android应用开发揭秘》一书的源代码没有放在光盘上,而是从书发售之日起就在华章官网提供了下载。现在已经被很多网站转载提供下载。

接下来时我个人想对LZ说的话:
大家都比较反感国内作者的书,我也承认和国外一些大师的作品存在差距,我也收到过很多关于《Android应用开发揭秘》一书的批评和意见,我也在努力完成这些读者朋友所提出的建议,尽管本书在LZ眼中是个垃圾,但是不代表对于所有人来说都是垃圾,曾经有一位读者朋友给我发来email说自己通过学习本书之后,在公司的“价值”翻了将就两倍;能帮助别人的书,就算不是精品,也是好书!

当然了,国内的图书市场本来就很混乱,恶性竞争越来越严重,我保留“该贴是不是因为市场竞争而诞生”的结论。
0 请登录后投票
   发表时间:2011-03-27  
我一直是就技术在讨论技术,包括我提出的那段代码,
我也是做到有事实,有论据。

你解释过你那段代码,我也依然是就那段代码进行了讨论,
如果你还有兴趣讨论,我还可以找出书中大量这样的“垃圾”代码来讨论,就看作者是否有这个兴趣了。

至于说我是市场竞争的结果,sorry,我只是一个做技术的,而且确实是一个多年的老程序员。
我可以贴出我确实购买了你的图书,我特意把《Android应用开发揭秘》放在垃圾篓拍照上传作为证明我是一个读者。





至于我提到的你书所配套的代码与李宁的《Android-OPhone开发完全讲义》的代码完全相同。
如果你不相信,李宁的《Android-OPhone开发完全讲义》的代码也可以从网上下载得到,你可以自行去下载、验证。
实际上任何人都可以去下载、验证。


按你的说法,那就是李宁赤裸裸、而且毫无改变地抄袭了你的代码,
我觉得我向你提供的这个信息,你应该感谢我,至少不应该怀疑我!
——我只是一个报料者,而且这个报料对你非常有价值的。难道一个作者看到别人赤裸裸地抄袭自己的代码,不生气吗?
对于告诉你这个消息的人,不应该给予感谢吗?
  • 大小: 939.8 KB
0 请登录后投票
   发表时间:2011-03-27   最后修改:2011-03-28
楼主又上来了,
一个只发了8个贴的id,估计是为此贴而注的马甲。
就算楼主举的例子都是事实,但LZ的结论是非常不合适的。
更别说楼主各种吸引眼球的举措。

任何书都有这样那样的问题。由于一小部分问题,而否定全部。
不是任何一个又正常思维能力的人应做的。
我怀疑楼主用心。

(我在国外,被此贴吸引,找了电子版来看看,觉得此书范围广泛,作为中文参考还是非常有用的,
实在看不过LZ表演忍不住上来说几句。)

补: 不想加新贴,在这里加几句
1.楼主不是新id,我猜错了。
2.如果是纯技术贴,贴子名字就该叫“XXX书中的代码错误”。
3.每本书都有优点缺点,多比较几本书就行了,以偏激的态度对待问题总归是不合适的。
0 请登录后投票
   发表时间:2011-03-28  
我最看不得有人针对我了!
我们读者花得是真金白银去买的书,难道有意见都不能说了?

我讨论的一直是技术吧?
我说的两本书的代码重复是事实吧?


我要针对这本书?看看我的ID是什么时候的再来攻击我吧!难道我在N年前就知道杨丰盛要写一本这样的垃圾书?我要被骗、傻乎乎地去买了这样一本书?

我是很少发帖,因为我一般都是潜水,只是看这本书的时候真是深深“震惊”了,
——一本吹嘘、在javaeye上如此吹捧的图书,居然如此不堪,当然心里有点堵了,
我的责备,开始不完全是完全针对杨丰盛的,甚至更多的是针对javaeye上一群人云亦云的“鹦鹉”!

最后说明:

正如我不希望看到一群“鹦鹉”跟着吹捧这本书一样,我也不希望一群“鹦鹉”跟着我随声附和。
我非常希望看到是:作者、或javaeye的高手能从技术的角度来讨论问题,
或者承认书中确实有不少这样的“垃圾”代码,这不就OK了?
写程序的,程序写错了,下次改好了就行啦。

可惜等我再次回复之后,作者的第二次回复就“顾左右而言他”了,接着就出现了以揣测我“用意”的人,

而且我都说了,我帮作者发现了李宁“完全抄袭了”作者的代码,怎么作者不仅不感谢我,反而百般揣测我呢?这真是令人费解?
0 请登录后投票
   发表时间:2011-03-28  
coreymylife 写道
书没看,不过这段代码确实就是这么写的,异步调用,然后以100ms的间隔做轮询检测,书也许不好,但是楼主看书的时候,也缺乏思考。不说也罢。

真的不明白,到底谁不明白啊,在那里死循环轮询不退出,干几毛还用异步啊,吃饱撑的真的.
看了这个就知道,轮询就是多余,即使轮询,最起码也要单起线程去轮询吧?
好多书中都是用同步方法的思维就写异步的代码,到底有没有懂什么是异步啊?>
0 请登录后投票
   发表时间:2011-03-28  
这书我有,草草翻了一遍。感觉不怎么样。

也就是买了国内几本android书之后,才直接导致我现在买技术书只会买英文版的。

看国内的书,有一种深深地井底之蛙、管中窥豹的感觉,也许,技术的造诣,决定了作者的眼界,也决定了书的质量。我也不是抱怨某个作者,而是整个环境,真正的大家,可能不会写书出来,因为在中国,写书是个吃力不讨好的事情。
0 请登录后投票
   发表时间:2011-03-28  
以前我也是买的这本书看的  后来我发现我写的代码和他差不多了。。现在我发现那个代码确实很烂了,将来。。。
0 请登录后投票
   发表时间:2011-03-28  
我这里也有一本,看过UI设计部分后,感觉再次验证了以前的经验,国内作者的书少买。。。
0 请登录后投票
   发表时间:2011-03-28  

楼主只是在客观描述事实

感觉作者有点狗急跳墙了,开始人身攻击了
0 请登录后投票
   发表时间:2011-03-28  
这书的定位只能用来给编程新手做参考,老手请自觉路过吧。
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics