`
magixyu
  • 浏览: 79445 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

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

    博客分类:
  • ROR
阅读更多
什么是元编程(MetaPrograming)

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

元编程的两个层次

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

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

DRY (DONOT REPEAT YOURSELF)

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

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

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

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

自底向上的编程方法

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

相关推荐

    Advanced Rails

    "Advanced Rails" 涵盖了Rails开发中的高级主题和技术,是Ruby on Rails学习进阶的重要资源,尤其适合已经对基础Rails有一定了解的开发者。 在Web开发领域,Rails以其高效、简洁的代码和“约定优于配置”的哲学吸引...

    rails2-sample

    本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是学习Ruby on Rails的理想选择。 ### 重要知识点概览 #### 1. Introducing Ruby on Rails(介绍Ruby on Rails) 这一章节...

    The Ruby Programming Language 2008 .pdf

    - **目标读者**:本书面向的是对Ruby编程语言感兴趣的程序员和技术人员,无论是初学者还是高级用户都能从中受益。 - **主要内容**: - **Ruby基础知识**:包括语法、数据类型、流程控制等基础概念。 - **面向对象...

    The Ruby Programming Language

    ### Ruby编程语言——基础知识与应用 #### 一、Ruby简介 《The Ruby Programming Language》是一本详细介绍Ruby语言的权威书籍,由Ruby之父Yukihiro Matsumoto(松本行弘)与著名技术作家David Flanagan共同撰写。...

    Advanced.Rails(2007)].Brad.Ediger.文字版.pdf

    根据提供的文件信息,我们可以推断出这是一本关于高级Ruby on Rails编程的书籍,作者为Brad Ediger,并由O'Reilly Media出版。由于文件提供的内容有限,以下将基于已有的信息来总结并展开相关的知识点。 ### 一、...

    Ruby-服务器优化的Ruby发行版通过APTYUM实现更少内存更快速易于安装和安全补丁

    Ruby是一种强大的动态编程语言,广泛用于Web开发,尤其是在Ruby on Rails框架中。为了在服务器环境中更好地利用Ruby,一些专门针对服务器优化的发行版被开发出来,以提高性能、减少资源消耗并简化管理。"Ruby-服务器...

    Advance RAils Reciples

    2. **高级编程技巧**:除了介绍Rails的基础知识外,《Advanced Rails Reciples》还深入探讨了Rails框架中的高级编程技巧,如性能优化、安全性增强等。 3. **实战案例分析**:书中通过多个实战案例来展示如何将Rails...

    Pragmatic.Bookshelf.Advanced.Rails.Recipes.May.2008

    通过阅读《Pragmatic Bookshelf Advanced Rails Recipes May 2008》,开发者可以掌握Rails的高级特性,提升他们的编程技巧,同时也能更好地理解Rails如何与其他Web开发框架相比较,从而在实际项目中做出更明智的技术...

    The Ruby Programming Language PDF

    这些资源涵盖了从基础到高级的Ruby编程知识,以及相关的Web开发框架Rails的内容。此外,还有诸如《Ajax on Rails》和《Ruby on Rails: Up and Running》等其他主题的书籍,显示了Ruby语言及其生态系统在Web开发领域...

    Ruby.Programming.Language.The.Jan.2008

    O'Reilly Media是一家领先的科技图书出版商,除了《Ruby编程语言》外,还提供了多部与Ruby相关的著作,如《Ruby Cookbook》、《Learning Ruby》、《Advanced Rails》、《Rails Cookbook》、《Ruby Pocket Reference...

    the_ruby_programming_language原版

    从描述中可以提炼出,这本书是入门Ruby的理想选择,书中内容覆盖了Ruby编程语言的基础知识,为读者打下坚实的基础。书中所涉及的内容可能包括但不限于Ruby语言的语法、数据类型、控制结构、模块、类和对象、异常处理...

    Rails相关电子书汇总二

    Rails是一个流行的开源Web应用框架,基于Ruby编程语言,它遵循模型-视图-控制器(MVC)架构模式,为开发者提供了构建高效、简洁的Web应用程序的能力。 在描述中提到的“博文链接:...

    Ruby版微信小程序对称加密数据解密算法wechat_aes_sample_ruby-master.zip

    在Ruby编程环境中,微信小程序的对称加密数据解密算法主要涉及到的是AES(Advanced Encryption Standard)加密技术。AES是一种广泛使用的块密码,以其安全性、效率和标准化而闻名。本项目"wechat_aes_sample_ruby-...

    code_quizzer:Ruby,JavaScript,Rails和Bash的编程练习问题

    代码测验关于网站包含许多关于Ruby,Rails,JavaScript,Bash,Git等的编程实践问题! 当我学习编程时,我为自己创建了测验,并决定创建CodeQuizzes作为我的第一个Rails应用程序,以与世界分享这些测验。 现在,该...

    ruby-rabbitmq:一些带有Ruby + RabbitMQ集成的教程

    1. **Ruby on Rails 框架与 RabbitMQ 的结合**:Ruby 社区最著名的框架是 Ruby on Rails,这些教程可能会讲解如何在 Rails 应用程序中设置 RabbitMQ,以实现后台任务处理、事件驱动架构或微服务通信。 2. **AMQP ...

    Enterprise Integration with Ruby

    1. **消息传递**:书中可能详细讲解了如何使用Ruby来构建消息传递系统,如通过AMQP(Advanced Message Queuing Protocol)或者RabbitMQ等中间件实现异步通信。消息队列在系统解耦和提高可扩展性方面扮演着重要角色。...

    odin-flight-booker

    在Ruby编程语言中,我们主要会使用到以下几个核心概念: 1. **Ruby基础**:Ruby是一种动态、面向对象的脚本语言,以其简洁和表达性强而著称。在构建"Odin Flight Booker"时,你需要掌握变量、数据类型、控制结构...

Global site tag (gtag.js) - Google Analytics