扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Bruce Tate 来源:51CTO.com 2007年9月14日
关键字:
交互性
Ruby的交互式体验也有助于Rails。您可能认为在没有完整的IDE的情况下调试Rails应用程序将是一个痛苦的过程。实际却不是这样。Rails提供两种简化调试的功能。其中之一是breakpointer,它允许您向源代码添加breakpoint关键字。
为理解breakpointer的运行过程,可创建一个简单的Rails应用程序,生成一个控制器,启动服务器,并启动breakpointer。确保您有权使用breakpointer窗口,因为当Ruby遇到断点时您将使用它。使用Windows时,命令序列如下:
|
如果在UNIX®或Mac OS X中运行,请确保服务器在一个单独的进程中启动。
把以下代码键入或粘贴到app/controllers/samples_controller.rb文件中:
|
通过加载页面localhost:3000/samples和localhost:3000/samples/show来测试代码。
当Rails执行到断点时,应用程序暂停。breakpointer窗口用具有控制器当前状态的环境打开一个Ruby解释器。然后可以执行Ruby命令来查询会话的状态、执行方法和查询变量:
|
这种密切联系并没有给您一个完整的调试器,但是您确实能获得Java调试器不能为您带来的功能,包括访问完整的解释器和能够执行应用程序的方法。
能够简化调试的第二个功能是Active Record控制台。Rails也附带一个脚本,能够让您在交互式Ruby解释器窗口处理持久对象。我经常想让我的Java应用程序具有这种功能。您可以编写一个持久模型,通过该模型更改数据库,然后运行一些数据库查询来看一下它们对系统的影响。要是能够在类似的设置中查询Hibernate对象就太好了。
约定优于配置
约定优于配置也会使新的Rails开发人员能够立即上手,因为控制器和模型代码特别简洁。依靠Rails环境,可以从一些非常瘦的类获得相当高级的行为——通过采用Rails命名约定和由Rails推断应用程序的连接点而不是直接配置它们。回顾一下,具有很多属性且与部门(department)具有一对多关系的Person对象可能类似于下面这样:
|
不需要任何配置,因为Rails根据命名约定推断表(people)的名称、对象标识符和主键(id)的名称、相关的表(departments)的名称、外键(department_id)的名称、外部类(department.rb)的名称。无论对于编写、阅读还是维护来说,代码都保持简单、轻巧和非常赏心悦目。目的直接而清楚。
Java开发人员能学到什么?
我不推荐用Java语言构建一个更好的Rails。相反,Java开发人员应该从Rails框架学习一些教训,并试图构建或增强Java框架以完成下面的任务:
◆允许热部署。这将缩短开发反馈周期或支持允许热部署的框架。在Java端此优先权应该比现在高得多。
◆使用较少的XML和更多的约定。约定与配置并不是井水不犯河水,因为可以使用约定来指定明确的默认值,使用配置来覆盖约定。像Rails那样使用这种方法,您可以两全其美:具有较少重复的简洁代码而不会失去灵活性。
◆为了在调试过程中浏览Java类,合并更多的脚本语言,包括BeanShell。
◆为任务选用正确的工具。不必仅仅因为需要持久性就借助于Hibernate或仅仅因为需要Web应用程序就借助于Struts。
通过合并其他编程语言的最好特性,您可以不必重复Rails,但肯定可以改善Java体验。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者