论坛首页 编程语言技术论坛

RoR迈向2.0,强化企业开发机制

浏览 1831 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (7)
作者 正文
   发表时间:2008-04-12  
基于Ruby语言的开发框架Rails 推出2.0新版。新增多项企业级运用所需的技术,包括对信息安全、交易、效能等方面机制的改善,可用来协助企业在需求快速改变的Web环境中,进行快速开发。

Rails框架作者David Heinemeier Hansson(简称DHH)本月初于Ruby on Rails(简称RoR)官方部落格发布Rails 2.0正式版。Rails这种敏捷开发的框架,从2004年推出后,因为开发框架大受欢迎,而使得开发语言Ruby开始流行,甚至挤进全球开发语言排行前10名,去年还获得欧美与日本开发市场的高度关注,CodeGear大中华区技术总监李维表示:「RoR风行的情形,类似1990年的Java,也将开始走入企业应用。」历经4年,DHH终于再度推出第2版,并且增强企业最关心的信息安全、数据交易(transition)、效能等方面的功能。

在Rails 2.0的新特色,增强了许多企业级应用所需的开发机制。例如新版最重要的其中一项特色是,在数据交易上,更完整的支持REST,这种连Amazon或Yahoo都在使用的网络数据交换方式。一般企业网站应用提供Web Service时,多采用SOAP或XML-RPC的数据封装方式,来进行XML数据的传递。但不同于SOAP或XML-RPC,REST可以提供更贴近HTML协议,也更简洁的XML数据存取方式与参考结构,有利于简化不同网络应用之间传递数据的开发过程,有助于进行快速开发,或需经常变更数据架构的网络应用。

另外新版本也强化了企业近年来最担心的信息安全机制。例如Rails 2.0内建HTML窗体和Ajax请求的验证机制,可以检测是否来自正确授权网站的数据请求,避免被拦截或伪造。对于常见的跨站攻击(XSS),也能够从过去检查黑名单的方式,预设为更主动的白名单验证,只开放授权网站存取。此外还新增一个模块来处理HTTP的基本身份验证,开发人员可以很容易让取得存取授权的API程序,跨越SSL协议。这些信息安全机制,过去得相当费力自行开发,现都直接纳入Rails新版的默认功能,企业可以直接使用。

效能是Rails 2.0第三个重要改善。采用RoR的Twitter网站,曾发生因为使用量暴增而效能不彰的情况,引起开发社群对RoR效能的疑虑和争辩。在Rails 2.0中,追加查询暂存(query cache)的机制,让重复出现的相似查询指令,存取相同的暂存数据,减少数据库的读取负担。另外也在异常管理功能中,新增一个request profiler的指令,可以用来追踪一支程序实际使用的过程,产生每个步骤运行时间的报表,可以用来找出实际运作上的效能瓶颈,作为进一步优化程序的依据。

新版Rails在信息安全、交易与效能上的改进,李维认为:「让RoR满足企业级开发需求,不只是个人或小型开发。」但他不认为RoR会取代企业现有的开发方式,他认为RoR快速的雏形开发能力,可以协助企业解决像入口网站或对外网络服务,这类经常需要应变的开发需求,而像核心系统或复杂应用,还是需要更强的开发语言。台大计中程序设计组组长也是资工系副教授吕学一同意这个看法:「台大常有很多小型开发需求,其实也相当耗人力,因此需要功能不用很强但开发很快的工具。」台大也有意采用RoR来解决这类小而快的需求。

除了RoR开发框架增强对企业应用的支持之外,也开始出现整合式的RoR IDE开发工具。目前已有供企业开发RoR的IDE工具,例如像Sun将推出的NetBeans 6.0,或CodeGear甫在台发表的RoR专用开发工具3rdRail,都已经支持到RoR前一版本。李维表示:「明年第一季3rdRail会推出新版,支持RoR 2.0版,并提供专属的Rails框架除错功能。


Rails 2.0新增功能

Rails功能類別  增強項目
Action Pack ● 增強對RESTful方式的實現。將分號區隔定字的方式改成斜線。開發人員可自訂URL 路由的命名規則。
● 增強Multiview,可以在樣版(Template)中控制不同的呈現樣式。
● 建立大量命名預設規則,簡化Controller和View的URL。
● 新增處理HTTP基本驗證的模組,提供授權API跨越SSL。
● 新增瀏覽器請求靜態資源的分配機制,可分散伺服器的請求負擔。
● 內建處理CRSF攻擊的查驗機制。
● 增加白名單驗證功能,可預防跨站腳本攻擊。
● 使用Cookie來儲存Session資料。
● 新增request profiler,可供追蹤一支程式中每個步驟的實際執行時間,用來判斷效能瓶頸。
Active Record ● 提供SQL查詢的暫存。
● 新的Migration方式,簡化宣告方式。
● 增強對XML的支援,如還原XML序列的功能。
● 將商用資料庫移出預設。
其他 ● 回復中斷點除錯的功能。
● 簡化對外掛模組的管理。
資料來源:David Heinemeier Hansson,iThome整理,2007年12月

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics