程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 面向企業的Ruby on Rails

面向企業的Ruby on Rails

編輯:關於JAVA

曾有開發者預言,Rails不可能成為企業應用的主流。但隨著Rails在Web開發中的逐漸普及與流行,越來越多的企業開始在Rails上面投入更多關注,同時面向企業復雜業務邏輯開發的Rails應用也逐步出現。

誠然,在Web 2.0網站開發中無往不利的Ruby on Rails(簡稱ROR)完全適應企業應用,但是仍然還需要走很長的路。不可否認,盡管Rails在企業開發中依然是優勢與弊端並存,卻已在部分成功案例中顯露出鋒芒。

Rails與傳統企業開發語言

隨著科學技術的不斷更新,企業IT系統也一直向著越來越復雜的趨勢演進。復雜的J2EE開發模式為復雜的企業應用提供了各種各樣的解決方式,但由於較高的學習成本和實現方式的復雜性,面向企業的技術無疑已成為開發者身上沉重的枷鎖,同時也將一些沒有很好規劃的企業應用開發項目拖入泥潭。

在Web 2.0互聯網開發中碩果累累的Ruby on Rails無疑讓面向企業應用的開發者們看到了一線曙光。畢竟,Rails的介入簡化了企業應用日益復雜化的趨勢,項目復雜度的簡化同時也意味著開發效率和個體生產力的提高。

但是,Ruby on Rails框架的初衷並非面向企業復雜的業務邏輯而設計。Rails創始人David Heinemeier Hansson曾在RailsCon大會演講中提到,Rails並不是為業務邏輯超級復雜的企業級應用所服務的。但在目前中小型企業開發的實際應用中,Rails已經憑借快速有效的開發模式占據了一席之地。

然而,在大型復雜企業應用方面,最適合的必然還是工業化語言。工業語言需要在語法上簡單清晰而且足夠強壯,不能過於靈活,實現同樣的目標往往只有一種最優解而非諸多的花招。

所以工業化語言在語法上需要遵循嚴格標准和規范。同時,由於團隊協作開發—甚至是大規模項目的團隊異地協作的需要,工業語言需要保證團隊中程序員的代碼風格高度一致,在大規模團隊協作中將代碼塊之間的依賴性降到最低。

不可否認,Java是非常適合復雜業務邏輯開發的工業級語言。使用Java語言,開發者們的編程風格非常容易進行統一,在面向對象編程基礎和設計模式的指導之下,使用Java語言編寫的代碼具有相似的風格和極高的相似度。

Java編程語言的語法簡單清晰且嚴密,規范化帶來最大益處就是易於團隊協作。優秀的Java開源框架源代碼都比較容易閱讀,並且Java代碼的二義性小,使用Java實現業務邏輯,往往只有一種最優的方式。這些特性使得Java語言適應企業開發嚴格與嚴密的要求。

但是為了適應復雜工業的需要,Java整個開發體系相當復雜,對於使用者來說需要付出高昂的學習成本。而Ruby on Rails為代表的敏捷Web開發技術大大降低了開發者的學習成本。

ROR優勢

在我們開始探討Ruby on Rails框架適合的應用領域開發之前,先從技術的角度看一下Rails框架的優點所在:

◆ Rails開發速度快,具備一定的代碼輔助生成能力;

◆ Rails框架的MVC結構非常清晰,整體概念一致;

◆ Rails是FullStack框架,包含Web應用所有層面的編程,且各層之間結合緊密;

◆ Rails本身是為Web開發量身定制,可以實現快速Web測試和部署;

◆ Rails通過Active Record將數據封裝在模型類中,通過接口向Web應用提供數據;

◆ 具備自動加載機制和極度簡化的代碼量;

◆ Rails具有集成的Ajax應用快捷開發方式;

◆ Rails擁有眾多易用的插件,幫助提高開發者的效率;

◆ HTML頁面代碼通過強大的模板機制實現。

Ruby on Rails目前的穩定版本是1.2.5,在即將推出的新版Rails 2.0中,新增與改進的特性包含數據遷移腳本的簡化、完善的REST功能支持、新的斷點調試支持、更輕松的插件配置、內置的Rails緩存、增強的靜態資源管理等眾多相關改進。由此可見,Rails的發展方向是為開發者通過一個高度集成化的Web開發平台。

