应用层是保证不了唯一性的,跟框架无关
module Comparable
def >(param)
if self.<=>(param) > 1
return true
else
return false
end
end
...
end
这个代码……
yield_self
点赞,链式写法一链到底
诶…又撕起来了…
前来膜左神
你又回北京了呀…
这种直接包装一下数据库需求,如果是 PostgreSQL 的话,直接上 PostgREST 是最爽的,全套解决方案都有了,性能还好
买到了今年大会的第三张票
Maker.includes(:cars).where(car: {company_id: 'param1', status: 'param2'})
company_id 如果有对应 model 的话还可以
Maker.includes(:cars).where(car: {company: company, status: 'param2'})
先纠正一下,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 作为一个静态语言最吸引我的还是可以用宏实现元编程。英文好的话还是建议看官方的英文版,比较完整
报名
+1
可以理解为是一个增强版的 API view 层吗? 复杂的业务逻辑应该写在哪里? 有用在生产环境吗?感觉怎么样?
不懂怎样才会有
f1 #=> 0
f2 #=> 20
这样的效果。但是我实现了这样的效果
f1 #=> 0
f2 #=> 10
i=0
[:f1,:f2].each do|f|
j = i
define_method(f) do
p j
end
i += 10
end
@jasl 加入彩程了?
用 docker-compose 做开发环境,往代码里插入 binding.pry 时不知道楼主是怎么操作的。
docker-compose 本身不支持 attach 到运行着的容器,给他们提了相关 issue 也没人跟进,最后是自己封装了个命令从 docker-compose 获取容器 id,然后用这个 id 去 docker attach,实现可以在代码中插入 binding.pry 调试。
总的来说,docker-compose 带给我的开发体验并不好,各种小问题很多。我觉得对于 Rails 来说把开发和生产统一成一个环境是个伪需求。Rails 开发涉及到的东西都很容易安装在本地做开发,没必要为了统一环境都用 docker 做开发,丧失体验。Rails 本身已经是个很完善的生态了,开发流程工具都很成熟,何必非要套上一个不成熟的 docker-compose。
而利用 docker-compose 进行部署,我认为也是一个很扯的事情。docker-compose 目前的主要目标还是实现在一个宿主机上进行部署,swarm 还不够成熟,实际部署时候还是要用其他方式多机部署,docker-compose 在这个过程中可能只能起到一个指导作用。
Emacs 大法好,报名参加
eventmachine
报名!
+1
我用了七牛存视频,有截取视频截图的功能
👍
跪着听
desc 'xxx' do
headers Token: {
description: 'user token',
required: true
}
end
https://github.com/ruby-grape/grape/blob/master/README.md#describing-methods