写点什么

RubyMine 2.0:动态开发的指路灯

  • 2009-11-23
  • 本文字数:2539 字

    阅读完需:约 8 分钟

市场上首批 Ruby IDE 中,JetBrains 集中精力开发的 Ruby IDE RubyMine 曾有一席之地。而今,自从 1.0 版本发布后 6 个月,RubyMine 2.0 发布了。

在第一版发布的时候,我们和 RubyMine 首席开发工程师 Dmitry Jemerov 讨论过在未来发布的版本中将会出现的特性,作为 Ruby 开发者手中最可靠的开发环境之一,RubyMine 将会不断地发展前进。

新特性的完整列表现在已经可以在 RubyMine 网站上的 What’s New 中可以查看到。这个版本的关键新特性包括:

  • 支持 Ruby 1.9 以及最新的 Ruby on Rails 架构。
  • 能够支持 Rails 工程规范的 Ruby 代码的高级重构。
  • 改进的 Ruby 代码分析以及新的代码冗余检测程序。
  • 在代码协助中的国际化(i18n)支持。
  • 对创建和运行 Cucumber 测试和 Shoulda 测试进行特定的协助。

InfoQ 和 JetBrains 的产品市场经理 Eugene Toporov 进行过一次对话,主要讨论了 RubyMine 2.0 发布的相关情况。

当询问到 2.0 版中最重要的特性的时候,Eugene 说:

大致来说,我们在 RubyMine 2.0 上做的工作已经满足了大部分 Rails 应用开发者的需求。在这个版本中,我认为我们的 IDE 紧密整合了 Ruby and Rails 中大部分广泛应用的技术和架构。

我们努力在多个方面取得成就。JetBrains 是重构工具的先行者,所以我们希望 Ruby 开发者能够有一系列稳定的代码重构工具。测试也是开发过程中的一个重要环节,我们加入了对 Cucumber 和 Shoulda 的完整支持,RubyMine 现在能够满足任何可视化 Ruby/Rails 工程的需要了。另外一个很重要的方面是 IDE 的性能,我们在这方面也下了很多功夫。

现在 Cucumber 和 Shoulda 在 RubyMine 中非常受到重视。这也是 JetBrains 非常感兴趣的方向之一:

是的,当然!我们非常高兴 RubyMine 团队能够使用 Cucumber 来测试我们的代码。所以,我们现在已经提前内部试用了我们的 Cucumber 整合解决方案,我们非常自信地认为这是编辑和使用 Cucumber 测试的最好解决方案。智能步骤补全功能非常优秀,即使有一大堆步骤定义,你也无须准确地记住他们。从使用中创建的步骤定义和自动样例创建也能节省巨大的时间。

那些喜欢使用 Shoulda 的开发者现在也能够很高兴地发现他们能够在 RubyMine 中使用他们的架构编写和运行测试,由于有代码协助,我们也可以运行单独的测试用例以及其他在整合的测试架构中提供的功能。

在 RubyMine 中提供的 i18n 支持也是一个主要的新特性,这个特性已经在实际工程中实践过了。Eugene 解释了这个特性的个人体验:

哈,i18n 是我最喜欢的特性之一。今年春天,我在没有任何 IDE 提供的协助下,对 Radiant CMS 进行本地化工作。而近期我使用 RubyMine 2.0 做了更多的国际化工作。差距是很大的啊!从代码中解出字符串,无论是从 Ruby 视图还是 Rails 视图(ERB 或者 HAML),仅仅是几秒钟的事情,而且更加简单不易出错。你也可以很迅速地在本地化文件中检视,查看哪些文本是你的代码生成的,无论你的应用包含多少种语言,使用 RubyMine,工作将会简单很多。

开发者生产率是这个版本主要考虑的因素,在这个问题上,答案是显而易见的:

有很多我们需要考虑的因素。其中某些还非常重要,例如代码冗余检测程序。它对项目代码进行检查并且寻找相似的代码块。我们已经在很多开源 Ruby 项目中测试了这个功能,甚至包括 Rails 架构代码。它给出了相当有趣和实用的结果。

同样也有大量的细节是开发者需要关注的。一个能够节省大量时间的功能是“从用法中创建”这个动作,这个功能允许从对象的用法中创建不同的元素。你也可以在代码中使用一个不存在的方法,然后调用快速修正功能来快速创建它。这个功能能够创建新的 action、partial、JavaScript 和 CSS 文件。

相比 RubyMine 1.x 版本,新版本是在最新的 IntelliJ 平台上构建的,这个平台提供了大量的 IDE 通用功能以及性能优化 - 在 VCS 支持,UI 和易用性上。一个例子是对文件和文件夹可以自定义背景色。现在,当你在编辑器中打开 3 个 show.html.erb 文件,你能从标签栏上的颜色中分辨出来它们各自的用途。

然后我们的讨论转向了 Ruby 1.9.1 支持以及 RubyMine 2.0 是如何提供与之前版本不一样的支持方式:

事实上,RubyMine 1.x 只是允许使用 Ruby 1.9 作为目标 SDK,而不是真正地“理解”了它的新语法。现在 RubyMine 的编辑器知道并且理解了新的 lambda 语法、局部变量语义等。这并不仅仅是代码高亮,知识系统现在已经是 RubyMine 代码分析程序的一部分。

重构也是 JetBrains 过去产品中一个非常优秀的特性。当问及 2.0 中重构的级别的时候,他说:

