作为接触 rails 时间不长的小白来说还是不太希望去过早接触元编程,想知道 rails 当中有哪些用到“元编程”的案例?
#1 楼 @qinfanpeng 感谢你的回答,我所指的就是具体实现比如:scope/validates 等它们的内部都是怎么去实现的?也听到例如钩子方法,这个神一般存在的东西,在 rails 当中哪些实现用到了?
#3 楼 @u1453357893 建议把你的 IDE 配置好,几乎所有方法都可以去看其源码实现的(个人用这个来代替文档),只不过有些实现很复杂,不那么好懂。
#2 楼 @riskgod #4 楼 @qinfanpeng 这个并不绝对吧,我司项目里面就有少量的元编程,主要是提供项目间连接的基础服务,因为使用量大(几乎每个项目都要用这部分),大家也并没有表示很难理解的样子,倒是老老实实的写,估计有人会看到抓狂,然后重构,再然后极可能就变成现在的样子了
我是觉得经常会用到。我已经数不清项目里有多少元编程的代码了。 比如需要给每个属性重复定义很相似的函数的时候。 不过不用也不是不能写出同样的功能我觉得。
我的老大是先让我去读 readable code,然后被他 review 代码。等学好了再读元编程就不会把代码搞砸了。
反对过度元编程,会把代码弄得不易读。 特别是对于 IDE 党,很多方法不能直接定位点击进入。 项目比较大的时候,改个东西都很难找,比如使用 send 调用方法,方法名是拼接出来的。
Active Record 就用到了元编程,你可以看下源码。我不反对用元编程,但是有几个原则: