Ruby社区最近发布的更有趣的公告之一是针对Ruby和Ruby on Rails应用程序的JetBrains RubyMine IDE的发布。 Ruby社区以通常不使用集成开发环境(IDE)(例如.NET或Java开发人员使用)而闻名。 Ruby开发人员通常会坚持使用纯文本编辑器,例如TextMate,Vim和Emacs。

RubyMine 1.0仅在不久前发布,希望通过其许多旨在提高开发人员效率的功能吸引Ruby开发人员。

InfoQ有机会与RubyMine的首席开发人员JetBrains的Dmitry Jemerov讨论了RubyMine及其发展方向。

Robert Bazinet(RB):什么是RubyMine?

Dmitry Jemerov(DJ): RubyMine是来自JetBrains的Ruby和Rails项目的新IDE。 RubyMine是在IntelliJ IDEA平台之上构建的轻量级IDE系列中的第一个,其后是Web开发(HTML / CSS / JS / PHP),Python以及其他可能的IDE。

RB:您是谁,您在RubyMine项目中扮演什么角色?

DJ:我是RubyMine的开发负责人。 我的职责包括总体发布计划,设计产品的体系结构,在IntelliJ IDEA平台上工作(使其适用于RubyMine和其他产品),以及在需要时提供编码,错误修复和支持的常规帮助。

RB:谁是RubyMine的目标用户?

DJ:目前,我们的主要目标受众是Rails开发人员,尽管从事非Rails项目的Ruby开发人员也可以在RubyMine中找到许多有用的功能。 我们正在寻找在Ruby社区中流行的其他框架,并且将来的RubyMine版本中可能会支持其中的一些框架。

RB:那么,对于拥有IntelliJ的开发人员来说,他们可以获得一个可以为他们提供RubyMine本身所有功能的插件吗?

DJ:通常,是的,用于IntelliJ IDEA的Ruby插件和RubyMine具有相同的功能-它们是从单一代码库构建的。 但是,RubyMine使用的IntelliJ平台比现在公开可用的平台(IntelliJ 8.x)更新,因此由于此限制,某些功能可能在插件中不可用。 发行IntelliJ IDEA 9后,插件和RubyMine的功能集应相等。 您可以在http://www.jetbrains.net/devnet/docs/DOC-1146中找到更多答案。

RB:许多Ruby和Ruby on Rails开发人员都选择使用纯文本编辑器,例如TextMate,Vim和Emacs。 您看到那些用户迁移到RubyMine吗?

DJ:是的,我们已经看到一些用户已经在迁移,我们绝对希望使RubyMine对使用纯文本编辑器的每个人都有吸引力。 尽管纯文本编辑器和IDE之间始终会存在性能差异,但我们认为,出色的IDE所提供的生产力优势将弥补这一差异。 除此之外,我们计划使RubyMine进行的后台处理级别更具可配置性,以便希望以牺牲某些功能为代价来获得更快的IDE的人们可以从RubyMine中获得该功能。

RB:习惯于TextMate和使用TextMate捆绑软件的开发人员,他们在RubyMine中受支持吗?

DJ: RubyMine中提供了TextMate键盘架构,我们正计划为TextMate配色方案和代码片段创建转换器(以将它们转换为RubyMine实时模板)。

目前,我们除此以外没有其他计划,但我们欢迎其他想法,很高兴看到第三方插件提供此类功能。

RB: RubyMine与其他Ruby / Rails IDE(例如NetBeans或Aptana RadRails)有何不同?

DJ: RubyMine的一些创新功能是:

  • 了解Rails特定调用的参数含义(例如render,redirect_to,has_many等),这使我们能够为这些调用的参数提供代码完成,验证和重构帮助
  • 支持Rails的重构(对控制器,视图等进行重命名,可以正确更新应用程序的所有链接部分)
  • 模型依赖图快速概述了Rails应用程序的结构
  • 对HTML,CSS和JavaScript的强大支持
  • 很好的版本控制集成以及许多高级功能,例如搁置更改(允许暂时保留一些源代码更改)和提交/传入更改(浏览其他团队成员所做更改的简便方法)

RB:试图实现代码补全的 IDE缺乏准确性而受到批评,RubyMine如何实现这一点以确保准确性?

DJ: RubyMine实际上了解Ruby代码的大多数语义,包括一些元编程功能,例如“ included” hook。 因此,几乎不需要显示项目中所有标识符的列表,而只能显示当前作用域中可见的标识符或成员的列表。

RB:我在加载RubyMine对JRuby的引用时注意到,在RubyMine中如何使用JRuby?

