阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

评论

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

Unix路径是如何简化算法,架构师性能优化 John 易筋 ARTS 打卡 Week 10

John(易筋)

ARTS 打卡计划

高并发系统设计要点

南方有乔木兮

Java

Kafka两个高性价比的参数调优

我是个bug

Java 大数据 kafka

7个获取访问者真实IP的方法,速学!!!

华为云开发者联盟

nginx 大前端 网站 IP 服务器

LeetCode 1052. Grumpy Bookstore Owner

liu_liu

算法 LeetCode

推荐一款技术人必备的接口测试神器:Apifox

狂师

测试 测试驱动开发实战营 接口测试 测试框架

ARTS WEEK6

紫枫

ARTS 打卡计划

week8 作业

Shawn

华为云FusionInsight MRS融合大数据平台进阶之路

数据湖洞见

大数据 新特性 FusionInsight 华为云 智能数据湖

实战案例丨ModelArts在数据标注、数据过滤上的应用技巧:自动分组

华为云开发者联盟

人工智能 数据 图像识别 图片 分类

Golang新手常犯错误之【循环迭代篇】

卓丁

常见错误 引用迭代 Go 语言

一个好用的工作生活平衡方式

霍太稳@极客邦科技

[POJ 1002] 487-3279 C++解题报告

一直AC一直爽

POJ ACM

设计模式之外观模式解析

Seven七哥

程序员 设计模式 外观模式

正则表达式基础详解

懒猫

Java 正则表达式 大前端 正则

职场求生攻略答疑篇之 1 —— 加班沉思录

臧萌

程序员 加班

Redis系列(七):缓存只是读写回种这么简单吗?如果是,那么请你一定看看这篇文章!

z小赵

redis 分布式 高并发系统设计

Java架构-不要成为项目风险的奴隶

我是苞谷

Java

如何去学好JS的8条小建议

华为云开发者联盟

html 编程 大前端 js 代码

面试题:Java 中的 ==, equals 与 hashCode 的区别与联系

简爱W

浅析区块链如何改变生活

CECBC

数字银行 供应链 身体监测 资产管理

Java架构-Java代码规范那些事

我是苞谷

Java

架构师训练营第八周作业

张明森

【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏

华为云开发者联盟

容器 层次 API 网关 华为云

应用程序研发之基础知识分层与进化

superman

性能测试 + 操作系统 + 锁

鲁米

一文了解JDK12 13 14 GC调优秘籍-附PDF下载

程序那些事

GC JDK14 秘籍 JDK12 JDK13

安全系列之——RSA的前世今生

诸葛小猿

安全 加密解密 非对称加密 rsa

股权交易中心+区块链试点将开始

CECBC

防篡改 股权交易 可追溯 信息存证

Go: 通过代码学习 Map 的设计 — Part II

陈思敏捷

map Go 语言

区块链如何切入供应链金融市场?

CECBC

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