Advanced Rails -- Ruby 基本技术(1) -- 元编程

[b]什么是元编程(MetaPrograming)[/b]

元编程时一中用代码来产生代码或者依据自己内省的一种编程技巧。
元编程在很多语言里都有应用,但是因为动态语言有更好的运行时能力以操作数据的形式来操纵代码而是元编程更加有效。

元编程的两个层次

[i]Syntactic introspection [/i]
最底层的内省,直接处理程序内容或者句原流。一般来说,基于模版和基于宏的元编程属于这一类。

[i]Semantic introspection [/i]
通过语言的高级数据类型来处理代码。在Ruby里,整体上来说是工作的类和方法的层次上:创建、重写和别名方法;截取方法调用;操作继承链。和句法的方法,这些技术更加和已存在的代码相关,因为它们趋向于把已存在的代码当作黑盒子来对待,而不是在它们实现的内部作处理。

[b]DRY (DONOT REPEAT YOURSELF)[/b]

在高层次上,元编程对于DRY原则很有用。正如提及到的“Once and Only Once”,DRY原则要求在一个系统中只需要对一个信息片表达一次。特别是在像Ruby这样的动态语言里,重复一般是不需要的。就像函数提取让我们避免了重复的代码一样或者几乎一样,元编程让我们避免在一个应用中重复同一个观点。

元编程主要是关于简单。一个体验元编程简单的办法就是找出重复的代码并把它提取出来。冗余的代码可以提取成函数;冗余的函数和模式通常可以用元编程来提取。

总体来说,元编程不仅仅用在重复的代码上。应该经常的评估是不是有其他像提取函数的技术能更好的解决问题。但是,在一些情况下,元编程是解决重复代码问题的一个好办法。
附加说明

用代码重写代码将会让程序难写也难维护。你应该选择能解决你需要的、能让你的开发更容易的编程工具。

[b]自底向上的编程方法[/b]

自底向上的编程方法是来自有Lisp。主要的观点就是先建立最低层的描述。然后,你必须在这个上面建立你的程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值