DJ: RubyMine的一些高级组件(重构支持,一些检查和意图动作以及其他)是用Ruby编写的,并在JRuby解释器下运行。 我们还计划允许用户在Ruby中编写自己的RubyMine扩展。

RB: RubyMine必须使用哪种类型的SDK来允许开发人员创建附加组件或插件?

DJ:到目前为止,我们还没有提供类似于IntelliJ IDEA的SDK。 这将在更高版本中可用。

但是某些IntelliJ插件已经可以轻松更新以与RubyMine一起使用。 这是一个示例: http : //plugins.jetbrains.net/plugin/?id=4255 。

而且,将有可能使用Ruby编写的脚本来扩展RubyMine。 您可以在<%RubyMine_Home%> / rb / scripts文件夹下看到几个这样的脚本。 在%RubyMine_Home%> / rb / api文件夹中,您可以找到Ruby API的初始版本。 这种方法仍在开发中,我们目前尚未积极推广。 将来,我们将添加带有用于处理脚本的UI的脚本管理器。 但这没有确切的时间表。

RB:您能否详细介绍一下RubyMine调试器?

DJ: RubyMine中的调试器使用与NetBeans和RadRails相同的底层引擎(ruby-debug-ide),并且具有大致相同的功能集。 它支持断点(包括条件断点),框架视图,局部变量视图,线程,监视,步进,表达式求值。 也可以在ERb视图中设置断点。 今天(5月14日)发布的RubyMine 1.0.5已添加了远程调试支持。

RB: RubyMine使用什么解析器?

DJ: RubyMine使用由JetBrains内部开发的自己的词法分析器和解析器。

RB: RubyMine支持哪种类型的重构支持?

DJ: RubyMine 1.0支持以下重构:

  • 重命名(感知Rails,正确更新与要重命名的元素相关的Rails调用和文件)
  • 移动(也可以正确更新参考)
  • 引入变量(有可能检测正在提取的表达式的重复并将其替换为新变量)
  • 提取方法(具有完整的数据流分析功能,可检测输入和输出参数)

RB:您能否为读者提供一些有关下一版本或后续版本将提供哪些其他重构支持的详细信息?

DJ:这是计划在仲夏发布的RubyMine 1.2的重构列表:

  • 介绍常数
  • 介绍参数
  • 介绍领域
  • 内联本地
  • 上拉/下推
  • 提取模块

RB: RubyMine内置了哪种类型的TDD或BDD支持,您如何看待这对开发人员是一个胜利?

DJ: RubyMine 1.0支持Test :: Unit和RSpec,我们目前正在研究Cucumber支持,该支持计划包含在RubyMine 1.1中。 Rails社区拥有非常强大的测试文化,因此我们认为测试支持是任何Ruby and Rails IDE的必备功能。

RB: RubyMine是否可以与所有类型的Ruby一起使用,包括MRI Ruby 1.8.x,1.9.x,JRuby,Rubinius,IronRuby等?

DJ:我们已经用MRI Ruby 1.8.x,JRuby,IronRuby和MacRuby测试了RubyMine。 目前,RubyMine不支持Ruby 1.9的新语言功能。 计划为即将发布的RubyMine版本之一提供支持。

RB:既然RubyMine支持IronRuby,是否已经在OS X上测试了该支持,并且IronRuby在Mono下运行?

DJ:我们尚未对此进行非常彻底的测试。 现成的支持不支持这种配置,但是可以通过一些手动配置使其运行。 如果有需求,我们将在以后的版本中提供必要的支持。

RB: IDE的未来版本中会出现什么?

DJ:可以在我们的网站上找到RubyMine未来版本的路线图:

值得强调的一些功能包括:

  • 更广泛的重构支持
  • 支持HAML和SASS
  • RCov集成
  • 数据库集成(内置查询运行器,SQL语法突出显示支持等)

RB:发布时间表是什么样的?随着错误的解决,会有临时发布吗?

DJ:我们计划每3到6个月发布RubyMine的主要版本,并在每个主要版本之后发布一些错误修复程序。 在主要版本之间,Early Access Preview版本(当前开发版本的快照)将每1或2周发布一次。

RB:德米特里(Dmitry),谢谢您今天抽出宝贵时间与我交谈。 可以在JetBrains网站上找到有关RubyMine 1.0的更多信息。

翻译自: https://www.infoq.com/articles/rubymine-dmitry-jemerov/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

