• HR 该不该这样做 at 2015年09月16日

    #22 楼 @noob 大醉,公司多掏钱给你是你倒霉,少掏钱给你是你更倒霉,那你想哪样嘛

  • HR 该不该这样做 at 2015年09月16日

    #20 楼 @noob 倒霉?赶紧跟公司说让他们帮你少交点金啊。

  • HR 该不该这样做 at 2015年09月15日

    说不定你交的金比别人多呢。 税是统一计算的,大家都一样,那么不一样的就是医保公积金这些了。 你到手少,说明你交的多,说明公司帮你交的也多……

  • Rails 团队开发 at 2015年09月15日

    很久以前看过。 简单说就是,Java 团队里就算有一大群傻逼也不会影响整体质量,但是 Rails 就不同了。 Java 是个非常死板的语言。(Python 从某种程度上来说也很死板,所以应用广泛) Rails 则非常灵活,同样一个功能可以有好几种不同的做法,而且各有利弊。如果你有能力去掌控这些技术,就可以极大地提升开发效率,也能让系统非常稳定(通过靠谱的测试、行为驱动开发过程来保证)。然而如果没有能力(或者遇上团队里有坑子),就……

    当然,Rails 不需要这么大的团队也是一个问题。 一个网站,让 Java 团队来做,几十个人做几个月。让 Rails 团队来做,十几个人做几星期……

  • #20 楼 @rubyonme 不是所有的。 首先 Rails 有自己的约定,约定优于配置,说明绝大多数情况下用 ID 是更好的选择。 至于非 ID 的设计,我能想到这么 2 个。

    • 不想让人穷举。防止别人开个循环然后遍历你的 ID 扒数据。
    • 非 API 情况下,在 URL 层面上提供可读性更好的地址。
  • #3 楼 @fzy0201

    不是想换工作,帖子中已注明了啊。

    哪里?我并没有看到啊…… 「工作外的语言」也只是你的「初步想法」而已。 Ruby 本身是个很容易学的语言,也是个很容易拿高薪的技术栈。 我以前「本职工作」是 PHP,后来找到个 PHP 的职位,进去以后要求只用 Ruby 写代码,花了几天学了基础,几个星期上手以后就开始写项目了。编程「语言」本身并不是个很重要的东西。

  • 如果你对 Ruby 的兴趣更大,为什么不把本职工作换掉呢?Ruby 开发的收入也不低吧。

    1. 自用 Debian 公司用 Ubuntu LTS
    2. 自用 NginX 公司用 Apache(我在试图勾引他们转到 NG 上来
    3. 数据库要什么维护?查数据用 PMA 呗,别的想不出还要维护啥。
    4. 日常维护啥?升级下系统包就行了呗。数据库有自动增量备份,文件也可以自动增量。
  • lam = -> { xxx }
    go_to :payment, if: lam
    
  • #2 楼 @kingwkb 这就不太清楚了。我自己没这么干过。

  • 关于 RSpec 的一个问题 at 2015年09月13日
  • #44 楼 @trenttian finnally 读起来感觉像法语

  • 难道不就应该用 Api::ApplicationController 解决吗? 另外其实建议最好不要给类起一样的名字,否则就会出现你这样的命名冲突的情况。 命名冲突的时候要强制命名路径,比如要严格区分 ::AppCtrler::Api::AppCtrler 而不能就只写一个 AppCtrler。 建议类改名成,比如说, ApiController

  • 关于 RSpec 的一个问题 at 2015年09月12日

    #5 楼 @novtopro tasks 本身是一个数据库请求,数据库请求上的 #sum 是执行 SQL 语句中的 SUM() 函数。 如果你的 points_toward_velocity 是一个数据库字段,那么这样执行是没问题的。 但如果是一个对象的方法的话, ActiveRecord::Calculations#sum 就没办法执行了,因为没法把这个调用转写成 SQL 语句。 所以需要手动通过 to_a先执行这个 SQL 语句,然后变成对结果数组执行 Enumerable#sum 了,这样就对了。

  • 前后分离架构的探索之路 at 2015年09月12日

    :doge: 非提的欧洲移民之路啊。

  • 关于加密和 URL 的冲突 at 2015年09月11日

    URL 请好好编码。 + -> %2B -> +

  • #5 楼 @hemslo :doge: 太下流了

  • get %r{/background(|/user/write)/?\Z} do

    没用过 Sinatra,纯猜测。

  • def all_combi_origin str
      combi = ['']
      # Split into upper and lower cases
      chars = str.each_char.map { |c| c =~ /[[:alpha:]]/ ? [c.upcase, c.downcase] : [c]}
      # Combine them
      chars.each do |chs|
        combi = combi.product(chs)
      end
      combi.map(&:join)
    end
    

    这是把你的思路用 Ruby 改写后的代码。


    测速

    Benchmark.bm(20) do |x|
      x.report('all_combi')        { 50_000.times { all_combi 'ru123by!' } }
      x.report('all_combi_origin') { 50_000.times { all_combi_origin 'ru123by!' } }
      x.report('all_combi_4楼')    { 50_000.times { all_combi_4楼 'ru123by!' } }
    end
    
    #                           user     system      total        real
    #all_combi              1.540000   0.000000   1.540000 (  1.587790)
    #all_combi_origin       2.780000   0.010000   2.790000 (  2.894336)
    #all_combi_4楼          1.400000   0.000000   1.400000 (  1.443631)
    
  • 写 Ruby 就要用 Ruby 的思路去设计算法。 比如你这里

    for i in 1...s.length
      q=q.product(t[i])
    end
    

    就至少应该写成

    (1..s.size).each do |i|
    

    或者是

    t[1..-1].each do |ti|
    

    以及

    q.each do |g|
      puts g.join
    end
    

    应该写成

    result = q.map(&:join)
    puts result
    
  • require 'pp'
    
    def all_combi str
      combi = ['']
      # Split into upper and lower cases
      chars = str.each_char.map { |c| c =~ /[[:alpha:]]/ ? [c.upcase, c.downcase] : [c]}
      # Combine them
      chars.each do |chs|
        combi = combi.flat_map do |s|
          chs.map { |ch| s + ch }
        end
      end
      combi
    end
    
    combi = all_combi 'ru123by!'
    pp combi
    puts combi == combi.uniq
    

    随便写了一下,具体效率怎么样就不知道了。

  • 还有一种嘛,每次把请求地址塞进 Session 里。不过请求地址和浏览器 URL 是不一定相关的。

  • 取浏览器显示的 URL 要从浏览器取,用 JavaScript 拿。 Referrer 并不能保证一定是上一次的请求。有些特定情况下 Referrer 甚至会被浏览器屏蔽。

  • 你贴了 4 个一样的地址是什么意思……真看不懂。

  • bool 可能造成的坑 at 2015年09月09日

    #4 楼 @yanguango 这里用来区别

    • 填了 true
    • 填了 false
    • 没填
  • 寻求好的解决方案 at 2015年09月09日

    #10 楼 @yanhao 诶看岔了以为是 Transfer 开始的。

  • Ruby 版本常量 at 2015年09月09日

    #4 楼 @douxiance 我只说一句。谷歌搜索是必需品。没有访问谷歌能力的人,没法好好学习和工作。

  • 寻求好的解决方案 at 2015年09月09日

    #6 楼 @yanhao 不知道能不能直接 include(:user)