<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java-Android-jwebee
    Java-Android-jwebee
    對IT人來說,要成為一個優(yōu)秀的技術(shù)型管理者,除了需要具備扎實(shí)的技術(shù)基礎(chǔ)之外,還應(yīng)該培養(yǎng)良好的人際關(guān)系能力、談判與溝通技能、客戶關(guān)系與咨詢技能、商業(yè)頭腦和財(cái)務(wù)技能以及創(chuàng)新意識,此外還要有巧妙的激勵技巧和化解沖突與解決突發(fā)問題的能力.
       JRuby是面向Ruby、基于Java虛擬機(jī)(JVM)的一種解釋程序,它結(jié)合了Ruby語言的簡易性和功能強(qiáng)大的JVM的執(zhí)行機(jī)制,包括與Java庫全面集成。Rails徹底加快及簡化了Web應(yīng)用的開發(fā),不過它讓人覺得不夠成熟,特別是在高端企業(yè)級功能方面。另一方面,Java平臺及其虛擬機(jī)、庫和應(yīng)用服務(wù)器的速度、穩(wěn)定性和功能方面卻一直在提升,現(xiàn)在已被公認(rèn)為是開發(fā)高端服務(wù)器應(yīng)用的領(lǐng)先平臺。不過如果Java平臺不與Ruby等新興語言聯(lián)系在一起,就有可能落后于流行趨勢。

      JRuby結(jié)合了所有這些技術(shù)互為補(bǔ)充的優(yōu)點(diǎn),有望提高Ruby和Rails的知名度,同時為Java平臺在運(yùn)行非Java語言方面賦予新角色。

      Rails: Java框架的發(fā)展方向

      對Java開發(fā)人員而言,Rails就像是自然代表了諸多Java Web框架的發(fā)展趨勢:減少不必要的代碼、采更多的抽象和動態(tài)機(jī)制,以及更全面的即開即用功能。

      約定優(yōu)于配置
      早期版本的Java平臺企業(yè)版(Java EE)每個組件需要有大量的配置和代碼。譬如說,Enterprise JavaBeans的每個bean要有多個源代碼和XML配置文件。這種復(fù)雜性使得EJB成了重量級開發(fā)的代名詞,最終導(dǎo)致EJB 3出現(xiàn)了180度大轉(zhuǎn)變: 力求普通Java對象(POJO)bean的冗余和配置最小。即使如此,重型Java EE應(yīng)用程序仍需要開發(fā)人員開發(fā)代碼來表示多個軟件層(包括GUI、業(yè)務(wù)邏輯和持久層)上的同一業(yè)務(wù)對象。然后,盡管層與層之間存在冗余性和相似性,開發(fā)人員仍必須用配置文件把這些層粘合起來。相比之下,像Seam和Spring這些比較新的Java Web框架使用極少的配置和代碼,就可以發(fā)布業(yè)務(wù)對象。

      Java框架也一直在向跨Web應(yīng)用程序的多個層對堆棧進(jìn)行標(biāo)準(zhǔn)化和集成邁進(jìn)。在早期,Java Web應(yīng)用開發(fā)人員手工編寫代碼,從服務(wù)器小程序獲得HTML輸出;創(chuàng)建自己的模型-視圖-控制器(MCV)架構(gòu),并使用SQL而不是Java數(shù)據(jù)庫連接(JDBC)來訪問數(shù)據(jù)庫。后來,他們聚集了執(zhí)行大部分通用功能的組件,譬如標(biāo)記庫、Struts和Hibernate。最近,Spring將大部分功能集成到了單一、自上而下的輕型堆棧。

      從一開始,Rails就體現(xiàn)了這些簡潔性原則,這些原則在Rails社區(qū)中稱為“不要重復(fù)自己”和“約定優(yōu)于配置”(避免冗余和有意義的默認(rèn)值是軟件工程領(lǐng)域中的兩條古老原則)。該框架可以根據(jù)簡明的約定,猜出不同層的連接關(guān)系。Rails甚至可以顯式、動態(tài)添加屬性從而反射數(shù)據(jù)庫列: last_name列會自動使last_name屬性出現(xiàn)。

      在約定不能滿足要求的特殊情況下,仍可以使用純Ruby代碼或者類似Ruby的輕型YAML格式來添加配置,這兩種格式都刪去了XML的冗余方括號和結(jié)束標(biāo)記。

      動態(tài)和反射機(jī)制
      Java框架也一直在向反射和元編程機(jī)制使用更廣泛而邁進(jìn)。譬如說,Spring使用反射機(jī)制,利用依賴注入把各部分連接起來;標(biāo)準(zhǔn)的Java EE服務(wù)器系列則通常采用靜態(tài)方法。Hibernate這種流行的對象關(guān)系映射框架利用動態(tài)元編程進(jìn)行映射,在運(yùn)行時更新字節(jié)碼,而不像早期的數(shù)據(jù)訪問框架需要在開發(fā)時生成大量的源代碼或者字節(jié)碼。

      Hibernate的開發(fā)人員之前只好采用一些高級技術(shù)來實(shí)現(xiàn)這項(xiàng)功能。而在Ruby中,元編程卻是這種語言的一個有機(jī)部分,結(jié)果Rails在運(yùn)行時不但能動態(tài)生成映射,還能生成訪問及顯示底層數(shù)據(jù)庫所需的業(yè)務(wù)層類定義,從而盡量減少了這種需要。

      支持開發(fā)過程
      上世紀(jì)90年代末前后,Java開發(fā)人員大量使用JUnit框架的測試方法,但為服務(wù)器端應(yīng)用程序編寫測試用例總是有難度的。如今Spring在生成Web應(yīng)用程序的同時還能生成測試。Rails具有同樣功能,充分利用了動態(tài)機(jī)制和元編程技術(shù)來支持多種測試: 單元測試、功能測試以及集成測試。

        為什么在JVM上運(yùn)行Rails

      如果你現(xiàn)在正在使用Spring和Hibernate等Java框架,那就用不著改變。但如果可以靈活地為下一個項(xiàng)目選擇新的開發(fā)方法,不妨考慮Rails。

      遺憾的是,改用一種新語言一般被認(rèn)為是危險舉措,管理人員對風(fēng)險有顧慮。JRuby能夠讓Rails更容易被管理人員所接受。在JVM上,Rails成了一種Java框架。譬如說,“Java”Web框架中的非Java語言實(shí)際上同樣用于JavaServer Pages中。

      就像通常用C/C++編寫的操作系統(tǒng)為使用比較抽象的語言編寫的應(yīng)用程序提供了基礎(chǔ)架構(gòu)一樣,Java平臺也為Ruby等動態(tài)語言扮演“系統(tǒng)軟件”的角色,提供了基礎(chǔ)架構(gòu)層面的支持。如今可以通過Java訪問眾多的功能。JDBC和Java消息服務(wù)(JMS)等API是同類中最佳的,而許多不可替代的內(nèi)部或者獨(dú)立軟件開發(fā)商的企業(yè)信息系統(tǒng)可以通過Java API來訪問。Rails應(yīng)用程序通過使用JRuby,可以像調(diào)用Java代碼那樣調(diào)用現(xiàn)有的Java庫。

      有了JRuby,Rails應(yīng)用程序可與Java Web應(yīng)用程序在現(xiàn)有的Java EE應(yīng)用服務(wù)器上一起運(yùn)行。這種應(yīng)用服務(wù)器擁有強(qiáng)大的技術(shù)基礎(chǔ)架構(gòu)。在人員和培訓(xùn)方面,通常不缺乏教育計(jì)劃以及有經(jīng)驗(yàn)的開發(fā)和支持人員。另外只要運(yùn)行在JVM上,這種應(yīng)用服務(wù)器就能夠獲得最近十年在JVM方面投入的許多優(yōu)化項(xiàng)目所帶來的好處。

      JVM擁有比Ruby復(fù)雜得多的安全模型,為JRuby on Rails提供了處理Web應(yīng)用程序的常見安全難題的工具,包括控制從各個來源獲得的Ruby腳本。它還包含了內(nèi)部支持國際化的功能。

      向動態(tài)語言邁進(jìn),這是在抽象機(jī)制方面向更高級語言發(fā)展的一個方面。在JVM的管理環(huán)境下而不是在操作系統(tǒng)層面上運(yùn)行Ruby解釋程序又是向更高抽象層邁出的一步。使用Rails作為Web應(yīng)用程序?qū)拥臉?biāo)準(zhǔn)實(shí)現(xiàn)機(jī)制也是如此,只把針對特定應(yīng)用程序的功能留給了開發(fā)人員。

      鏈接:JRuby面臨的難題

      正如版本號所示,JRuby 0.9.2還沒有準(zhǔn)備好運(yùn)行生產(chǎn)應(yīng)用程序。一些錯誤有待解決;另外,目前JRuby的速度不如MRI。與Rails一起使用Java應(yīng)用服務(wù)器需要非標(biāo)準(zhǔn)的適配器服務(wù)器小程序,而構(gòu)建war文件需要特殊的Ant腳本,這兩者還不是JRuby發(fā)行版的標(biāo)準(zhǔn)部分。

      Rails在處理遺留組件方面的功能特別弱。雖然Rails為解決大多數(shù)常見問題提供了很好的支持,但缺少支持替代方案的靈活性。譬如說,活動記錄假定每個表都有一個名為id的單一主鍵列。雖然可以用鍵列代替另一個名稱,要是不使用特殊插件,就無法定義多列鍵。相比之下,Hibernate等Java框架雖然在簡單(且常見)的情況下開發(fā)速度比較慢,但處理極端狀況和遺留代碼的效果比Rails好得多。

      最終,采用Rails面臨的主要難題在于,是否渴望現(xiàn)有語言和框架方面統(tǒng)一標(biāo)準(zhǔn)。Rails適用于這種渴望比較強(qiáng)烈的新項(xiàng)目和新組織。


    jwebee

    我的個人網(wǎng)站
    posted on 2007-10-08 11:42 周行 閱讀(211) 評論(0)  編輯  收藏 所屬分類: ruby

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    Java-Android-jwebee
    主站蜘蛛池模板: 国产伦一区二区三区免费| 亚洲黄色免费网站| 四虎永久免费地址在线网站| 亚洲中文字幕久久精品无码A | 狼色精品人妻在线视频免费| 日韩高清在线高清免费| 国产精品亚洲av色欲三区| 波多野结衣免费视频观看| 成年大片免费高清在线看黄| 亚洲精品美女久久久久99小说| 特色特黄a毛片高清免费观看| 久久乐国产精品亚洲综合| 久久青草91免费观看| 亚洲精品国产情侣av在线| 999国内精品永久免费观看| 亚洲天堂免费在线| 国产一级淫片免费播放| 精品国产福利尤物免费| 久久国产精品亚洲一区二区| 69av免费视频| 久久亚洲AV成人无码国产电影| 亚洲成?v人片天堂网无码| a级毛片毛片免费观看永久| 久久亚洲精品无码VA大香大香| 日韩av无码成人无码免费| 精品特级一级毛片免费观看| 亚洲国产一成久久精品国产成人综合 | 在线a亚洲v天堂网2019无码| 特级无码毛片免费视频尤物| 亚洲AV无码精品蜜桃| 免费一级做a爰片久久毛片潮喷| 美女无遮挡拍拍拍免费视频| 2022年亚洲午夜一区二区福利| 毛片a级毛片免费观看免下载| 老妇激情毛片免费| 久久久久亚洲av无码专区 | 成人无码区免费A∨直播| 亚洲成aⅴ人在线观看| 四虎影永久在线高清免费| 今天免费中文字幕视频| 亚洲精品乱码久久久久蜜桃|