国产99福利精品视频|杨幂精品国产福利在线|国精品午夜福利视频不卡|欧美精品黄网站在线播放|精品国产乱码久久久久久久|国产大片中文字幕在线观看|国产肥熟女视频一区二区三区|国产乱码无码视频一区二区三区

Java+中什么是半靜態(tài)語(yǔ)言?原理及價(jià)值

來(lái)源:北大青鳥(niǎo)飛迅校區(qū)|發(fā)布時(shí)間:2013-04-27 17:50:06

  什么是半靜態(tài)語(yǔ)言呢?全新的基于JVM的腳本語(yǔ)言是Groovy和Scala。這兩門語(yǔ)言現(xiàn)在都越來(lái)越流行,不同的是,Groovy是動(dòng)態(tài)腳本語(yǔ)言,而是Scala是靜態(tài)語(yǔ)言,那什么是半靜態(tài)語(yǔ)言呢?本文將由阿里巴巴技術(shù)部中文站架構(gòu)師何坤(Raymond He)系統(tǒng)地向大家介紹這篇《詳解半靜態(tài)語(yǔ)言原理及價(jià)值》。

  引言

  動(dòng)態(tài)類型語(yǔ)言在企業(yè)開(kāi)發(fā)和互聯(lián)網(wǎng)領(lǐng)域應(yīng)用廣泛,如Ruby ,Velocity, Python等。 動(dòng)態(tài)類型語(yǔ)言在運(yùn)行時(shí)進(jìn)行類型推斷,以解釋方式執(zhí)行,修改即生效,開(kāi)發(fā)靈活性高;而靜態(tài)類型語(yǔ)言(如:Java,C/C+/C++) 在執(zhí)行前做類型檢查,需要編譯運(yùn)行,對(duì)于互聯(lián)網(wǎng)前端開(kāi)發(fā)不夠靈活。

  因此,許多大型互聯(lián)網(wǎng)站選擇 Freemarker, Velocity這樣的動(dòng)態(tài)模板語(yǔ)言作為頁(yè)面開(kāi)發(fā)語(yǔ)言,在一定程度上滿足了前端敏捷開(kāi)發(fā)的需求。

  然而,對(duì)于大型電子商務(wù)網(wǎng)站,不僅具有一般互聯(lián)網(wǎng)需求頻繁變更的特點(diǎn),更顯著特點(diǎn)則是業(yè)務(wù)繁多,業(yè)務(wù)模型和業(yè)務(wù)關(guān)系復(fù)雜。 因此,在此類應(yīng)用開(kāi)發(fā)中,Velocity 的開(kāi)發(fā)也遇到了一些的問(wèn)題。

  前端模板開(kāi)發(fā)問(wèn)題

  1、降低軟件質(zhì)量

  Velocity是弱類型動(dòng)態(tài)語(yǔ)言,運(yùn)行時(shí)才能檢查出類型錯(cuò)誤。由于動(dòng)態(tài)類型等特點(diǎn),有的錯(cuò)誤在遇到特定參數(shù)時(shí),才能激發(fā)執(zhí)行路徑,軟件質(zhì)量不能很好的保證。

  2、測(cè)試成本高

  由于無(wú)法像靜態(tài)語(yǔ)言一樣,在運(yùn)行前進(jìn)行類型檢查,因此軟件的測(cè)試周期長(zhǎng),測(cè)試成本高。

  3、開(kāi)發(fā)不敏捷

  缺乏一些敏捷開(kāi)發(fā)功能如IDE內(nèi)實(shí)時(shí)驗(yàn)證、代碼提示、代碼重構(gòu)等。雖然能修改即生效,但對(duì)于企業(yè)級(jí)開(kāi)發(fā),效率較低。

  4、維護(hù)性差

  對(duì)于一個(gè)大型系統(tǒng),在重構(gòu)業(yè)務(wù)模型(Java Model)或代碼時(shí), 無(wú)法知道哪些Velocity模板會(huì)受到影響;常常需要花費(fèi)大量時(shí)間搜索相關(guān)模板,然后修改、測(cè)試。例如:筆者所在公司的一個(gè)基礎(chǔ)產(chǎn)品升級(jí),由于受影響模板眾多,重構(gòu)復(fù)雜,項(xiàng)目評(píng)估達(dá)上千人日。

  這些動(dòng)態(tài)語(yǔ)言天生的缺點(diǎn)在企業(yè)級(jí)和大型網(wǎng)站應(yīng)用中非常突出,嚴(yán)重的影響了開(kāi)發(fā)質(zhì)量和開(kāi)發(fā)效率。因此,在技術(shù)上亟待一種新的高質(zhì)量、高效率的開(kāi)發(fā)技術(shù)。

  靜態(tài)語(yǔ)言的優(yōu)勢(shì)

  綜合考慮后,我們發(fā)現(xiàn)動(dòng)態(tài)類型語(yǔ)言(Dynamic Language)“解釋執(zhí)行方式和修改即生效”的最大之一優(yōu)點(diǎn)仍是不能舍棄的。必須從問(wèn)題出發(fā),找到一條平滑的線路來(lái)解決問(wèn)題。

  遇到上述問(wèn)題時(shí),我們不由自主的會(huì)贊美Java的優(yōu)點(diǎn):

  1、靜態(tài)語(yǔ)法和靜態(tài)類型實(shí)時(shí)檢查。

  如果賦值類型不匹配,方法不存在,參數(shù)類型錯(cuò)誤等信息能馬上在IDE中顯示;

  2、代碼提示:

  調(diào)用屬性,方法時(shí)能代碼提示,開(kāi)發(fā)非常高效;

  3、代碼熱鏈接:

  通過(guò)變量和類名熱鏈接到對(duì)應(yīng)的Java類;

  4、代碼重構(gòu):

  修改一個(gè)Java類時(shí),受影響的Java代碼會(huì)被實(shí)時(shí)重新驗(yàn)證,馬上會(huì)顯示紅色的錯(cuò)誤; 更強(qiáng)大的是重構(gòu),對(duì)Java類,方法敏性重命名,會(huì)自動(dòng)修改所有相關(guān)代碼中對(duì)它的引用。

上一篇:Java內(nèi)存的分配原理SGI怎樣的?
下一篇:編碼漏洞:C、C++ 和Java的安全編碼?

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)

Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有

湘ICP備14017520號(hào)-3

關(guān)注我們
在線咨詢
嘿,我來(lái)幫您!