写点什么

NetBeans:Ruby 开发者的新伙伴(第二部分)

  • 2007-12-25
  • 本文字数:2482 字

    阅读完需:约 8 分钟

本文是 NetBeans & Ruby 系列的第二篇。上一篇介绍了NetBeans 中新的Ruby 支持。

在这一部分,我将主要讨论Ruby on Rails 工具,以及围绕着编辑器内内外外的各种能帮助你提高生产力的附加功能。IDE 这个词本身就是集成开发环境的缩写,因此你将会看到使用NetBeans 之后,就不用再为了使用Ruby 和Rails 而切换到命令行了。

Ruby on Rails 支持

在 NetBeans 里面创建新的 Ruby 应用程序的时候,你可以从不同的模板当中选择——你可以创建普通的 Ruby 应用,也可以创建 Ruby on Rails 应用。

创建 Rails 项目的时候,IDE 会让你选择要用原生 Ruby 还是 JRuby,选择要用哪个数据库驱动(如果是 JRuby 还包括 JDBC),还乐意很方便地升级到最新版的 Rails。确认新建项目对话框之后,项目的默认目录结构就会建好。这是 Rails 的一大优点,由于所有的应用结构都差不多,所以你拿到别人建立的项目也会很快上手。NetBeans 的项目浏览器能让你对项目文件之间的整体逻辑有个直观的感受,你也可以方便地浏览它们。

你可以直接在 IDE 里面使用 Rails 生成器——在项目上点右键就可以选择使用哪个生成器,填好参数,运行,接着你就会在输出窗口看到生成器的输出了。

你在开发的时候还可以用上编辑器的代码完成、重构、快速修补等等功能(本系列的第一部分介绍了编辑器的部分特性)。要是准备好运行你的程序了,什么配置都不用做,直接按下运行按钮就可以了——NetBeans 捆绑了Webrick 服务器来运行你的应用。浏览器窗口会自动打开。如果你打算调试程序,IDE 还会在调试模式运行Webrick 服务器。当然,你也可以很容易地把服务器换成Mongrel。

IDE 还集成了 Rake,因此你可以在项目中执行 Rake 目标:

调试 Rake 目标也很容易,运行迁移脚本,与 Rails 控制台交互,这些都可以在 IDE 里完成。你还可以通过一个特殊的对话框安装各种 Rails 插件。还有很多其他 Rails 开发方面的特性,希望我举的这些例子能让你对在 NetBeans 中开发 Rails 应用有个初步的印象。

编辑特性

我在上一部分已经介绍过一些编辑方面的特性(代码完成和重构)。我认为 NetBeans 的编辑器应该是大多数 Ruby 开发者都会喜欢的——随时都会发现一些贴心的小功能。例如当你创建一个新方法的时候,编辑器会自动插入结束语句,并把光标定位到方法中间那一行。你还可以看到各种元素,比如变量在文件中出现的所有位置:

如果我想给一个变量改名,只需要按一下 Ctrl-R,文件中所有用到该变量的地方都会一下子改好:

漂亮的语法着色方便了在代码中定位,甚至 RubyDocs 也有语法着色。你一边输入,编辑器就会一边把错误用下划线标出来,NetBeans 还会告诉你哪些变量是没用到的,好让你删掉它们。

如果你按着 CTRL 键,同时把鼠标移到任何类、方法或者变量上面,编辑器会把你带到它们的声明。你还可以看到一个小提示,告诉你当前选中元素的用途。

你也可以使用代码模板。你可以在很多预定义的模板里面选择,自己创建新模板也很容易。在模板里面可以设置模板展开后光标的位置,还可以预先插入各种变量。因此要是你经常使用某些 API,模板就很有帮助。

还有很多编辑特性不能一一介绍,请查阅关于 Ruby 编辑的 Wiki 页面: http://wiki.netbeans.org/wiki/view/RubyEditing

Gem 管理器

Gem 管理器(Tools | Ruby Gems)可以安装新版本的地 Gem,浏览、升级已经安装的 Gem 等等,请看下面的截图。用户界面和 NetBeans 插件管理器以及 Rails 插件管理器都很相似,因此你并不会感到陌生。在 Ruby 仓库里有很多很多 Gem,想找什么库的时候全文搜索一下会很有帮助。

## Ruby 选项

我前面提过,你可以在原生 Ruby 或者 JRuby 之间切换。IDE 默认使用 JRuby,因为它捆绑了 JRuby,不过只要告诉 IDE 现有 Ruby 的安装位置,它就会改用你指定的 Ruby,不管是什么操作系统。

选项对话框里面还可以选择是使用经典调试器,还是使用快速调试器。不过在 JRuby 环境下你只能用经典调试器,虽然慢一点,但能适应各种情况。在原生 Ruby 环境下可以使用快速调试器(很容易安装,IDE 会去下载它),这是 Ruby 推荐使用的调试器。选项对话框还有两个选项页:“格式化”控制编辑器里的格式化设置,“提示”控制编辑器里那些“小灯泡”的出现。

单元测试

单元测式功能集成得很出色。例如当你创建一个新模型的时候,一个新的单元测时也会自动创建好。这是 Ruby on Rails 的一个特色,它的哲学是单元测试太重要了,绝对不可缺少。单元测试也可以直接在编辑器里运行,编辑器里当然还可以浏览测试类。