与JetBrains开发人员Dmitry Jemerov谈RubyMine相关推荐

  1. JetBrains开发人员工具

    自从我第一次研究称为IntelliJ Renamer的重构工具以来已经有10年了. 它完全专注于重构Java代码,而不提供编辑支持. 同时, IntelliJ IDEA已经发展成为最先进的Java I ...

  2. github 开放_GitHub为女性开发人员所做的工作,Tim O'Reilly谈开放数据等

    github 开放 开源新闻让您阅读愉快. 2014年1月13-17日 在本周的开源新闻摘要中,您将了解一些新的合作伙伴关系,这些合作伙伴关系可能会带来一些新的开源技术. 这是我们发现的: 妇女和Gi ...

  3. IDEA JetBrains 推出 Mono 编程字体真牛逼,更适合程序开发人员!

    >>号外:关注"Java精选"公众号,菜单栏->聚合->干货分享,回复关键词领取视频资料.开源项目. Intellij IDEA 公司 JetBrains  ...

  4. 开发人员如何优雅地与老板谈工资?

    全文共3039字,预计学习时长9分钟 来源:Pexels 开发员很难,不在于技术,而在于开口.特别是关于薪水的话题. 职场上,老板喜欢给员工谈情怀,员工喜欢给老板谈工资.薪酬是一个永远无法回避,必须要 ...

  5. 访谈:Joel Spolsky谈开发人员角色的变化

    Joel Spolsky最著名的是Stack Overflow的联合创始人,Stack Overflow是每个开发人员都知道的对等Q&A网站,而且访问量最大. 少有名气的是,Spolsky还是 ...

  6. web.g.cs_我没有CS学位而从零开始成为Web开发人员的旅程(以及我从中学到的东西......

    web.g.cs by Sergei Garcia 通过谢尔盖·加西亚(Sergei Garcia) 我没有CS学位而从零开始成为Web开发人员的旅程(以及从中学到的东西) (My journey t ...

  7. 大学可以学前端开发_所有开发人员在大学中应该学习的东西

    大学可以学前端开发 忘记"代码行" (Forget About "Lines of Code") Source 资源 As a developer, you'l ...

  8. c++每调用一次函数+1_每个开发人员都应该知道的一些很棒的现代C ++功能

    c++每调用一次函数+1 As a language, C++ has evolved a lot. 作为一种语言,C ++已经发展了很多. Of course this did not happen ...

  9. 前端分离的前端开发工具_使我成为前端开发人员工作的工具和资源

    前端分离的前端开发工具 Learning front-end development can be a bit overwhelming at times. There are so many res ...

最新文章

  1. 恩布企业IM,协同办公平台发布V1.24.2版本
  2. [数据库基础]——索引详解
  3. Cannot resolve method ‘call(java.lang.String, org.apache.flink.table.api.ApiExpression)‘
  4. c#Md5 32位加密结果少了两个0的原因
  5. 升级glibc的影响_Java 11 升级:“债务”“危机”
  6. python axes_浅谈matplotlib.pyplot与axes的关系
  7. 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)...
  8. 拥有自己的Git服务器
  9. 十月第一周学习进度条
  10. POJ 3668 枚举?
  11. python 路径拼接_python路径拼接os.path.join()函数的用法
  12. android 高德地图放大缩小,手势交互-与地图交互-开发指南-Android 地图SDK | 高德地图API...
  13. 星星之火OIer:2019.1.5考试总结
  14. dell服务器远程管理卡安装,dell r710xd 通过远程管理卡安装系统
  15. CSS实现背景图片透明文字不透明效果的两种方法
  16. [电脑桌面右击新建没有excel、ppt、word]
  17. 有人退税近4000元!个税年度汇算开始了,看看你能退多少?
  18. linux修改ip,mac命令和qt中编程修改
  19. Accurate prediction of molecular targets using a self-supervised image rep...(论文解读)
  20. FlexE( Flex Ethernet灵活以太网)

热门文章

  1. 【赶紧收藏】大学生都在读什么书?让Python用数据告诉你
  2. 中科院魏同镇教授解读韩春雨副教授基因编辑技术‘’NgAgo-gDNA‘’
  3. nonlocal关键字
  4. 国内常用dns服务器
  5. R语言epiDisplay包的kap函数计算Kappa统计量的值(总一致性、期望一致性)、对多个评分对象的结果进行一致性分析、评分的类别为多个类别、如果评分中包含缺失值则标准误及其相关统计量则无法计算
  6. laya给图片添加阴影
  7. CLion 使用 clang-cl 工具链时未正确链接 vcpkg 中的 Boost 外部库
  8. linux java.library.path,linux LD_LIBRARY_PATH环境变量
  9. JavaScript之观察者模式
  10. 基于keras和深度学习的视频分类实战(附代码)