QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

Atomist 发布 Alpha 版本程序

  • 2017-02-15
  • 本文字数:1105 字

    阅读完需:约 4 分钟

Atomist 为想要尝试 Rug 语言的人们发布了一个 Alpha 测试版程序,Rug 是 Atomist 公司的元 - 元编程语言(meta-meta-programming language)。

Atomist 将 Rug 描述为一种自动化开发工作流的编程语言。Rug 是由 Atomist 精心设计的,它通过产生重复代码、样板代码来自动化开发工作流。

Rug 的目标是提高像微服务这样的分布式系统的工作效率。它关注于下列类型的结构中的一些问题,例如,跨服务的重复性编码任务:类库的升级、项目构建的配置、框架项目的生成等等。

Atomist 的首席工程师 Russ Miles 在 Jax London 2016 上首次披露了 Rug,他展示了 Rug 如何被用于项目的创建中。在 Rug 中有些类型被称作"发生器(generators)",它们能够被用于在项目开始时创建微服务。例如,你能够通过执行一条命令来得到一个类似 Spring Boot 的微服务框架。它包括了许多组件,例如 Gradle 的构建配置,包结构甚至还有 Dockerfiles

Miles 还展示了 Rug 和 Git 以及 GitHub 的结合。Atomist GitHub 有着创建 commit 和提出 pull requests 的能力,它就像一个真实存在的人在进行操作。Miles 解释道,由于很难将它和一个普通的开发者区分开来,所以它能使得融入一个团队更加容易。这是因为产生的 Git 历史记录和 GitHub 使用记录就像是一个真实存在的人在整个过程中手动完成的。

Miles 提到的另一个结合是与 Slack 的结合。Atomist Slack 机器人使得你能够通过提交命令来创建 GitHub 项目,设置权限然后生成项目框架。这就意味着你只需要在 Slack 的 channel 中敲上一个简单的短语就能立刻克隆出一个新的、完整配置的服务。

除了创建项目,Miles 还展示了 Rug 是如何在已经存在的代码库中做修改的。这被称为"编辑器"。展示的例子是 Rug 能够在多个项目之间升级类库。展示的使用案例是,在多个不同微服务的常用类库中应用一个安全补丁。

Rug 提供了它自己的测试框架。它采用的是 BDD 方法,它使得用户能够由外而内地描述应用的行为。它的目标是使得用户创建的 Rug 尽可能的健壮和可靠。

Miles 强调,Rug 不是限制你为某种特定编程语言编辑和创建代码。Rug 是语言无关的,它的目标是将你所使用的微服务中的不同架构更加容易地融合到一起。事实上,Rug 更加适用于那些复杂的系统和分布式系统,而这个是与传统的独立应用恰恰相反的。

Atomist 是由 Rod Johnson 缔造的,他也是 Spring 框架的创造者。你可以在线看一下这个十分钟的针对Miles 的采访

查看英文原文: http://www.infoq.com/news/2017/02/atomist-rug-metaprogramming


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-02-15 18:001289

评论

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

微信朋友圈高性能复杂度分析模拟

穿裤子的云

架构实战营

❤ 超详细《软件测试全栈技能》思维导图详解 ❤(建议收藏) ​

程序员阿沐

程序员 软件测试 自动化测试 经验分享 技能图谱

05. AI就是会学习的计算机程序:从机器学习角度看AI

Databri_AI

人工智能

架构训练营模块五作业

高铎

架构实战营

模块六作业

河马先生

架构实战营

模块6 作业

Geek_35a345

kafka核心技术与实战学习笔记(一)

追风少年

kafka

架构训练营模块六作业

高铎

架构实战营

模块六作业

VE

架构实战营

模块6作业

柱林

架构1期模块六作业

五只羊

架构实战营

从命令执行到GetShell,适合新手学习

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

架构实战营第六模块作业

子豪sirius

架构实战营

拆分电商系统为微服务

feitian

模块六

秀聪

架构训练营

Lua 入门到精通( 01 Lua 简介以及软件安装)《做一个脚本高手》

陈皮的JavaLib

lua Linux 运维 脚本语言 8月日更

深入了解RocketMQ之NameServer

邱学喆

KVConfigManager RouteInfoManager

instanceof运算符的实质:Java继承链与JavaScript原型链

zhoulujun

JavaScript 原型链 instanceof constructor prototype

模块二作业

Geek_fc100d

架构实战营

架构实战营作业 M06

Shawn Liu

「架构实战营」

模块6

Geek_ywh40v

Java面试很难?啃完阿里老哥这套Java架构速成笔记,我都能拿30K

Java 编程 架构 面试 程序人生

网络攻防学习笔记 Day120

穿过生命散发芬芳

网络安全 8月日更

【iOS独立开发】基于iCloud构建游戏内排行榜

LabLawliet

ios 8月日更 独立开发

VR运动病要想好,FemTech少不了

脑极体

模块六作业

seawolflin

架构实战营

极客时间---架构实战营2期---模块一作业

Dylan TANG

极客时间 架构实战营 作业一

性能测试框架中实时QPS取样器实现

FunTester

性能测试 测试框架 压力测试 QPS 取样器

架构实战营 模块六 作业

脉醉

#架构实战营

把知识玩起来:Ansible(一)快乐的入门

南冥

架构实战营模块6作业

zlz

Atomist发布Alpha版本程序_语言 & 开发_Andrew Morgan_InfoQ精选文章