• 按时间
  • 按推荐
  • Philip.Z
    这本书的作者应该是秉承着让初学者也能轻松掌握 Ruby 的思想来写这本书的,因此应该是由浅入深,逐级深入介绍着这门语言。事实上,本书的前半部分确实做到了,能让大家感受到 Ruby 敏捷编码的魅力!但从后半部分的讲解块和 Ruby 的类库开始,编写的就开始变得有点“赶”。一些个别代码用到了后面章节讲的知识;讲解类库的部分,说它“复制文档”就有点过分了,不过一些代码的讲解还没有文档详细就让人觉得应该是篇幅受限?或者是他“无意中”漏掉了一些需要说明的部分。另外练习题方面也同样存在问题,大部分练习太简单,但个别练习只用本章和本章前学到的内容是很难实现的,例如 14 章最后一道练习题,答案中就用到了 15 章的 Hash。可能是 松本行弘 的推荐为这本书带来了额外的光环,实际编排及内容并没有我期望中的那么高,由于本书是面向初学者,针对 Ruby 主打的例如 Mixin 等也只是点到为止,这方面还可以参考 Metaprogramming Ruby 之类的书。另外值得肯定的是,本书的翻译非常好,在当今 Ruby 图书稀缺的情况下值得一读。
    Philip.Z  发表于 2015-05-18 17:18:17
    推荐
  • Baymax
    这书看来勘误不少 请问最近刚刚开放购买的电子书是否还是第一次印刷的呢?
    Baymax  发表于 2015-05-12 17:45:57
    推荐
  • 大雄兔
    电子版怎么还不出啊,这么多勘误没个电子版
    大雄兔  发表于 2015-04-02 11:14:30
    推荐
    • 已确认的勘误会即时更新到电子版里么?不过那样的话电子版应该带个版本号呀

      Seq  发表于 2015-04-26 21:22:38
    • 以前买的电子版PDF格式的,如果更新了会有消息提醒的,现在貌似书多了后,有的PDF更新就不及时,但是网页版的貌似更新很及时的。

      大雄兔  发表于 2015-04-27 10:51:22
  • 大雄兔
    电子版呢?
    大雄兔  发表于 2015-04-01 16:29:32
    推荐
  • 马金晶
    已经半年多了,电子版该出来了吧~
    马金晶  发表于 2015-03-24 21:10:25
    推荐
  • guofengcn
    半年了,也该发电子版了吧^_^
    guofengcn  发表于 2015-03-11 17:49:02
    推荐
  • al5hn
    附加资源能不能用通用的压缩方式啊,比如.zip格式。 搞个.rar,就windows下能用。要知道程序员多数都用unix 的。
    al5hn  发表于 2014-12-21 10:52:23
    推荐
    • 在 Unix 中,使用 7-zip 软件也是可以解压 .rar 文件的。

      黄志斌  发表于 2015-04-27 16:16:18
  • niuge
    原书148页的代码清单11.15
    a=b=c=0
    ary = [1, 2, 3]
    ary.each do |a; b|
    b = a
    c = a
    p [a, b, c]
    end
    puts
    p [a,b,c]
    第3行演示在块变量后面加“;”号来定义块变量,与不加没啥区别啊,这是讲的啥意思呢
    niuge  发表于 2014-10-25 09:38:24
    推荐
    • 这块儿相当坑爹啊,我看了半天又试了半天才懂。
      原文说“使用在块变量后面加;的方法,即可定义块局部变量”,但实际意思是说,“块变量”后面只要加了分号,那没加分号的变量就是“块局部变量”了。这里要不就是日文原文说得模糊不清,要不就是翻译出了问题。没有日文原版无法评价。但感觉译者如果自己看懂了原文,不应该写出这样有歧义的话,哪怕要尊重原文,至少给个译注吧。

      草鞋超人  发表于 2014-11-19 17:59:00
    • 坑爹啊,还有字数限制……


      所以这个例子里,a加了分号,b没加分号 (原文里是x,y,z,楼主这里写的是a,b,c),所以a是块变量,每次调用块时会被分别赋上1,2,3,所以可以拿来给b和c赋值。
      而b是“块局部变量”,意思是跟第一行里面,块外面的b是不一样的变量,所以外面的b最后的值还是0,而块里面的b最后的结果已经是3了。
      这里如果a不加分号的话,|a b|这么写是过不去的,ruby会报错。写成|a,b|的话,就是两个块变量了,但ary.each只能给一个块变量赋值,所以b的值会成nil.
      如果写成|a|的话,则b就不是块局部变量了,那么在块里面引用b的话,其实跟块外面的b是同一个变量(因为块里面能直接使用块外面的变量),那么最后外面b的值就不会保持为0,而是也会跟着变成3了。

      草鞋超人  发表于 2014-11-19 17:59:20
    • 其实这种分号的用法应该比较少见,只有在你一定要在块里面用跟块外面一样的变量名时有用。只要块里面的局部变量跟外面的局部变量名字不一样,那直接在块里面用就行了,根本不需要特别定义一下。所以一般还是不要自己折腾自己了。

      草鞋超人  发表于 2014-11-19 17:59:31
    • 谢谢兄弟

      我又试了一下,感觉这个点还是不那么明白,ary.each do |x; y| 和 ary.each do |x, y| 执行结果都是一样的,y在block里面取到的都是nil,而且都影响不到外面的y

      看书上的意思,好像是说:加了“;”的块变量会跟ruby1.8的时候一样,只要与外边的变量名称相同,就会当成同一个变量,想着结果应该是[3, 0, 3]。可实际结果却是[0, 0, 3],我当时就有点迷茫了

      我读书不求甚解,以后万一用用到的,直接避免这问题产生就得了

      niuge  发表于 2014-11-20 12:27:25
    • 被你一说我也有点晕了哈。
      ary.each do |x, y|我是理解的,前面也写过,这是两个块变量了,但ary.each只能给一个块变量赋值,所以b的值会成nil。(143页,代码11.9解释过这个,144页原话,“块变量比较多时,多出来的块变量值为nil)。
      ary.each do |x; y| 和 ary.each do |x, y| 执行结果确实都是一样的,在这个例子中确实看不出来两者的区别,这还是因为ary.each只能给一个块变量赋值。但只要一个调用方法,比如hash的each方法,就能看出区别来了。我贴一段程序示例,看看能不能放下:
      x = y = z = 0
      hsh = {"a" => 1, "b" => 2, "c" => 3}
      hsh.each do |x; y|
      p x
      puts y
      y = x
      z = x
      s = x
      p [x, y, z, s]
      end
      puts
      p [x, y, z]

      草鞋超人  发表于 2014-11-21 21:00:41
    • 格式丢了,没办法,凑活看吧。在这个例子里,如果是hsh.each do |x,y|和hsh.each do |x; y|,结果会不一样。前者的block里面,因为x和y是两个块变量,x会赋值为各个key (”a“,"b","c"),y会赋值为各个value (1,2,3),而后者里面,只有x一个是块变量,而y是”块局部变量“,因此hsh.each方法会调用只有一个参数的方法,即给块变量x赋值为[key,value]数组,而y作为块局部变量,在block里的初始值为nil。而无论y是块变量还是块局部变量,都不会影响到block外面的y值。

      草鞋超人  发表于 2014-11-21 21:04:53
  • 苍松
    已经买过了,这本书讲的很适合入门,从另一方面来讲讲的比较浅,但是涉及的方面倒是不缺,只是引导入门者会使用ruby,深层次的东西还是要去读其他讲的更深的书和官方的技术文档。非常适合入门者看,如果有其他语言编程基础的看着会感觉很简单,如果没有基础的也可以直接看的懂。最好的入门书,没有之一。
    苍松  发表于 2014-10-11 18:09:11
    推荐
    • 谢谢您的评价:-)

      乐馨  发表于 2014-10-13 08:37:26
  • accbgo
    非常棒的书本,翻译很用心,适合初学者或者想要打下很扎实基础的人。
    已经买了几本。等待电子板中...
    accbgo  发表于 2014-09-30 16:13:17
    推荐
  • cxbird
    上市了吗?为什么京东还没有货呢?
    cxbird  发表于 2014-09-16 10:13:28
    推荐
    • 京东这次动作有点慢了,不知道他们怎么回事。您要是着急去亚马逊下单吧。

      乐馨  发表于 2014-09-17 08:31:31
    • 京东有货了。

      乐馨  发表于 2014-09-17 09:02:06
    • 昨天下午2点京东就发消息有货,并订购了。现在我已经拿到书了。谢谢你!!

      cxbird  发表于 2014-09-17 09:50:30
    • 嗯嗯,不客气,应该谢谢您的支持。

      乐馨  发表于 2014-09-22 14:58:26
  • HashMap
    日语原文版撸掉一半了,基本上可以说是完全0基础写个计算机小白的起步教程。
    HashMap  发表于 2014-09-01 14:42:18
    推荐
    • 9月10号左右.才有现货, 你难道看了原文的日语书么. 但精简肯定想到了.至于精简到什么样,不好说了.毕竟这都1年前翻译.

      axjx  发表于 2014-09-01 17:27:41
    • 内容是完全对照原文翻译过来的,合同有规定需要完全忠于原作。

      乐馨  发表于 2014-09-01 17:51:10
    • 看的就是原版。
      典型的日式教程。面向的对象可以是真的是0起点,无论是Ruby零起点还是编程零起点的读者。

      HashMap  发表于 2014-09-29 15:35:50
  • Kenny Woo
    谁能告诉我这书适合什么人看?刚入门的还是0基础的?学了rails回头看这个是不是没什么必要了?
    Kenny Woo  发表于 2014-08-21 06:19:44
    推荐
    • 入门0基础有什么区别么, 至于你是否有必要,看你ruby自学到可以无视基础,面向中高级,那这本书就不适合你了. rails本身就是一个框架,不会ruby可以初级应用是没什么问题了.可以无视这个叫教程了. 仅个人意见,如有错误可以批评指正.

      axjx  发表于 2014-08-21 18:04:53
    • 我个人认为0基础是根本没接触过,入门是看过但没有掌握或基础不牢固。我之前也看过programming ruby的英文版,但是我是结合rails看的,并没有全部通读那书,所以我不知道这本和那个有什么区别,会不会有什么不同的地方,你的评论也说原书500多页,而这500页只是和中文教材一样点到为止,那我就不想购入了。毕竟ruby更新太快,这种译书根本没什么收藏价值。

      Kenny Woo  发表于 2014-08-22 18:28:40
    • 看了样章,这本书讲基础概念,层次还是比较清晰的。楼上,你既然对ruby没兴趣,何必还要购买呢。ruby的几次版本里,其实整体结构是相同的,只是部分语法做了改变。所以你不管看哪种语言出版的书,区别不大。版本更新快同样出现在其他语言里,所以没什么奇怪的。我觉得写ruby的人都是源于一种兴趣,而不是什么收藏价值。

      汗仑尔  发表于 2014-08-25 12:48:45
  • ubk222
    几时有电子版?想问下~~~囧~~~
    ubk222  发表于 2014-08-19 11:44:13
    推荐
    • 之前问过,貌似是要在半年后。

      John_  发表于 2014-08-29 10:04:48
    • 半年后入电子版

      liuyi_v  发表于 2014-09-25 21:09:56
    • 说4月份出电子版,现在4月都要过去了。也没见有动静。

      海员  发表于 2015-04-26 18:55:00
  • axjx
    原书 500多页. 翻译后300多页. ... 还用了1年的时间. 这翻译真是用心了. 这价格也太给力了.
    axjx  发表于 2014-08-18 18:14:24
    推荐
    • 原版是32K的,中文版重新排版成16K,页数自然会减少。

      乐馨  发表于 2014-08-19 08:01:04
  • 1
  • 2
  • 3