Rails框架一直以良好的設計和高效的開發效率而為人稱道,新版Rails 2.0的推出在易用性和功能方面有了不少改進,並且REST逐漸成為Web開發和接口設計理所當然的方式。

從Rails所依賴的Ruby語言來看,Ruby是一種面向對象的腳本語言,如同Perl語言一樣有豐富的文字處理和系統管理功能,但是Ruby要更為簡單,容易理解和擴充。Ruby語言最大的優點是開發效率,當前的開發趨勢正在朝著輕量級和敏捷高效率的方向發展,Ruby語言的特點順應了這個潮流,並且Rails的火熱又大力地推動了Ruby語言的進一步發展。

Ruby作為一種腳本語言,將與生俱來的動態特性發揮的淋漓盡致。就Ruby語言本身來看,其語法簡潔卻不失強大,從方法名稱到面向對象的實現方式,都為開發者帶來輕松的體驗。相對於編譯語言,Ruby語言編程速度和效率更高。

Ruby語言所體現出的開發效率,使其常用在快速開發的中小型項目和原型系統的構建之上,但這些並不意味著Ruby不適合於中型應用甚至於大型應用的開發,隨著Ruby第三方函數庫的積累和越來越多的開發者加盟,功能齊備的大型應用也將更多的出現。國內已有很多軟件公司即將開始或者已經在使用Rails進行開發。

面向企業開發的優勢與弊端

面向互聯網開發,Rails無疑是集諸多優點於一身,但Rails為開發者所提供的便利與輔助,同時也可能成為制約Rails向企業應用發展的瓶頸。

與Java嚴密的語法限制不同,Ruby本身是難以統一編程風格的語言,這使得常見的Ruby開發無法擁有較大的規模,並且Ruby on Rails框架也會致使應用代碼的耦合度較高,不利於團隊協作開發。

在總結出來適合Ruby on Rails團隊開發的方法之前,Ruby on Rails面向的主要應用領域仍然會被局限在Web2.0互聯網開發方面,在這個領域中,Rails的優點可以被發揮的淋漓盡致,而缺點將會被巧妙的避開。

阻止Rails進入企業開發領域的因素,還有Rails框架本身的一些限制。首先,企業應用對事務處理能力要求非常高,Rails所提供的ActiveRecord還不具備復雜的數據庫事務控制能力,並且對於跨數據庫的分布式事務支持也較弱。

因此對於業務量大,事務處理要求嚴格的企業應用和大型電子商務網站,以及在部署復雜的分布式數據庫情況下,Rails仍然顯得力不從心。其次,由於團隊成員的編碼風格差異較大,較大的項目團隊很難做到協調一致,使得Rails至今仍未產生適應大規模團隊開發的有效模式,在項目中無法使得編碼保持嚴格的相似性。

從Rails框架本身的發展角度來看,目前的功能完備性和成熟度較之成熟的J2EE框架還有差距。但在面向企業應用的業務開發之中,雖然Rails不會取代Java語言,但在中小型的企業應用中,Rails不乏用武之地。隨著國內軟件企業和國外的大型企業的合作日益深入,越來越多的歐美軟件項目湧入中國。在使用Rails進行應用開發上也不例外,市場呼喚越來越多具備Ruby on Rails技能的開發者出現。

隨著Rails開發技術不斷趨向成熟以及眾多開發者的參與,Rails專業培訓也應運而生。按照以往的發展趨勢來看,一門語言專業培訓與服務成熟的同時,也意味著開發語言在企業應用中逐步被采納。

目前在國內,已經出現了不少致力於推動和普及ROR企業級應用的開發者社區。不難看到,即便是對於企業級復雜的要求,Ruby和Rails也已經做好了深入的准備。盡管Rails仍然沒有J2EE這般成熟與強大,但對於注重效率的IT企業來說,是值得在中小型企業應用中嘗試的。

誠然,在面向企業應用的開發中Rails優勢和弊端並存,但隨著Rails框架與開發者的進一步貼近,可以預見Rails將為基於動態語言的Web開發帶來新一輪熱潮。與此同時,一旦Rails更多的融入到邏輯更為復雜、對於分析和重構能力要求較高的企業開發領域,必然也會使得Rails迎來一個新的蓬勃發展時期。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved