论坛首页 编程语言技术论坛

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

浏览 2001 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-06-05  
什么是元编程(MetaPrograming)

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

元编程的两个层次

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

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

DRY (DONOT REPEAT YOURSELF)

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

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

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

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

自底向上的编程方法

自底向上的编程方法是来自有Lisp。主要的观点就是先建立最低层的描述。然后,你必须在这个上面建立你的程序。
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics