Ruby 其实元编程很烦人

billy · 2014年08月11日 · 最后由 ery 回复于 2014年12月26日 · 4499 次阅读

不少人喜欢搞元编程,搞得本来干干净净的数据和类扭曲不已。

在你写下 method_missing 之前,请三思,还有别的选择吗?

已经从元编程中醒悟过来了

元编程,说白了,就是自己知道自己。但是跟 method_missing 无关吧?

元编程的本质是什么已经不重要,重要的是 “为什么要使用元编程”,有牛人用嘴巴含着毛笔写书法,还有更牛的用眼皮夹着毛笔写书法,这些玩法玩玩可以,但不能因为这个就从此不用手写字了。

元编程能不能提高开发效率,能不能提高程序的可维护性,这是个问题

@hz_qiuyuanxin method_missing 是最被滥用的手法之一。

概念扯的有点凶,晕头转向的 😄

这个楼主得来点代码举例才能 justify 这个节点吧

实际项目中,可读性和可维护性最重要,不要把代码写得太花俏。

最多用用 define_method,要用上 method_missing 好像不多, 基本没在项目里用过

@blacktulip 微博体,发个牢骚而已,大家不要介意 😄

@billy 印象最深的就是 activerecord,不用声明对象属性。还没写过,楼主主要用在那些地方?

有一次用宏干掉了 30 来种可能,后来发现,花在写宏上面的时间,要多于用硬编码实现的时间。。。

其实有的时候觉得 python 很不错,写法少,更多的精力可以放在问题本身。

元编程的滥用,必然造成程序可读性和可维护性变差。如果是别人使用了 magic 的代码,你维护时确实要找半天才会恍然大悟,原来是这样。。。

我觉得设计模式那一套其实还是很够用的啊,delegate 这个大家可以多用哦。。

商业型的项目与框架型的项目差别不一样,前者可能需求上大多数不需要元编程就可以解决(如果出于代码简洁干练,也可以用元编程),框架型的大部分是避免不了元编程,可以带来很多方面的能用性。我现在用元编程很大一部分在于 读开源的项目

适当的使用还是可以的, 会让你的代码写起来漂亮很多. 不可过度使用....也会留下坑...后面自己踩

不用不就行了,谁整天会用到 method_missing

如果用元编程写出了神仙代码,那估计也就没人愿意团队合作了。。。。。

赞同,尤其是跳槽率很高的今天,另外工具类和工具方法还是可以的

这个属于七伤拳。

崆峒派传世武功,后来明教金毛狮王谢逊夺得《七伤拳谱》古抄本,终于练成。此拳法出拳时声势煊赫,一拳中有七股不同的劲力,或刚猛、或阴柔、或刚中有柔,或柔中有刚,或横出,或直送,或内缩,敌人抵挡不住这源源而来的劲力,便会深受内伤。谢逊曾以此拳击毙少林神僧空见大师。但这七伤拳倘由内力未臻化境的人来练,对自己便有极大伤害。人体内有阴阳二气、金木水火土五行,一练七伤,七者皆伤。所以所谓 “七伤”,乃是先伤己,再伤人。

就像 DNA,转基因,菜刀,不要乱用。

是挺烦人的, 但不能元编程更烦人

一般不用,用也要巧用

如果牺牲了可读性,确实还是少用的好。

Ruby 元编程的书里都说了:“根本没有什么元编程,只有编程而已”。

元编辑提供一种解决问题的可能性,有时其它语言可能连这种可能性都没有

具体问题具体分析,没有绝对的好也没有绝对的不好,我觉得主要看用在哪里,用来解决什么问题

#21 楼 @rasefon 说的好极啦!

31楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册