如果你真的很在意测试,可以安装“ZenTest”Ruby Gem(通过 Tools | Ruby Gems),之后项目的右键菜单就会多一个“AutoTest”选项。它会启动项目的自动测试,每当你修改了一个文件,它都会自动执行单元测试。AutoTest 在很多情况下都能判断出需要运行哪些单元测试——尤其是 Rails 项目。如果它判断不了,就会运行所有单元测试。

使用控制台

尽管我们已经尽可能把功能集成进 IDE,还是有你想用控制台的时候。比如当你想通过交互的方式尝试一些 Ruby API 的时候,控制台就很有用。选择 Window | Other | Ruby Shell (IRB) 就会打开 Ruby Shell。控制台会在 IDE 的底部打开,你可以不受拘束地享受 Ruby 交互语言的强大能力。

## 更多信息

关于 NetBeans 的 Ruby 支持,你可以在它对应的 Wiki 页面上找到更多信息: http://wiki.netbeans.info/wiki/view/Ruby

Ruby 文档页面上有不少演示和教程: http://www.netbeans.org/kb/60/ruby/index.html

最后,你可从以下地址免费下载 NetBeans IDE: http://www.netbeans.org/community/releases/60/index.html 。你还可以选择安装只包含 Ruby 的精简版 IDE(特别提供了安装包),或者安装完整版的 Java IDE 附带 Ruby 支持。只包含 Java 的版本也可以通过 Tools | Plugins 增加 Ruby 支持。

在下一篇中,我们将讨论安装若干实验性插件之后得到的额外功能,还会讨论一些与社区相关的论题,比如如何参与到这个项目以及未来的计划。与此同时,请务必试一下 NetBeans 的 Ruby 支持。如果你经常用搞 Ruby 开发,NetBeans 就是你要找的 IDE!

查看英文原文: NetBeans: Ruby Developer’s New Best Friend (Part 2)

2007-12-25 03:571556
用户头像

发布了 225 篇内容, 共 63.3 次阅读, 收获喜欢 50 次。

关注

评论

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

面试突击49:说一下 JUC 中的 Exchange 交换器?

王磊

Java java面试

要做研发高手,就是必须能看英文、写英文

TDengine

数据库 tdengine 开源

ApacheCon Asia 2022 强势来袭!16 大专题等你投稿!

阿里巴巴云原生

开源 云原生 活动

员工考勤打卡时,如何避免非本人代替打卡?

华为云开发者联盟

人脸识别 打卡 华为云FRS 华为云FunctionGraph 华为云APIG

万字长文:手把手教你实现一套高效的IM长连接自适应心跳保活机制

JackJiang

TCP 网络编程 即时通讯 im开发 心跳保活

架构7期模块1作业

Elvis FAN

架构实战营

时间序列化数据库选型?时序数据库的选择?

TDengine

数据库 tdengine

时序数据库的集群方案?

TDengine

数据库 tdengine 开源

TDengine 在酷哞哞的应用

TDengine

数据库 tdengine 开源 物联网

争夺存量用户关键战,助力企业构建完美标签体系丨01期直播回顾

袋鼠云数栈

大数据 数据中台

【刷题第12天】58. 最后一个单词的长度

白日梦

5月月更

互联网大厂研发效能团队的需求管理

laofo

互联网 DevOps cicd 研发效能 CI/CD

Reactor百万连接的并发

C++后台开发

reactor 高并发 epoll Linux服务器开发 C++后台开发

开启分布式应用性能观测(APM)

观测云

可观测性 可观测

为什么说 MongoDB 和 HBase 不适用于汽车行业的时序数据处理?

TDengine

数据库 tdengine 开源 时序数据库

[Day41]-[回溯]-全排列

方勇(gopher)

LeetCode 回溯算法 数据结构算法

场景实践 | 如何使用融云超级群构建游戏社区

融云 RongCloud

直播预约|数据指标体系如何搭建才最有效,从0到1带你快速入门

袋鼠云数栈

大数据 数据中台

敏捷已死

方云AI研发绩效

netty系列之:在netty中实现线程和CPU绑定

程序那些事

Java Netty 程序那些事 5月月更

私有化的IM即时通讯平台,企业首选的沟通工具

WorkPlus

互联网公司目标管理OKR实践落地与反思

laofo

互联网 OKR 研发效能 绩效管理 快手

B站S11破亿直播在线稳定性保障秘籍——演讲实录

TakinTalks稳定性社区

混沌工程 系统稳定性 全链路压测 安全生产

携手 TDengine,释普科技升级实验室仪器、监控智能方案

TDengine

数据库 tdengine 开源 物联网

携手数字人、数字空间、XR平台,阿里云与伙伴共同建设“新视界”

阿里云弹性计算

XR 数字人 视觉计算 瑶台

Docker学习记录

ZuccRoger

5月月更

通过 Amazon API Gateway 和 Amazon Lambda 实现基于 Restful API 的 CloudFront Distribution 复制/克隆功能

亚马逊云科技 (Amazon Web Services)

Lambda Gateway

学生管理系统架构设计图

Justin1024

TDengine在弘源泰平量化投资中的实践

TDengine

数据库 tdengine 开源 时序数据库

ShardingSphere 在东南亚|与科技保险公司 Fuse 的技术融合

SphereEx

Apache 开源 ShardingSphere SphereEx 数据库·

互联网公司目标管理OKR和绩效考核误区

laofo

OKR 研发效能 互联网公司 快手 绩效考核 GRAD

NetBeans:Ruby开发者的新伙伴(第二部分)_Java_Roman Strobl_InfoQ精选文章