【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

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:571462
用户头像

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

关注

评论

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

XRP瑞波币系统软件开发|XRP瑞波币APP开发

系统开发

LeetCode题解:42. 接雨水,暴力法,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

波场智能合约系统开发技术方案丨智能合约DAPP系统开发源码

SpacePX挖矿系统APP开发|SpacePX挖矿软件开发

系统开发

用 JavaScript 实现一个 TicTacToe 游戏 —— 编程训练

三钻

Java 算法 大前端 游戏开发 七日更

现代JavaScript:ES6+ 中的 Imports,Exports,Let,Const 和 Promise

葡萄城技术团队

Java ES6

高性能MySQL

田维常

MySQL

传统数仓如何转型大数据

数据社

大数据 数据仓库 七日更

架构师训练营第 1 期 第 13 周作业

李循律

极客大学架构师训练营

大神带你一睹为快!阿里技术官亲自码了“2000页的Spring全家桶笔记”真牛逼!

比伯

Java 编程 程序员 架构 计算机

程序员必看的Redis6.0多线程性能测试结果及分析 你看懂了嘛?

比伯

Java 编程 架构 面试

用 JavaScript 实现寻路算法 —— 编程训练

三钻

Java 算法 大前端 七日更 寻路算法

社区一体化综合平台搭建,智慧平安小区建设解决方案

t13823115967

智慧城市 智慧平安社区平台建设

架构师训练营第 1 期 - 第 11 周 - 命题作业

wgl

极客大学架构师训练营

软件测试的方法

测试人生路

软件测试

应对游戏业务的四大“崩溃”场景有妙招,安全畅玩不是梦!

华为云开发者联盟

游戏 场景 崩溃

如何阅读别人的源码

熊斌

学习 Code Review 源码阅读 七日更

ECS实践案例丨逻辑卷的创建和扩容操作指导

华为云开发者联盟

数据库 数据 服务

判空使用isEmpty()方法真的可行吗?

田维常

Java

灵魂一问:数据库连接池到底该怎么配?

Gopher指北

MySQL Go 语言

Serverless 是一种思想状态

Serverless Devs

Java Serverless 运维 云原生 后端

区块链数字货币多币种钱包开发案例

阿里P8整理出Nginx笔记:Nginx应用与运维实战核心篇

996小迁

Java nginx 架构 面试

顶会两篇论文连发,华为云医疗AI低调中崭露头角

华为云开发者联盟

人工智能 医疗 华为云

Android uni-app实现音视频通话

anyRTC开发者

uni-app android 音视频 WebRTC 跨平台

打开数“智”化之门,一字之差带来的思考

京东科技开发者

DevOps IoT 新基建 智能

你不好奇 Linux 网络发包过程吗?

小林coding

Linux 操作系统 网络

滴滴内部框架手册:Spring5+SpringMVC3+MyBatis3.X

Java架构追梦

Java spring 架构 mybatis springmvc

执法监督信息化建设,公安情报指挥一体化合成作战系统开发

t13823115967

智慧公安

都 2021 年了,Serverless 能取代微服务吗?

Serverless Devs

Serverless 微服务 运维 云原生 后端

编写令人愉悦的API接口(二)

Geek_42915f

Java APi设计 接口规范

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