Sublime
19 年我们在 Rails 上面实现了分布式数据库架构,最近正在计划重构,同时在做基于 Kong 和 K8S 的客户级别的灰度发布架构。
报个料 RPM +10 万
git + tig + sublime/atom/任意编辑器,可以实现绝大部分需求。 git 需要的不是 GUI,而是使用者的细心研究。
我认为目前 RubyOnRails 最大的问题是内存问题,太吃内存。
新人千万不要在 Windows 上使用 Ruby on Rails https://ruby-china.org/topics/1020
我们目前正在招实习生。
顶一下
抛开业务场景谈技术都是耍流氓 :plus1:
我喜欢另外一种极端情况,每个 controller 都只有一个 action 当然了,我不这会这样做。还是尽可能的遵守 restful
nice!
[25] pry(main)> binding.class.ancestors
=> [Binding, BindingOfCaller::BindingExtensions, Object, PP::ObjectMixin, Kernel, BasicObject]
[26] pry(main)>
Gem binding_of_callere 通过 BindingOfCaller::BindingExtensions 给 Binding 类增加了一个函数 callers(返回一个 Binding 数组,每个元素即是每层函数栈的 binding) 该函数不同的 ruby 版本有不同的实现方式
MRI 2.0 以下版本实现方式 https://github.com/banister/binding_of_caller/blob/master/ext/binding_of_caller/binding_of_caller.c#L222
MRI 2.0 以上版本实现方式 https://github.com/banister/binding_of_caller/blob/master/lib/binding_of_caller/mri2.rb#L18
以上两版都是通过 ruby 的 C 接口实现的。
把代码高亮一下呗
开头这样写就可以 ```ruby
元编程,就像原子弹, 不能没有,但又不能乱用!
已入
前后端分离之前,在用 slim
@wadexing :plus1:
远离 windows 才是正道
消灭零回复
rails 更新的比较频繁 所以看官方文档的时候,必须清楚该文档对应的 rails 版本
比如 http://guides.rubyonrails.org/v4.1.8/ https://github.com/rails/rails/tree/v4.1.8
http://guides.rubyonrails.org/v4.0.8/ https://github.com/rails/rails/tree/v4.0.8
因为 Ruby 没有编译过程,所以可以通过运行期的异常,来代替/模拟,静态语言中的编译报错。 比如,可以用 ruby 的“undefined method”的异常,来代替/模拟,静态语言的“MUST be overrided”的编译报错。
class P
def call_hello
self.hello
end
end
class S < P
def hello
puts "Hello World!!!"
end
end
S.new.call_hello # Hello Word!!!
P.new.call_hello # 抛异常 undefined method `hello'
Ruby 实现“OO 多态”的方式和静态语言不同, Ruby 没有接口和虚函数的概念, Ruby 采用的方式是"duck type" 。 所以不需要在基类中定义“纯虚函数”。
:plus1:
你可以理解为 Ruby 所有的方法 都是虚函数,所有的方法都可以被重写
定义个一个空函数,然后在里面抛异常
class Person
def name
raise "请实现该接口"
end
end
class Customer < Person
end
c = Customer.new
c.name #异常了 请实现该接口
def c.name
"实现完了"
end
c.name # 实现完了
我喜欢这种语法