• 一个很容易中招的地方 at 2012年08月28日

    #32 楼 @hooopo

    呵呵,你举的例子很好啊。不过和你之前的说法自相矛盾... 那你说他们毫无例外的都没有加括号,这是谁错了呢?

    如果一定让我两者选其一,我宁可选择你介绍的代码示例,反正不推荐的用法都用了,还加那两个括号干嘛?只要了解 Ruby 运算符的结合性,就会知道,几乎所有情况下,不加括号的表达式很少出错,因为一开始 Ruby 就是为不加括号而设计的。

    但是如果让我自己写,我一定会写两行,因为写在一起除了可能会让你出错,没有任何好处可言。这是个条件表达式,又不是方法,或者 block, 这样的代码,在 if 语句内赋值,甚至会给我一个错觉,是不是声明了一个条件表达式内的本地变量?? , 如果不这样写法,我根本不可能有这样的错觉。

  • 一个很容易中招的地方 at 2012年08月28日

    #26 楼 @hooopo

    不是不能用,只是不推荐而已。我看着还是别扭,这就好像重构里面讲,你通过方法参数传递进来一个参数,然后在方法体内,又对这个参数重新赋值一样,这样方法里的参数还是原来的那个参数吗?你可以这样用,不过你到底是要传递形参进来,还是赋值?而且对于 Ruby 这种传值而不是传引用的动态语言,会引起歧义。

    有时候多一行代码更清晰一些。看似小问题,你可能在几个月后,浏览代码,在这个地方栽跟头。

    该什么语义就什么语义,这绝对不会阻碍你写出优质的代码。Wiki 上只是说如果非要那么写,一定加括号,这是好的风格 (虽然不加括号一样执行正确), 但是并不代表支持那么写。

  • #50 楼 @aptx4869

    我不是果粉, 而且平心而论,咱社区以及网上这种 Apple 一边倒的风气,谈不上哪里不好,但是对于 Ruby 自身的普及绝对是一件大大的坏事情!!

    至于苹果装 linux 和苹果装 Windows , 这概念上相差还是老远了,Linus 看重的是苹果的做工,再加上两个系统原本就是一家,一脉相承,都是 UNIX 的子孙,统称UNIX LIKE系统,纯 CLI 方面差别自然不大,linus 肯定不是为了去用 Mac 的图形界面才使用 Mac 的。

    就算不谈两个系统的渊源,极端点说,人家是牛人,就算没有驱动,人家可以自己写,无论什么电脑,在他们这帮人手里,肯定是效益最大化,硬件只是一个平台,软件才是精髓。这点和绝大多数买苹果装 XP 或者 WIN7 的使用者完全不同,这种人我见过好多,基本上都是只会 QQ 斗地主的电脑 BC, 有的连打字都不会,这种情况下,99% 的用户都是为了显摆装逼的。

  • RubyConfChina 2012 预热帖 at 2012年08月28日

    支持,支持!!

  • 一个很容易中招的地方 at 2012年08月28日

    #18 楼 @azhao

    其实没必要在这个上面纠结,如果一定要表达楼主的意思,可以这样写更清晰:

    b = 1 and a = b
    
  • 一个很容易中招的地方 at 2012年08月28日

    #20 楼 @hooopo

    怎么没关系呀。任何一个阅读过重构的人,看到楼主这样写代码,不发飙才怪。

    重构的基本要素就是要让代码清晰易读,楼主的代码,在条件语境中赋值,是重构强烈不推荐的。怎么能没有关系呢?

    #21 楼 @shouya

    这个用法很好啊。很明显,这个是条件语义,而非赋值语义。

  • #24 楼 @ery

    bash 的确很不错,之前我写了不少简单的函数,一股脑全部放倒.bashrc 里面,又乱,又没有条理,而且文件好大了,不易于管理,所以后我就把这些函数提取了出来,单独作为脚本放倒 PATH 里面,提取出来之后,突然发现,很多命令彼此之间经过很少的改动,就可以管道起来,实现比原先有趣的多的功能。然后就这个思路发展下去,精简了很多函数,但是实现了比之前多很多的功能,真的很过瘾。现在想想,这不单有Keep It Simple Stupid的精髓,还有点重构的意思。重构的核心思想,不也是将每一个具体功能的实现,提取到一个单独的实例方法中,也只有等你提取出来之后,才能体会到一大片之前几乎不可能注意到的艳阳天.

  • #17 楼 @mobiwolf

    说实在的,Excel 太成功了,以至于 Office 给我的感觉就是 Excel 在撑着... 那个 gem 应该不错。

  • 一个很容易中招的地方 at 2012年08月24日

    #7 楼 @tumayun

    怎么说呢?Ruby 虽然灵活,绝对不是让你这样用的。你这样的代码,绝对是未来 bug 的源泉,你要是不改,迟早还要再次中招。建议有空看看 Ruby 重构吧。

  • 谁说 Ubuntu 好用? at 2012年08月24日

    Ubuntu 你都觉得不好用,那让我这个用 Slackware 的人情以何堪 ?

    我这个连包管理都没有,图形界面说是 XFCE, 我知识用个 Terminal 而已。下一步 Terminal 我也打算省掉了,因为 Emacs 24 自带的 Term 或者 Shell-mode 已经非常好了。

    可是我感觉现在越用越爽,做个什么事情,效率越来越高,为什么呢?因为你了解越多,你会越喜欢他。其实我挺初级,但是我知道我现在已经深刻理解了 Unix 的哲学,并且方向是对的,使用方式也是没错的。

    用鼠标点来点去,你永远无法成为 Linux 或 Mac 下真正的高手,Windows 下就另说了,不一样的哲学。

    相信我,就直接把 Win7 格式化了,换成 linux 好了。断了其他所有的念想,用不了一个月,你就入门了。

  • 最近,在 bash shell 脚本编写方面小有心得,主要是为了体现一种在 Linux 下工作的极致效率, 换句话说,把 CLI 进行到底,不似 Mac, 图形界面也很好,这才是 Linux 的精髓。

    学过 Ruby 之后,反过来看 Bash shell, 真的是很优秀的。至少在我目前解决的这些问题的场合 (都是小问题,典型的,Linux 下面常用的那个几个命令来回组合,通过管道来实现需求,也就是 Linux 常说的K.I.S.S, 我估计咱社区很多人都不知道 KISS 是啥意思吧.)

    扯了半天,就算我想分享,大家估计也不见得感兴趣... 我发现我可能离咱社区的主流思潮越来越远了。

    p.s.

    楼上跟主题有关的总共有 7 条回复。(不连我), 只有第一条在说 Ruby, 我多么希望这是 RailsConf.

  • #63 楼 @karma

    我发帖当时的心境和此刻的你,其实差不多。

    想想民国时期也算是乱世,整天打仗,国力衰弱,可是照样出了那么多文学,艺术大家,现在号称世界经济强国, 可是大环境的确太浮躁,我觉得也有你所谓的文明危机, 除了一些众所周知的原因之外,我觉得因素也是多方面的。咱老百姓也看不懂,也管不了。

    不过说一千,道一万,这并不妨碍你,努力的让自己成为一个优秀的人。不说别的,至少经济上,比当年民国时好很多了吧。

    我觉得你是一个很有想法的年轻人,坚持走自己的路,让别人去说吧,一切都会变的。

  • #57 楼 @karma

    五个月前的帖子了。我也就是发发牢骚,你还年轻,淡定,要淡定~~

  • #56 楼 @ery

    从此,你将成为我的偶像~~~ 👍 顶你!

  • #1 楼 @moonjourney

    我怎么没感觉到呢?我虽然没有系统的看过国外有关 Ruby 的博文,不过也算经常 Google 到一些东西,到也没发现,不过总的来说,我还是看书多,看文章少,也许这不是空穴来风。不过,就算是事实,又能代表什么? 又有什么意义? 本来就不是新手的玩意儿。

    #16 楼 @gaicitadie 盖茨他爹,我觉得你听认真啊。没事儿也发发技术贴啥的。尤其是有关 Python 和 Ruby 的。咱也学习学习. 顺便提一句,我就挺认死理的,而且崇尚经典,你想找人讨论,可以找我啊

  • YASnippet 发布了最新 0.8 版. at 2012年08月21日

    #14 楼 @hbin

    嗯,有关无法和 AC 一起使用的那个 issue 是我写的。

  • #10 楼 @huacnlee

    华顺,你是玩笑话还是当真??

  • YASnippet 发布了最新 0.8 版. at 2012年08月21日

    #11 楼 @hbin

    晕,我都忘了咱社区还有你用 Emacs 嘛。

    重命名是因为 yasnippet 要进入 emacs 官方 resource, elpa.gnu.org, GNU 有严格的命名约定,我倒是觉得改回来挺好的。

    你 AC 不能用,你肯定是在 AC 里面设定了通过 AC 直接使用了ac-source-yasnippet, 这不全怪 yas, 因为 AC 使用了 Yasnippet 未公布的 API. 而是 AC 更新太慢了。那个日本人好像不怎么维护了,否则这点小问题早解决了。你看看 YASnippet 每天有多少 issue, 多少 commit.

  • #1 楼 @willmouse #6 楼 @fredwu

    Emacs 无论是<<- 还是<<都是可以支持的。而且针对 heredoc 参数之后的其他参数,缩进支持也不错。

    现在只要是多行字符串,我都倾向于使用 heredoc,很爽呀。

  • #4 楼 @hooopo

    顶 4 楼。又知道了个.with_clean_env, 不过能用到的情形实在是不多。

  • 没看楼上内容,不过看楼主标题,估计要讲的不是, 是灵活。

    Ruby 这门语言的特点是灵活,同一个问题可以用很多种优雅的方法来实现。

    怎么说呢?这就像武侠里的练功,练到后来,随性而发,在最适合的场合,使用相对最适合,最优雅的方法. Ruby 给你提供了实现这种选择的基石,剩下的就看你怎么发挥了。

    你说你用过 delphi, 可是你竟然不习惯 end, 其实这两者不仅仅是 end 相似,还有个共同点是:设计层次, 比较严谨而且具有一致性, 但是使用上语法却非常灵活(Object pascal 的语法,和 C, C++ 完全是同样级别的)

    p.s. 顺便再说一句,不管是{}, 还是 begin end, do end, 这些都不是让人敲的,要不然,要 snippet 干嘛?

  • To 各位刚接触 Rails 的同学 at 2012年08月21日

    我怎么发现,我即使把 Rails 搞明白了,也不想研究那些个东西。

    没别的,就是觉得 Web 开发太复杂,太繁琐,理论性的东西太多了,反倒是感性的,有趣的东西反而少。

    还是 Ruby 自身有趣一些。

  • ......

  • 数组对应项相加 at 2012年08月19日

    #11 楼 @suninny

    其实 reduce(:+) 就可以搞定的事情,何必再搞个 sum 出来?而且还没有 reduce 灵活。

    我想这也是 Ruby 一直没有增加 sum 方法的原因吧。

  • 数组对应项相加 at 2012年08月19日

    方法都让大家想完了..

    来个 loop 版本的吧。

    x = a1.zip(a2, a3).to_enum
    y = []
    loop { y << x.next.reduce(:+)  }
    
  • Ruby语言入门 我看过一点,书本身還是有特色的,就是坑爹的翻译质量太差!! 到处错误。有机会,我打算看看英文版。

    Ruby Programming-向ruby之父学程序设计 作为入门,是不二的选择,我看完双飞燕后都看过这本书,一天不到就看完了。挺好的。(这本书的序是 Matz 写的)

    最后,说一句,别听一楼的,那是瞎掰. 连 Matz 本人都说:这本书如果完全读懂, 那么你就精通Ruby了(这不是我瞎掰的,请自行翻阅原书 266 页) , 我怀疑大部分说双飞燕是入门, 应该都没有从头到尾通读过双飞燕。这么说吧,我到目前,也就仅仅读过这么一本中文版本的 Ruby 书籍 (捎带看了不少 ri 文档), 但自我感觉绝对不是入门那么简单了 (光笔记就 15000+ 行了). 如果 Ruby 编程语言作为入门,那么至少要非常熟悉一门其他语言才可以。没信心的话,这本留着最后看吧。咱社区大把的人没看过这本书,Rails 照样写的刷刷的。我是子愧不如的。

    不过,如果想提高或进阶,这本书是必读的。但是看你描述,最好不要一开始就读。