NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

基于SpringBoot 的MCMS系统,完全开源,直接商用太爽了

冉然学Java

Java 源码 springboot 构架

全面打通 DevOps 数据链的研发效能度量平台

思码逸研发效能

开源 DevOps 研发效能 效能度量

Java基本概念详解

五分钟学大数据

Java 7月月更

双目立体匹配之视差优化

秃头小苏

7月月更 双目立体匹配

《高绩效教练》:如何用提问激发潜能?

郭明

读书笔记

MySQL进阶(一)主外键讲解

No Silver Bullet

MySQL 数据库 7月月更 主外键

使用ServiceWorker提高性能

devpoint

JavaScript Service Worker 7月月更

企事业单位该如何建设知识管理体系

Baklib

面试突击65:为什么要用HTTPS?它有什么优点?

王磊

Java 面试题

Hexo在github上构建的博客

沃德

程序员 Hexo 博客 7月月更

解决浏览器回退表单重复提交问题

沃德

程序员 javaWeb 7月月更

多链多币种钱包系统开发跨链技术

薇電13242772558

钱包 跨链技术

会用redis吗?那还不快来了解下redis protocol

冉然学Java

Java 分布式 构架 Redis 数据结构

FAQ制作工具推荐

Baklib

为什么说企业需要具备企业知识管理的能力?

Baklib

不习惯的 Vue3 起步五 のapiHooks封装

空城机

Vue3 7月月更

语音直播app源码

开源直播系统源码

直播系统源码 开源源码 语音直播系统源码

数据仓库分层——DWD DWS ADS傻傻分不清楚

怀瑾握瑜的嘉与嘉

数据仓库 7月月更

Qt|QWT绘制柱状图一类多种颜色

中国好公民st

qt 7月月更

Qt | 读取文件内容并删除文件 QFile

YOLO.

File 文件操作 qt 7月月更

营销玩法多变,搞懂规则是关键!

CRMEB

Redis 过期的数据会被立马删除么?大有玄机

码哥字节

redis 底层原理 7月月更

微软 Edge 浏览器 Tracking Prevention 的强制措施的一个例子

Jerry Wang

JavaScript microsoft 浏览器 前端开发 7月月更

某易跟帖频道,接口溯源分析,反爬新技巧,必掌握一下

梦想橡皮擦

Python 爬虫 Python爬虫 7月月更

【LeetCode】数组美丽值求和Java题解

Albert

LeetCode 7月月更

java培训之Java8 Stream 代码简化是如何实现的

@零度

stream JAVA开发

龙芯高级工程师直播:视频编解码基础知识入门 | 第 31 期

OpenAnolis小助手

直播 基础 视频编解码 龙蜥大讲堂 龙芯中科

基于Qt设计的课堂考勤系统(采用RDS for MySQL云数据库 )

DS小龙哥

7月月更

CSS神奇的卡片悬停交互效果

南城FE

CSS 前端 动画 鼠标悬浮 7月月更

硅谷来信:Google、Facebook员工的“成长型思维”

博文视点Broadview

Java 在Word文档中查找和高亮文本

在下毛毛雨

Java word文档 查找与高亮

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