• Ruby DATA at 2015年06月19日

    #3 楼 @msg7086 嗯,其实我们基本上也这么用,虽然没有用 zip 包。我们来做一些系统管理的脚本时,会把模板文件放在后面,有的比较长,脚本本身没多长,倒是模板文件比较长,这时候用 DATA 比较方便,原本两个文件合成一个,并且代码和数据进行了分离,和你的想法是一致的。不过这个 DATA 作为流输入,本身就有很多流的可用方法,相信可用的场景还很多。如果你有过这样的应用场景的话,不妨和我们分享一下。

  • Ruby DATA at 2015年06月18日

    #1 楼 @msg7086 那你认为这种方式的缺点是什么呢? 为什么宁愿用 heredoc? 交流一下😄

  • #9 楼 @jay_li Rails 的源码还是很多地方可学的,Sinatra 也是好东西,果然大家现在都开始使用轻量级的框架了,我们的 Ruby 客户有一半多都是 Grape 和 Sinatra

  • Ruby 中的 Profiling 工具 at 2015年06月14日

    #22 楼 @pathbox ruby-prof 可以看看 RubyChina 的这篇:Ruby Profiler 详解之 ruby-prof(I),也是我们写的,Profiler 一般会输出一些格式化的数据,这时候一个好的数据查看工具也是很有帮助的。

  • Ruby 中的 Profiling 工具 at 2015年06月13日

    #20 楼 @pathbox 互相学习啊,😄, 快是因为 ruby-prof 是 c 实现的,而时间不一样也跟这个实现有关系,再一个 ruby 的 gc 是个很耗时的操作,ruby 实现的 profiler 也会增加 gc 的压力,代码写的不好的时候这个 gc 的时间可能就会占掉一半,导致计算的时间出现较大的误差,不过一般我们调优的话,不是用两个工具去调,而是用一个,先多跑几次取一个跳动不大的作为基准,针对这个基准再去调,而不是用一个绝对的值去调,所有的 profiler 都会增加程序的绝对执行时间,得出的程序运行时间都是不准确的,越是贴近底层越是接近实际的执行时间。

    看看下面这几个简单的 time 结果:

    没有 Profiler

    real    0m1.462s
    user    0m1.392s
    sys     0m0.068s
    

    内置的 Profiler

    real    0m20.021s
    user    0m19.188s
    sys     0m0.832s
    

    Ruby-Prof

    real    0m2.456s
    user    0m1.891s
    sys     0m0.535s
    

    内置 profiler 耗时主要增加在用户态,主要是还是因为 ruby 实现比较慢和 GC 造成的。下周可能要写一篇 GC 和内存的帖子,正好拿这个作为例子,😄

  • Ruby 中的 Profiling 工具 at 2015年06月12日

    #18 楼 @karen2015 这是什么意思,你这么招人,估计也不会有人和你联系吧,为什么不发个招聘贴呢?

  • #7 楼 @peter 😃 多谢鼓励,争取早日写一本。

  • #5 楼 @jay_li 😄 ,很高兴和你交流,只是我不太清楚,你觉得 Rails strip_heredoc的实现有什么问题吗?

    def strip_heredoc
      indent = scan(/^[ \t]*(?=\S)/).min.try(:size) || 0
      gsub(/^[ \t]{#{indent}}/, '')
    end
    
  • Ruby 中一般使用 Yaml,如@chenge所说,不过 Ruby 读取 Java 的 properties 文件也很容易,如果你有很多现成的 Java Properties 文件读取,可以用https://github.com/jnbt/java-properties,关于 Yaml,读读这篇入门博文Yaml Tutorial

  • #3 楼 @jay_li 你的这种方法是执行 shell 命令,shell 里能做的在这里都能做,只是觉得它没有通用性,而且有时候它是不太方便的。

    如果想要打印下面的输出:

    def m1
      puts "test"
    end
    

    如果用strip_heredoc可以这样:

    print <<-STR.strip_heredoc
      def m1
        puts "test"
      end
    STR
    

    那么用执行 shell 命令的方式就不太方便了吧。还是说有什么更好的方法,希望你能再补充一下,我可以更新到这篇帖子里,谢谢。

  • Ruby 中的 Profiling 工具 at 2015年06月10日

    #16 楼 @gene_wu 开发就无所谓了,基本上都会是你觉得有不太对的地方,才会专门去用它调试一下。😄

  • Ruby 中的 Profiling 工具 at 2015年06月09日

    #12 楼 @gene_wu profiler 是早就有了。如果只是比较效率的话,benchmark 是不是更好的工具呢?

  • Ruby 中的 Profiling 工具 at 2015年06月09日

    #11 楼 @gene_wu rack-mini-profiler线上是不能用的,这个工具设计的初衷就是开发时用的。

  • Ruby 中的 Profiling 工具 at 2015年06月03日

    #3 楼 @flypiggys :thumbsup:

  • 可以试试这个:

    str='\
    <div class="dialog">\
      <div class="title">\
        <img src="close.gif" alt="点击可以关闭" />亲爱的提示条\
      </div>\
      <div class="content">\
        <img src="delete.jpg" alt="" />\
        <span>您真的要GG吗?</span>\
      </div>\
      <div class="bottom">\
        <input id="Button2" type="button" value="确定" class="btn"/>&nbsp;&nbsp;\
        <input id="Button3" type="button" value="取消" class="btn"/>\
      </div>\
    </div>'
    
    console.log(str);