2025 年技术指引:让真实案例和经验为开发者开路 了解详情
写点什么

文章:使用 Ruby DSL 实现敏捷素材管理

  • 2007-09-26
  • 本文字数:606 字

    阅读完需:约 2 分钟

领域特定语言(Domain Specific Language,简称 DSL)是一个面向语言的工具,用于解决某个特定领域的编程任务。DSL 的一般语言特征和它所被用到的问题领域,关系是非常密切的,并且在一个非常高的抽象层面上起作用。Martin Fowler 在他介绍 DSL 的文章中,将 DSL 划分为外部 DSL 和内部 DSL 两类(参见原文链接)。外部 DSL 是一门需要编译或者解释运行的编程语言,而内部 DSL 则构建于一门通用编程语言(general-purpose programming language)之内。实际上,内部 DSL 对于其宿主通用编程语言来说,就是它的一套层次非常高的 API。本文讲述了了在 PLANET ARGON 公司的一个开发项目中,用 Ruby 实现的一个内部 DSL 如何给项目带来巨大贡献。

文章从实际出发,先介绍 PLANET ARGON 公司近期要完成的一个项目。这个项目的目标是,使用 Ruby on Rails 构建一个一次性的内容管理系统,这个系统要支持 18 种语言,并且管理大约 1000 个的图像文件。这些文件中有许多都是专业摄影图片,每个文件大小都超过 1MB。而另外的图片文件则是一些细碎的线条艺术,图片里面显示的就是许多不同的国旗。这些图片所具备的相同特点,就是它们都还不能直接投入产品使用。

听起来这个项目就够复杂的了,作者开始的时候使用了钩子在模型内部操作 API,但随着需求的不断被调整,即使在项目中使用批处理脚本也不能满足这些变化。在本文中,作者提供了一个解决此问题的可持续发展的方式。

阅读全文:使用 Ruby DSL 实现敏捷素材管理

2007-09-26 04:57779
用户头像

发布了 117 篇内容, 共 16.0 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

Oracle SQL调优系列之看懂执行计划explain

Nicky.Ma

sql

产品失败了,产品经理要不要承担责任?

涛哥 数字产品和业务架构

产品经理

面向对象设计模式课程小结

梅子黄时雨

极客大学架构师训练营

良心推荐 | LeetCode(力扣),算法、数据结构的学习良伴

YoungZY

算法

[架构师训练营] Week01 -学习总结

谭方敏

组合设计模式编码&手写单例模式

吴建中

极客大学架构师训练营

第三周-设计模式-学习总结

吴建中

极客大学架构师训练营

太赞了!一份适合程序员的精选面试题清单。

JackTian

GitHub 开源 编程 程序员 面试

第三周作业

晨光

第三周总结

晨光

架构师训练营 第三周 学习总结

RZC

让你眼前一亮的 10 大 TS 项目

阿宝哥

Java typescript 开源 大前端 Web

一个汉字占几个字节你真的记住了吗?

Java旅途

【非原创】微服务设计

Axe

数字货币监管当体现“中国之治”

CECBC

数字货币 CECBC 区块链技术 技术标准 准入和监管

Zookeeper的数据剖析

tunsuy

zookeeper 日志分析 事务 快照 数据恢复

第三周手写单例模式(饿汉模式)

吴建中

极客大学架构师训练营

windows使用docker运行mysql等工具(一)windows安装docker

Java旅途

MySQL Docker

架构师训练营 第三周 命题作业

RZC

rodert单排学习redis进阶【白银一】

JavaPub

Java nosql redis

架构师训练营第四周

Melo

组合模式应用

yupi

极客大学架构师训练营 框架开发 第三次作业

John(易筋)

极客时间 设计模式 极客大学 极客大学架构师训练营 框架开发

架构师是怎样炼成的-3-2-设计模式

闷骚程序员

Zookeeper集群模式启动

tunsuy

zookeeper 源码分析 socket 分布式集群

区块链改变数字营销与广告市场

CECBC

区块链技术 广告业 精准投放 去中介 公开透明

windows使用docker运行mysql等工具(二)安装运行mysql

Java旅途

MySQL Docker

架构师训练营第三周作业和小记

tuuezzy

架构师 极客大学架构师训练营

Zookeeper通信协议详解

tunsuy

zookeeper TCP/IP 通信协议

极客大学架构师训练营 框架开发 模式与重构 JUnit、Spring、Hive核心源码解析 第6课

John(易筋)

spring 极客时间 极客大学 极客大学架构师训练营 JUnit

手写单例模式

yupi

文章:使用Ruby DSL实现敏捷素材管理_Ruby_Jeremy Voorhis_InfoQ精选文章