50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

文章:使用 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:571169
用户头像

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

关注

评论

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

游戏夜读 | 做游戏选什么专业?

game1night

File类的文件操作

Howe

Java File 文件 io

leetcode20.有效的括号

Damien

算法 LeetCode

扩展Redis:增加Redis命令

心平气和

redis

高仿瑞幸小程序 02 创建Tabbar

曾伟@喵先森

小程序 微信小程序 大前端 瑞幸

[计算机网络1]我所知道的关于TCP的一切

海神名

TCP 计算机网络 网络协议 原理

用 Vim 编辑 Markdown 时直接粘贴图片

mzlogin

vim markdown

我看拼多多黄峥:旧世界瓦解冰消

池建强

拼多多 黄峥

思维偏差与产品设计的关联思考

石君

产品设计 思维方式 安全产品设计

源码浅析 - CocoaLumberjack 3.6 之 DDLog

Edmond

ios log4j CocoaLumberjack SourceCode DDLog

leetcode1137:第 N 个泰波那契数

Damien

算法 LeetCode 斐波那契

阿里29大开源项目看看你都用过哪些

Bruce Duan

哲少荐书:这才是心理学

Jackey

心理学 读书

科学治疗“知识焦虑症”

陈驰远

个人成长 知识管理

译文MapReduce:大型集群上的简化数据处理

海神名

mapreduce 译文 MIT 分布式计算

企业如何选择物联网中台

老任物联网杂谈

物联网中台 IOT Platform 物联网平台

虚拟化Pod性能比物理机还要好,原因竟然是这样!

亨利笔记

Kubernetes 容器 k8s vSphere pod

缘起:很久很久以前

escray

学习 测试驱动开发实战营

我愿沉迷于学习,无法自拔(三)

孙瑜

深度思考 程序员 感悟

Java并发编程系列——线程池

孙苏勇

Java Java并发 并发编程 多线程 线程池

轻轻一扫,立刻扣款,付款码背后的原理你不想知道吗?

楼下小黑哥

支付宝 微信支付 支付系统 付款码

树莓派小车系列-直播

波叽波叽啵😮一口盐汽水喷死你

树莓派 ffmpeg 云直播 盐汽水 raspberry

Netty 源码解析(五): Netty 的线程池分析

猿灯塔

架构师们必备的三三制需求分析思维模型

常平

我的关注清单

lmymirror

知识管理 关注清单 RSS

DDD 实践手册(3. Entity, Value Object)

Joshua

系统设计 领域驱动设计 系统架构 架构模式

百度开源项目

Bruce Duan

大家看看我这个斜杠青年够斜吗?

伯薇

个人成长 斜杠青年 能力提升 好奇心 T型人才

每天一道 python 面试题 - Python中的元类(metaclass) 详细版本

志学Python

python 爬虫 python元类

CEPH OSD Down故障分析与处理

木子

下一个阶段,就真的容易了吗?

ke_lv

生活

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