• 精靈旅社疯狂假期, 精灵旅社精靈旅社 在写入ES时,先全部转化为简体,只存一份。在查询时将所有的繁体转化为简体,再到ES查询,可行?

  • includes 的实现原理与困境 at 2018年08月18日

    实际情况复杂,关联对象取出来后,在渲染时还需要执行很多业务逻辑,而且对象关联可能不止一层。用pluck,可能会有局限而且改造成本高。

  • 技师这个词用的好😂

  • 不是基于统计的??? 楼主能不能大概描述一下核心原理 ? thx

  •   class T
        A = {a: 1, b: 3}
        def s
          {c: 1, d: 1}
        end
      end
    
      T::A.object_id
    => 70307759309580
      T::A.object_id
    => 70307759309580
    
      t = T.new
    => #<T:0x00007fe39ba59ea8>
      t.s.object_id
    => 70307772676380
      t.s.object_id
    => 70307766481000
    

    最好用配置文件,实在不行,从内存的角度来看,还是放在常量里好些。

  • includes 的实现原理与困境 at 2018年07月30日

    很好的思路。将用户权限、用户自定义配置、核心数据配置、顶层数据((支持实时多条件查询)、关联数据本身组合打包,一起生成多层cache_key,再增加层级间的touch机制,可以让这套机制跑起来。之前没有这么做,应该是因为缓存命中率和这一锅粥的复杂度,不过这个方案确实值得尝试。

  • includes 的实现原理与困境 at 2018年07月30日

    套娃更多的是提升渲染阶段的性能吧,在当前场景下需要做到很小的粒度才有意义,而且还是得先把数据查询出来,难以跳过includes带来的问题。

  • includes 的实现原理与困境 at 2018年07月30日

    确实,在准备融入项目时发现隐藏成本不小。特别是随着代码量增长,增加新的字段,新的方法时,特别容易埋下坑。这种功能需要写的尽量简洁,易配置,且只用在局部有性能痛点的地方。

  • 从 ActiveRecord 看乐观锁 at 2018年07月18日

    是的, 一般读多写少怎么玩都行。乐观锁就是因为无锁,吞吐量大些,单次响应快(可能成功,可能失败)。

  • Ruby GC 自述 at 2018年07月11日

    有时确实容易造成bug,我换一个例子:

    stringArray.each do |s|
      if s == 'someString'.freeze
          # do something
      end
    end
    

努力走向优雅、简洁、有逻辑地表达。