RubyMine 2.0:动态开发的指路灯

市场上首批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

你可能感兴趣的:(RubyMine 2.0:动态开发的指路灯)