• 你又回北京了呀…

  • 这种直接包装一下数据库需求,如果是 PostgreSQL 的话,直接上 PostgREST 是最爽的,全套解决方案都有了,性能还好

  • 买到了今年大会的第三张票

  • 喜欢用 ss 的主要原因是每次断网后不用重连,不管你联不联网,它就在那里,不来不去

  • Maker.includes(:cars).where(car: {company_id: 'param1', status: 'param2'})
    

    company_id 如果有对应 model 的话还可以

    Maker.includes(:cars).where(car: {company: company, status: 'param2'})
    
  • 申请删帖 at 2017年06月04日

    先纠正一下,Ruby 是有 WeakRef 的,多看看文档源码。并且 ObjC 中的 weak 大部分时候解决的是循环引用,这个问题在 GC 中不存在

    另外 yield 本身存在更多的意义是编译器性能优化,类似 Swift 语言中,escaping block 和 unescaping block 的区别。如果不明确使用 &block 语法将 Block 转换为 Proc 对象的话,这时候 Block 不是一个对象,在大量存在 Block 的语言中这是一种性能优化。

    JS 中的 Promise 存在的原因是 JS 大量异步操作是依靠回调的,而且 Ruby 中大量 Block 的存在是为了写出更通用的函数,两个语言中的高阶函数想解决的问题并不一样。

    Ruby 和 Rails 在设计上要达到上层开发者爽,那么下层必然要付出更多的努力去实现元编程,这就是一种权衡。无论是 Lisp 还是 Ruby,包括 ObjC 的 Runtime,一切有元编程能力的语言都会带来底层代码维护难度增大的问题。应用构建可以选择自顶向下,像 Java,也可以选择自底向上,像所有支持元编程的语言那样,为你创造出一种新的写代码的可能性。

    Java 是个好语言,企业级一定是需要一个强类型系统的编译型语言的,但 Ruby 也不会死,弱类型语言后期一定是需要大量测试用例来保证鲁棒性的,这就是综合选择的问题了。

    最后,没人阻止你给方法起个好名字啊,Ruby 给你提供了可以更加接近自然语言的语法,但是你非得给人家起个 m1、a1这样的函数名…放在什么语言上你也看不懂它的调用流程啊(摊手)

  • 报名

  • 用 ActiveJob 的 async adapter 多好

  • 你这数组第一维的每一个子数组都是同一个指针引用。试试 Array.new 的时候传个 block 进去吧

  • 看了下没有讲到宏,Rust 作为一个静态语言最吸引我的还是可以用宏实现元编程。英文好的话还是建议看官方的英文版,比较完整

    https://doc.rust-lang.org/book/README.html