写点什么

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:001533

评论

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

❤【520特别祝福篇】愿有情人终成眷属,已成眷属爱情稳固

码界西柚

爱情 5月日更 520单身福利 520 单身福利

【偶尔一道ctf】xctf adword mobile easy-apk

Thrash

写给大神

小梨蕊

情人节 520单身福利 520 单身福利

PKI系统简介

上海派拉基础研发

CA PKI

拥有5大核心竞争力的华为云GaussDB,成SACC2021最靓那一个…

华为云开发者联盟

数据库 华为云 GaussDB 存算分离 GaussDB(for Redis)

聊聊dubbo协议

捉虫大师

Dubbo 延迟与粘滞连接

青年IT男

dubbo

父母为什么催婚,而你又在逃避什么

小天同学

婚姻 爱情 5月日更

高并发调优backlog多大合适?

运维研习社

nginx 运维 5月日更 并发调优

Hadoop定位问题日志跟踪

InfoQ_Springup

hadoop

数据挖掘从入门到放弃(七):TensorFlow和keras实现线性回归LinearRegression

数据社

机器学习 5月日更

线程与线程池的那些事之线程篇

秦怀杂货店

Java 线程 多线程 进程 并发

造车潮

ES_her0

5月日更

高性能 JavaScriptの笔记(四)

空城机

JavaScript 大前端 5月日更

Nginx基础配置-反向代理

梁龙先森

nginx 大前端

音频均衡器EQ

floer rivor

音视频 Eq

Flink的广播变量

大数据技术指南

大数据 flink 5月日更

【epoll】epoll多路复用和Reactor设计思想

Linux服务器开发

后端 网络编程 C/C++ epoll Linux服务器开发

520节日快乐

IT蜗壳-Tango

5月日更

从技术趋势看质量赋能

BY林子

敏捷 软件测试 质量赋能

这一次,彻底搞懂 Go Cond

HHFCodeRv

Go 语言

夺魁!亚马逊云科技荣膺中国数据管理解决方案领导者!

亚马逊云科技 (Amazon Web Services)

产品思维

lenka

5月日更

珠联壁合地设天造|M1 Mac os(Apple Silicon)基于vscode(arm64)配置搭建Java开发环境(集成web框架Springboot)

刘悦的技术博客

Java vscode spring Boot Starter JDK11 m1

Golang function

escray

学习 极客时间 Go 语言 5月日更

破茧成蝶,如何用数据之力重塑您的业务?| 云途专栏

亚马逊云科技 (Amazon Web Services)

520,珍惜眼前人

数据社

520 520单身福利 520 单身福利

为什么“放弃”?

Nydia

学习

架构学习笔记:复杂度来源

风翱

5月日更 架构复杂度

浪潮云洲链斩获2020-2021年度新一代信息技术创新产品殊荣

数据预处理&特征工程

Qien Z.

Python 5月日更

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