InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

RubyMine 2.0:动态开发的指路灯

作者 Robert Bazinet 译者 杨晨 发布于 2009年11月23日

领域
语言 & 开发
主题
IDE ,
Ruby on Rails ,
Ruby
标签
持续集成 ,
行为驱动开发 ,
Ruby 1.9 ,
Ruby on Rails ,
TeamCity

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

译者 杨晨 对数据库和搜索引擎有深入了解,尤其擅长经典计算机科学理论,对历史学兴趣浓厚。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。