本文作者用一个简单的事例,带我们认识了如何使用元编程的方式为 Ruby 类增加类似 Java 的 properties 支持。介绍了一些应用契约设计和可插拔类型系统的提高性能的原则。
在 Java 内容相关的博客和技术社区中,关于 Properties 的讨论一直没有停止过。有人认为 Properties 的出现大大释放了软件开发人员的生产力,而有人认为这不过是一个新瓶装老酒的把戏……。不管怎样,在越来越多的 Java 软件项目中出现了 Properties 的身影。那么在 Ruby 语言中如何实现 Properties 呢?这是本文讨论的重点。
作者 Werner Schuster 在 Ruby 语言中引入嵌入式 DSL,实现了类似 Properties 的功能,让计算机来处理编程过程中的重复工作。文章的最后还介绍了如果用 Property 特性来满足契约式的设计。本文所使用的代码非常简单,更多地是介绍了一种编程的思想:灵活运用语言中已有的特性可以实现其他语言中强大的功能。
更多内容推荐
Ruby 大“翻车”:代码库因许可证失误被下架,致 50 万个项目陷入混乱
尽管目前形势艰难,但是似乎相关开发人员已经做好了准备。
Java 特性专题报道:文本块
文本块旨在减轻在Java中声明和使用多行字符串字面量的痛苦。
书评:Java 核心编程卷 1——基础
Cay Horstmann与Gary Cornell合著的Java核心编程已经出版了,与之前的版本一样,这是一本明晰且拥有大量颇具价值的示例的书籍。在本书的两卷本中,你可以找到关于最新发布的Java 7的一切内容,包括集合、泛型、并发等等。
06|再回首:如何实现一个 IoC 容器?
实现一个IoC容器
2023-03-24
17|动态代理:如何在运行时插入逻辑?
如何在运行时插入逻辑?
2023-04-19
从 Java 12 到 Java 17 那些激动人心的新特性
在本文中,我分享了从Java 12到17的一些语言新特性,想要了解Java 11之后都有哪些变化的人可以阅读本文。
02|扩展 Bean:如何配置 constructor、property 和 init-method?
配置constructor、property和init-method
2023-03-15
全面理解 ActiveRecord
看了一些数据库相关的书籍
Gsub Blocks、Partitions 和 StringScanners,哦,天哪!
由于其 Perl 风格的传统,在处理文本时,Ruby 为您提供了很多开箱即用的灵活性。让我们深入研究什么是可能的!
2022-01-23
重构到更深层的模型
Paul Rayner使用一个案例分析了如何重构代码到更深层的领域模型。通过代码重构,结合模式实现,代码库更加粘合,也更容易推断,将一些常用任务的完成时间从几周或几个月缩短到几小时。
05|实现完整的 IoC 容器:构建工厂体系并添加容器事件
建立BeanFactory体系,添加容器事件
2023-03-22
Ruby 之父:不要违背开发人员的本能
在 Ruby 3.0 发布后,松本行弘接受了一次专访。在专访中,他介绍了 Ruby 的最新特性以及他改进 Ruby 的方法,并分享了他对 Ruby 未来的见解。
Richard Warburton 与 Raoul-Gabriel Urma 在 Devoxx UK 2015 上回顾 Java 泛型历史
Richard与Raoul向广大开发者提供关于Java 8的培训课程。近日,二人在Devoxx UK 2015上共同进行了一场演讲,回顾了Java泛型的起源与动机、介绍了目前一些不为人知的特性,同时对Java 10进行了展望。该演讲由3个精彩的部分构成:泛型的过去、现在与未来。
2010 年 InfoQ 中文站 Java 社区回顾:让 Java 飞一会
纵观2010年,Java世界可谓变化万千,有关Java归属、走向、领袖去留、专利权等等问题在社区中引起了巨大反响,InfoQ密切关注其发展动态,现将中文站Java社区在2010年的精华内容整理出来,让读者一睹为快。
15|mBatis:如何将 SQL 语句配置化?
mBatis:如何将SQL语句配置化?
2023-04-14
Matz:如何成为语言的设计者
在今天举行的RubyConfChina 2012大会上,Ruby语言之父松本行弘第四次来到中国参加大会,为大家带来了一场名为《Be a language designer》的主题演讲,分享了作为语言设计者的心得,还带来了mruby与Ruby 2.0的最新信息。
阅读者:Ruby 的白魔法书
在Ruby的世界中,程序员们享受着各种光怪陆离的语法糖,也经历着各种各样的陷阱。而这一切的根本就在于Ruby强大的元编程能力。元编程就像Ruby世界的魔法,当其是白魔法的时候可以帮助你把程序变得异常简洁,美观;而当其是黑魔法的时候,你将会迷失在一些很难解释的Bug中。
如何从 MongoDB 迁移到 MySQL
我目前在开发的项目其实在上古时代是使用 MySQL 作为主要数据库的
实战五:Telegram Bot 打造专属聊天机器人
2023-03-16
Java 值类型的当前状态
甲骨文正在将值类型引入到Java中,我们对目前的状态进行了更新。
推荐阅读
用现代 Java 调整经典设计模式
6. Mybatis 和 Spring 集成原理剖析
2023-09-25
11. AOP 简介与不同框架设计概览
2023-09-26
慢的不是 Ruby,而是你的数据库
数据库09|SPI 机制:如何打造一个属于你的 SPI 程序?
2023-09-08
Shopify 开源 WebAssembly 工具链 Ruvy
编程语言解读 Java 内存模型中 Happens-Before 的 8 个原则
2022-12-23
电子书
大厂实战PPT下载
换一换 张颖峰 | 英飞流 CEO
陈朝钢(摩净) | 蚂蚁集团 高级数据技术专家
傅奎 | 雾帜智能 联合创始人 & CTO
评论