• 运动级回旋镖指南 at 2024年03月05日

    实际门槛比一般人想象的高。一个不常运动的成年人可能需要个把星期才能摸到入门镖的门槛

  • 运动级回旋镖指南 at 2024年02月21日

    玩儿童镖就没那么危险了。

    虽然飞盘和镖都能飞,但其实区别挺大,飞盘是团体运动,需要找到技术不错的小伙伴才能玩的痛快,不然只能满地捡盘

  • 自己部署的 Sentry,CSRF at 2024年01月11日

    上 rollbar

  • 最终使用实例的时候看到到处访问一些属性

    你看到的"属性"并不是实例变量,而是方法。

    ruby 语言中并不太常用"属性"一词。代码中看到的形如 obj.size, obj.price 均为方法调用。而实例变量的访问,要么是在对象内部通过 @var_name 直接访问,要么是在外部通过 instance_variable_get, instance_exec 这样的代码探针来调用。

    所以你需要的可能是 obj.methods 来返回所有的非私有方法

  • 那这打印的就是“类实例变量”了.... 不知道楼主真正的原始问题到底是什么

  • 你想偏了,实例变量不会被继承,自然不存在“返回继承链上的实例变量”这样的方法

  • 宿主机 ip, 需要 db 容器映射端口

    看错了问题 😅 没用过 kamal, 不过不用虚拟网络的话,两台 docker 互通我一般是通过宿主机地址加映射端口实现

  • 比较奇怪的特性 at 2023年10月30日

    有意思的问题,这应该不是特性,纯粹是运行速度快导致时间戳一样了。用代码试了下

    rst = []
    1000.times do
      rst << (Time.now <=> Time.now)
    end
    
    to_f_rst = []
    1000.times do
      to_f_rst << (Time.now.to_f <=> Time.now.to_f)
    end
    
    p "normal rst is #{rst.tally}"
    p "to_f   rst is #{to_f_rst.tally}"
    # 输出
    # "normal rst is {-1=>219, 0=>781}"
    # "to_f   rst is {-1=>287, 0=>713}"
    

    无论加不加 to_f, 我的机器上都是相同时间戳占多数,跑了几次结果都差不多。

    提一句,最近在 nodejs 上也遇到了跟时间戳相关的问题,js 的时间戳只精确到 ms, 当在逻辑中循环创建多个对象,并通过 bulk insert 写入 db 时,这些数据的 createAt 时间都一样,最终在按照 createAt 排序时会出现某些意想不到的问题... 这种问题我在 rails 中从来没遇见过,就是因为 ruby 的时间精度管够😅

  • 同遇到过这个问题,“事务中使用 return 会导致 rollback”是 rails7 的特性 (surprise!)😅 . rail6 其实没有这个问题。可以参考这个讨论 https://github.com/rails/rails/issues/45017

  • 层数不多的话我在工程中通常会选择显式传给另一层,层数太多的可能需要个上下文管理器,类似于 Rei 说的。

    为什么 current 再下一次的请求也是能访问到,下次的请求不会重新新建一个线程,而是复用么?

    通常 web 服务器会通过线程池复用线程,你可以试试把服务器的线程数改成 1, 再在每个请求中打印线程的 object_id, 应该都一样

  • 都在 controller 层,为何不直接存实例变量?

  • 曾经也想试试 jsonapi, 但是团队里已经对 graphql 比较熟练了,对比下来 jsonapi 没有明显的优势,就没尝试用它来启新项目

  • 给回流技术部门的一封信 at 2023年09月07日

    说的到位😁 😄

    掰扯两句。

    往往最先发现事情不对劲的都是一线工作者

    确实,但是一线员工未必会主动告诉管理者。普通人在跟领导说话的时候总是有些顾及。俗话说“交浅不言深“, 如果领导不怎么普通员工混在一起,那就很难感受到员工的真实想法。

    几年前我们公司意外招进来一个"资深程序员", 入职的第一个星期,办公室几乎所有人都看出来这个人从能力到人品都是个水货,私下大家还经常拿这个人在项目里犯的各种低级错误开玩笑,但是就是没有一个人告诉领导。直到这个人在项目进度上出了大问题,才被领导注意到。这件事的连锁反应后来也影响到了我负责的部分项目。后来我复盘这些事,感觉其中很大的原因就是领导离员工距离太远了,一个星期跟其他人都未必能聊两句话,但凡一起多吃几次午饭,这事都能顺嘴兜出来

  • 才从 vscode 切回 rubymine, vscode 在 ruby 代码跳转,查看上还是达不到 rubymine 的效果

  • 类似的问题我在 windows 的 wsl2 中遇到过,当项目文件放在 windows 的文件系统上时,响应会特别慢,把项目文件放在 wsl2 里后,速度就正常了

  • rubymine 能实现接近你想要的效果。VScode 应该需要将库安装到项目目录下才能用 solargraph 实现这样的效果吧,具体没试过

  • 没咋看懂,具体啥问题?

  • 可以呀老蓝。1 到 3 年经验都能开到 15k 以上,还能远程,是比成都这边好多了。爽歪歪😄 😈

  • 同楼上。

    不过如果你非要防止更改,且页面是后端渲染的话,可以给请求链接加个签名,后端校验签名...😅

  • 升级跨度这么大...恐怕这个问题解决之后还有更多的坑。是自己的项目还能折腾一下,公司的项目那就容易进坑了。之前一个关键字参数的特性变动就搞得很多老 gem 没法用....

  • 新人学 Ruby at 2023年05月26日

    不兼容,最好使用 ruby 2 的版本

  • 新人学 Ruby at 2023年05月26日
  • 一个奇葩的问题 at 2023年04月16日

    sidekiq 的参数是转成 JSON 存储在 redis 中的,json 标准里没有 symbol 类型

  • 国内 Ruby 圈子真的很小 at 2023年04月04日

    😁 我也遇到过。我一同事遇到个技术问题,我给他讲了问题原因和解决方案,他当时可能没咋懂,但是又不好意思继续问。结果当天晚上我在论坛里就看到一个一摸一样的提问😅 .....

    然后我就顺着他账号把他历史提问全看了一遍。怎没说呢,暴露了很多东西😬

  • 1 楼的老哥真是精确制导,佩服佩服。一生平安

  • 嗯勒,自从上了 ECS 动态扩容,就没有用过这个了

  • 哈哈哈,之前在使用 Puma Worker Killer 这个 gem 的时候就非常谨慎,除非能确定是内存问题导致系统极慢/崩溃且又找不到内存泄露原因的时候,才会上这个 gem. Readme 里非常谦虚的提了句

    This gem can also make your performance WORSE. When a worker is killed, and comes back it takes CPU cycles and time. If you are frequently restarting your workers then you're killing your performance

    我很好奇,如果去掉这个 gem, 就让系统内存正常发挥,服务器的性能是怎样的呢?

  • attr_accessor 问题探讨 at 2023年03月18日

    新手常见的错误。。index = xxx 中的 index 会被解释成局部变量赋值,要使用 accessor 生成的方法,应该用 self.index = xxxx