RubyMine 2.0 加入了一些新的重构,例如抽取模块 / 超类,引入变量 / 常数 /Field,内联变量以及取出 / 放入成员。这些重构功能已经足够让项目代码通过做一些项目级的改动来保持一个优雅的风格。旧有的抽取方法这个重构功能现在更加智能,易于使用,并且在 Rails 项目上工作得更好。

一个有意思并且很重要的特性是集成了 TeamCity 的持续性集成(CI)服务器,Eugene 解释了如何在开发者的工作流中使用 CI 服务器。

使用 TeamCity Rake Runner ,你可以为你的 Ruby/Rails 项目进行持续性的集成,并且在一个专用的环境中运行测试。一旦安装了 TeamCity 的插件,RubyMine 允许直接从 IDE 在 build-server 构建项目,检视构建和统计结果,以及运行测试前提交。另外,在浏览测试结果或者 VCS 历史的时候,你还可以在 RubyMine 里面从 TeamCity 的 web UI 中打开源码文件。

下面让我们来看看开发者可以在未来期待些什么吧:

关于 RubyMine 的未来,我们已经制定了一个长期的路线图,在 2.0 版发布之后,我们将抓紧时间,分别进行不同版本的开发。一些将会加入的特性有集成的 SQL 控制台,部署功能支持以及更好的 Rails 开发支持,包括 Rails 3.0 支持。我们将会集成 Issue Trackers,包括 JetBrains YouTrack 。当然我们也会持续地改善现有集成功能的性能。我们一直努力保持在技术的最前沿,并且根据业界的发展趋势和用户需要制定计划,所以,如果你需要什么功能的话 - 告诉我们吧

JetBrains 的网站上,你可以找到 RubyMine 的新特性列表,并且可以下载一个免费的 30 天评估版本。RubyMine 1.x 的用户可以免费升级到 RubyMine 2.0,这个版本现在可以运行在 Windows、Mac OS X 和 Linux 上。

查看英文原文: RubyMine 2.0 : A Clear Path to Dynamic Development

2009-11-23 04:302330
用户头像

发布了 90 篇内容, 共 37.6 次阅读, 收获喜欢 5 次。

关注

评论

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

八月热点抢先看:EasyDL图像分割数据自动贴合标注,标注效率提升30倍+

百度大脑

人工智能

TDSQL数据同步和备份

腾讯云数据库

数据库 tdsql

浪潮云说丨浪潮云行·物联边缘云产品,让物联感知无微不至

云计算,

直击灵魂!美团大牛手撸并发原理笔记,由浅入深剖析JDK源码

Java 编程 架构 面试 程序人生

腾讯云TDSQL-C云原生数据库技术

腾讯云数据库

数据库 tdsql

冲破“薪资”瓶颈,某厂的玩转Java面试指南,他看完涨薪10k了!

Java 程序员 架构 编程语言

To B的软件产品死结怎么解?

刘华Kenneth

tob产品 客户服务

第4章-《Linux一学就会》- vim编辑器和恢复ext4下误删文件-Xmanager工具

学神来啦

vim Linux 运维 VI

斯图飞腾Stratifyd亮相Smart Retail,AI赋能零售新增长

一张图读懂Z-ONE Digital Car

SOA开发者

软件定义汽车技术体系研究

SOA开发者

2021字节跳动面试总监首发1121道LeetCode算法刷题笔记(含答案)

Java 面试 程序人生 计算机

千万级学生管理系统的考试试卷存储方案

Geek_db27b5

拥抱云原生,华为云GaussDB全新助力金融行业数字化转型

华为云数据库小助手

GaussDB GaussDB(for openGauss) 华为云数据库

2021中国规模化敏捷大会(早鸟票倒计时)

AmyGuo

DevOps 敏捷开发 Scrum精髓 硬件敏捷 规模化敏捷

智能网联汽车安全架构系列1:ECU安全机制介绍

SOA开发者

华为云正式推出区块链服务!区块链技术将在数字经济时代大放异彩

CECBC

云计算科普:Pets(宠物)和Cattle(牲口)傻傻分不清楚?

刘华Kenneth

云计算 架构 云技术

地铁3D可视化,让一切尽在掌握

ThingJS数字孪生引擎

可视化

设计千万级学生管理系统的考试试卷存储方案

缘分呐

架构设计实战

横空出世!复盘B站面试坑我最深的JDK源码剖析,全是干货!

Java 程序员 架构 架构师 计算机

谈谈汽车芯片信息安全(上篇)

SOA开发者

架构作业 - 模块四 存储架构

Leo Zhao

架构训练营

双碳目标带来的机遇与挑战

石云升

新能源革命 碳中和 碳达峰 9月日更

“碳中和”的未来蓝图中,区块链所占据的重要位置

CECBC

谈谈汽车芯片安全(下篇)

SOA开发者

腾讯云TDSQL助力金融核心系统数字化转型

腾讯云数据库

数据库 tdsql

金九银十已经过半还没拿到offer?阿里大牛熬夜整理的Java面试总结,网友已被震惊到说不出话!

Java 编程 面试 程序人生 金九银十

北京建全球领先区块链算力平台,可满足未来各类场景需求

CECBC

使用Tapdata一步搞定关系型数据库到MongoDB的战略迁移

tapdata

硬件Scrum指南

AmyGuo

Scrum 敏捷开发 硬件架构 硬件开发‘ 硬件敏捷

RubyMine 2.0:动态开发的指路灯_Ruby_Robert Bazinet_InfoQ精选文章