国产美女一级毛片精品久久久|婷婷影院在线综合免费视频|最新国产午夜精品视频成人|久久精品九九无码免费

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

來源:北大青鳥飛迅校區(qū)|發(fā)布時間:2013-04-27 17:50:06

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

  引言

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

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

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

  前端模板開發(fā)問題

  1、降低軟件質量

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

  2、測試成本高

  由于無法像靜態(tài)語言一樣,在運行前進行類型檢查,因此軟件的測試周期長,測試成本高。

  3、開發(fā)不敏捷

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

  4、維護性差

  對于一個大型系統(tǒng),在重構業(yè)務模型(Java Model)或代碼時, 無法知道哪些Velocity模板會受到影響;常常需要花費大量時間搜索相關模板,然后修改、測試。例如:筆者所在公司的一個基礎產品升級,由于受影響模板眾多,重構復雜,項目評估達上千人日。

  這些動態(tài)語言天生的缺點在企業(yè)級和大型網站應用中非常突出,嚴重的影響了開發(fā)質量和開發(fā)效率。因此,在技術上亟待一種新的高質量、高效率的開發(fā)技術。

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

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

  遇到上述問題時,我們不由自主的會贊美Java的優(yōu)點:

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

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

  2、代碼提示:

  調用屬性,方法時能代碼提示,開發(fā)非常高效;

  3、代碼熱鏈接:

  通過變量和類名熱鏈接到對應的Java類;

  4、代碼重構:

  修改一個Java類時,受影響的Java代碼會被實時重新驗證,馬上會顯示紅色的錯誤; 更強大的是重構,對Java類,方法敏性重命名,會自動修改所有相關代碼中對它的引用。

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

熱門話題

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

學校地址: 長沙市天心區(qū)團結路6號

Copyright © 2006 | 湖南大計信息科技有限公司 版權所有

湘ICP備14017520號-3

關注我們
在線咨詢
嘿,我來幫您!