成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

折疊屏手機(jī)不會(huì)用?快來學(xué)學(xué)華為Mate X的養(yǎng)護(hù)訣竅

開發(fā) 后端

磨刀不誤砍柴工,擁有一個(gè)好的工具,在現(xiàn)代化編程、團(tuán)隊(duì)管理中擁有重要的地位。2008年的軟件開發(fā)生命周期管理軟件(software development lifecycle: SDLC)在2008年有了長(zhǎng)足進(jìn)展,JavaWorld的Java工具領(lǐng)域?qū)<襃ohn Ferguson 為我們帶來2008年Java領(lǐng)域自動(dòng)構(gòu)建框架,軟件開發(fā)周期管理工具,測(cè)試工具,以及IDEs方面的總結(jié)。他指出java工具2008年的變化包括CI持續(xù)集成工具的改進(jìn),JVM腳本語言支持上升,以及對(duì)支持多核系統(tǒng)編程工具需求增加等。讓我們開始吧!

Build automation

讓我們從現(xiàn)代軟件開發(fā)進(jìn)程的核心部分開始:Build automation自動(dòng)構(gòu)建,整體來看,build automation包括持續(xù)集成(continuous integration :CI)工具,構(gòu)建腳本build-scripting工具,代碼質(zhì)量控制工具,以及版本管理或者稱為SCM存儲(chǔ)管理工具。

build automation的第一個(gè)舞臺(tái)是自動(dòng)build腳本。傳統(tǒng)工具類似于Apache Maven和Apache Ant,以及最新的Gant和Gradle,能夠幫助創(chuàng)建build腳本。在2008年,我看到許多大型公司都開始使用Maven,被Maven能在內(nèi)部軟件組件中為多個(gè)團(tuán)隊(duì)之間提供標(biāo)準(zhǔn)化開發(fā)實(shí)踐,和提供顯著的連貫透明的架構(gòu)所吸引。這個(gè)趨勢(shì)明顯將繼續(xù)延續(xù)到2009年。

Maven:最新的和即將發(fā)布的功能

在2008年,Maven 2的最高版本2.0.9發(fā)布,Maven 2.0.9修正了bug和添加了一些新的功能,Maven擁有更好的穩(wěn)定性,并提供很好的方式使用插件來駕馭依賴管理。比如,你能夠使用Checkstyle 插件來更新Checkstyle的版本。

總而言之,Maven開發(fā)中最活躍的是專注于新的重要版本的發(fā)布:Maven 2.1,這個(gè)版本將于2009年初面世。新的版本將包含很多性能改進(jìn)和最優(yōu)化,包括為多模塊項(xiàng)目提供更精細(xì)的build 規(guī)則,和能夠平行下載不相關(guān)依賴包,而不是現(xiàn)在我們使用的串行方式。

Eclipse對(duì)Maven的支持更好,m2eclipse 插件為Maven開發(fā)提供了完整的功能化的圖形編輯器,提供Maven pom.xml文件圖形化管理。這些功能包括依賴圖(見下圖1)和依賴層次。比如它讓你更容易可視化的查看編輯你的項(xiàng)目依賴,了解和解決依賴沖突。

 

依賴搜索也是m2eclispe提供的另一個(gè)很有用的功能,一旦你開始使用,你會(huì)發(fā)現(xiàn)你離不開它了。它讓添加一個(gè)新的依賴包進(jìn)入你的項(xiàng)目不會(huì)出現(xiàn)任何問題。你只需要通過名字搜索Maven存儲(chǔ)空間,選擇版本,加入到你的pom.xml文件中。

Maven存儲(chǔ)管理是也是每個(gè)Maven用戶都需要的工具,Maven存儲(chǔ)空間能夠同時(shí)支持作為Inter公共存儲(chǔ)空間的一個(gè)依賴緩存存在,也支持作為一個(gè)庫發(fā)布和分享給整個(gè)公司使用。2008年見證這個(gè)領(lǐng)域快速升起的一顆新星:Nexus,Nexus讓管理Maven存儲(chǔ)空間成為一種享受。

同時(shí)Maven的速度也有很大提高。

 

持續(xù)集成實(shí)踐添加了一個(gè)新的方向是代碼編寫規(guī)則工具,隨著時(shí)間推移幫助開發(fā)者顯示和分析代碼規(guī)則,2008年在持續(xù)集成控制方面也有不少進(jìn)展,Bamboo,Atlassian的一個(gè)商業(yè)持續(xù)集成工具,為這個(gè)領(lǐng)域注入了大量新功能,包括圖形顯示隨時(shí)間推移的build過程和獨(dú)立測(cè)試過程。

引用:Gant和Gradle取代了Ant

傳統(tǒng)的Java build腳本工具,Ant,在2008年似乎有點(diǎn)過時(shí)。相反,新的工具 Gant 在迅速發(fā)展中。Gant是也是一個(gè)build腳本工具,讓你能夠使用Groovy而不是XML來build Ant任務(wù)。Gant是前途光明的Grails web框架的底層build工具,因此也在2008年獲得關(guān)注。如果你不能離開Ant在build腳本方面的靈活性,又無法忍受累贅的XML語法,Gant值得一看。

同樣的,Gradle也是一個(gè)基于Groovy的build工具,于2008年初次露面。Gradle試圖使用Groovy語法來提供Ant的靈活性,而且它還讓你獲得許多類似Maven的功能比如傳遞依賴管理和約定大于配置。

CI持續(xù)集成進(jìn)入生命周期管理SDLC

2008年java開發(fā)領(lǐng)域在持續(xù)集成工具方面進(jìn)步巨大。持續(xù)集成工具被視為生命周期管理工具的關(guān)鍵部分。一個(gè)好的CI工具讓你能夠持續(xù)跟蹤整個(gè)項(xiàng)目,不僅僅是測(cè)試總數(shù),最新的測(cè)試失敗,還包括你的整個(gè)測(cè)試是如何進(jìn)行的。這種數(shù)據(jù)對(duì)于開發(fā)進(jìn)程調(diào)優(yōu)非常有好處。

引用:Hudson受到開發(fā)者寵愛

在過去的一年中,Hudson 從一個(gè)開發(fā)中的產(chǎn)品變成市場(chǎng)中流行的開源CI項(xiàng)目。雖然Hudson的魅力有時(shí)候來自于極少出錯(cuò),Hudson的直觀的用戶界面和有用的報(bào)表功能讓它成為一個(gè)強(qiáng)大的小CI持續(xù)集成工具。

Hudson也領(lǐng)導(dǎo)了Maven集成市場(chǎng),成為目前唯一的能夠基于Maven依賴圖正確決定哪個(gè)項(xiàng)目需要重新build的工具。當(dāng)你在管理多模塊Maven項(xiàng)目時(shí),這個(gè)功能能夠讓你節(jié)約大量的時(shí)間。Hudson也提供豐富的插件庫,允許你添加其他功能,比如與JIRA或者Trac集成,或者自動(dòng)部署到Tomcat服務(wù)器上。#p#

持續(xù)集成工具和代碼質(zhì)量工具集成

一些持續(xù)集成工具能夠集成優(yōu)秀的代碼質(zhì)量工具,比如Checkstyle,PMD,F(xiàn)indBugs,Cobertura和Emma。

這些工具提供有用信息,監(jiān)控你的項(xiàng)目是否健康,比如代碼標(biāo)準(zhǔn),不良代碼,以及代碼覆蓋等。開源代碼質(zhì)量工具相對(duì)比較穩(wěn)定,今年Checkstyle發(fā)布了新的功能,持續(xù)發(fā)展的FindBugs控制了數(shù)據(jù)庫,在商業(yè)市場(chǎng),Clover發(fā)布了多個(gè)創(chuàng)新的功能,包括per-test每測(cè)試覆蓋,讓你能夠不僅看到你的應(yīng)用代碼在測(cè)試中執(zhí)行有多頻繁,而且能夠看到哪些測(cè)試執(zhí)行了代碼。

另外一個(gè)方面,2008年持續(xù)集成工具從獨(dú)占的專家領(lǐng)域變得更加開放民主,讓開發(fā)團(tuán)隊(duì)更多的參與進(jìn)來。比如在Hudson中,一個(gè)插件讓開發(fā)者"申明"一個(gè)失敗的build,來告訴團(tuán)隊(duì)其他開發(fā)者他正在修改這個(gè)地方。在Bamboo中,你能對(duì)build添加注釋,或者通過一個(gè)失敗的build信息啟動(dòng)一個(gè)面向開發(fā)者的即時(shí)通訊討論。Hudson甚至添加了一個(gè)CI游戲插件讓你開發(fā)團(tuán)隊(duì)成員進(jìn)行提升代碼質(zhì)量的比賽。

Subversion 1.5發(fā)布

在版本控制存儲(chǔ)方面,2008年最大的新聞就是等待了很久的Subversion 1.5發(fā)布。它帶來了一些強(qiáng)大的新功能,包括合并跟蹤和存儲(chǔ)復(fù)制支持改進(jìn)。這個(gè)新的合并功能讓多個(gè)不同的分支能夠合并修改。

測(cè)試工具

基于Java的測(cè)試工具領(lǐng)域2008年發(fā)生了很多事情,尤其是behavior-driven development(BDD)行為驅(qū)動(dòng)開發(fā)框架引起了大家的興趣,以及web測(cè)試工具發(fā)展邁進(jìn)了一大步。

BDD是一個(gè)在test-driven development(TDD)測(cè)試驅(qū)動(dòng)開發(fā)技術(shù)上發(fā)展起來的敏捷開發(fā)領(lǐng)域的新的技術(shù)。JBehave在2008年9月發(fā)布,Jbehave是一個(gè)java BDD框架,你能夠使用JUnit測(cè)試案例寫B(tài)DD腳本,通過特殊的annotations,比如@Given, @When, 和@Then。你也能寫相應(yīng)的文本腳本,讓你能夠在實(shí)現(xiàn)解決方案之前描述你的行為流程。下面是例子:

Java代碼

Simple JBehave test case
public class AccountDepositSteps extends Steps {
Account account = null;
BigDecimal initialDeposit = new BigDecimal("100.00");
@Given("I have created a new account")
public void createAccount() {
account = new Account();
}
@When("I deposit $100 into the account")
public void deposit() {
account.makeDeposit(initialDeposit);
}
@Then("My account should have a balance of $100")
public void checkBalance() {
ensureThat(account.getBalance(), equalTo(initialDeposit));
}
}

另外一個(gè)基于Groovy的BDD框架:easyb,提供了Groovy的強(qiáng)大功能,能夠結(jié)構(gòu)性的在java測(cè)試領(lǐng)域?qū)崿F(xiàn)BDD。Easyb使用Groovy域特定語言DSL能夠跟隨BDD腳本模型。Groovy能讓測(cè)試具有更大的表達(dá)性,尤其當(dāng)你熟悉Groovy慣用方法,比如文件集成,激活和閉包。上面的例子用easyb重寫如下:

Java代碼

scenario "Make initial deposit onto a new account", {
given "I have created a new account",{
account = new Account()
}
when "I deposit $100 into the account", {
initialAmount = 100
account.makeDeposit(initialAmount)
}
then "the balance should be equal to the amount deposited", {
account.balance.shouldBe initialAmount
}
and "My account should have a balance of $100", {
account.balance.shouldBeEqualTo initialAmount
}
}

Web測(cè)試工具進(jìn)化

這里有很多測(cè)試工具不僅僅是單元測(cè)試,2008年Web測(cè)試工具進(jìn)展迅速。這個(gè)領(lǐng)域尤其值得注意的工具有兩個(gè):Selenium 和Canoo WebTest.

Selenium 是一個(gè)原始測(cè)試工具,在瀏覽器中運(yùn)行你的web測(cè)試。在2008年,Selenium 1.0 beta發(fā)布了,提供更好的穩(wěn)定性和新的功能。通過錄制Selenium測(cè)試腳本,你能使用Selenium做功能測(cè)試和回歸測(cè)試,也能通過Java甚至Groovy寫Selenium測(cè)試案例來支持TDD測(cè)試驅(qū)動(dòng)開發(fā)。2008年也見證了Selenium Grid的出現(xiàn),一個(gè)非常有前途的工具,幫助你分布你的測(cè)試到多個(gè)不同的服務(wù)器,并且平行運(yùn)行測(cè)試或者在特定平臺(tái)瀏覽器上運(yùn)行。

Canoo WebTest 在2008年也非常活躍。這個(gè)強(qiáng)大的web測(cè)試框架非常適合TDD或者BDD實(shí)現(xiàn)。使用Canoo WebTest,你能夠用XML或者Groovy為你的Web應(yīng)用寫測(cè)試案例。Canoo WebTest運(yùn)行在Web應(yīng)用上,提供清晰,詳細(xì)的HTML測(cè)試報(bào)告。Grails使用Canoo WebTest用于自動(dòng)生成功能測(cè)試。Canoo WebTest并不像Selenium功能那么強(qiáng)大,對(duì)JavaScript的支持沒有Selenium那么好。

IDEs

在IDE方面,2008年見證了 Eclipse 3.4 Ganymede 和NetBeans 6.5的發(fā)布,兩者都帶來了很多新功能。Eclipse 3.4 改進(jìn)了java開發(fā)環(huán)境,包括:更好上下文幫助功能,更好的快速修復(fù),大量提升可用性。一個(gè)很好的被重構(gòu)的功能是Extract Class option,讓你能夠從class中獲得一組屬性和函數(shù),創(chuàng)建一個(gè)新的class封裝這些字段和函數(shù)。Eclipse 3.4的編譯速度變快,能從多核進(jìn)程中獲得優(yōu)勢(shì),把計(jì)算分布到不同的芯片上運(yùn)行。Eclipse 3.4支持外部Subversion,完全支持Subversion插件。

引用:Groovy Grails和IDEs

Groovy和Grails 2008年大量侵入java社區(qū),Groovy是一個(gè)動(dòng)態(tài)腳本語言,Grails是一個(gè)強(qiáng)大的基于Groovy的類似Ruby的web框架。2008年Groovy和Grails,以及Scala和Clojure發(fā)展很快,但是對(duì)于它們的IDE支持并不好,主要是因?yàn)樗鼈兪莿?dòng)態(tài)語言,比如很難提供很好的代碼完成功能,因?yàn)閯?dòng)態(tài)語言缺乏類型。目前支持動(dòng)態(tài)語言最好的是IntelliJ,其次是NetBeans,Eclipse仍需努力。可以預(yù)見到,2009年對(duì)于動(dòng)態(tài)語言的支持會(huì)繼續(xù)發(fā)展。

我最喜歡的Eclipse 3.4的功能是 Mylyn 3.0,Mylyn 是一個(gè)任務(wù)管理工具,Mylyn管理構(gòu)成了一個(gè)開發(fā)者工作日的所有任務(wù),例如我們修復(fù)的bug或者我們?cè)黾拥奶卣鳎急粺o縫的集成到IDE的界面中了。IDE集成提供了例如代碼補(bǔ)全,變更管理和離線編輯等功能。

NetBeans 6.5

隨著NetBeans 6.5的發(fā)布,NetBeans成為最舒服的開發(fā)環(huán)境之一。和以往一樣,它提供了比Eclipse更流暢的用戶使用體驗(yàn),雖然和Eclipse相比缺少了一些插件。對(duì)Maven用戶一個(gè)好消息是:NetBeans 6.5對(duì)Maven更加友好。雖然沒有Eclipse的m2eclipse功能那么豐富,NetBeans Maven插件質(zhì)量很好,并且視Maven項(xiàng)目為第一類成員對(duì)待。

NetBeans 6.5提供優(yōu)秀的動(dòng)態(tài)語言支持,包括JavaScript,Groovy和Grails,PHP,甚至是Ruby/Rails。你能使用所有這些語言創(chuàng)建項(xiàng)目,NetBeans為它們提供強(qiáng)大的開發(fā)環(huán)境。

NetBeans也支持JavaFX開發(fā),通過可選插件,能夠創(chuàng)建和調(diào)試JavaFX應(yīng)用。

最后NetBeans 6.5為庫提供更好的本地支持,比如Spring, Hibernate, 和 JavaServer Faces (JSF),提供比如進(jìn)入Spring Bean的對(duì)話框這樣的功能,并且支持在IDE內(nèi)運(yùn)行Hibernate 查詢語言查詢。

總結(jié)

2008年在Java開發(fā)工具領(lǐng)域出現(xiàn)了許多重要的大事,開發(fā)環(huán)境提供更豐富的功能,更容易使用,并且滿足了日益增加的對(duì)動(dòng)態(tài)語言類似Groovy和Ruby的支持。對(duì)動(dòng)態(tài)語言興趣的增加在2008年趨勢(shì)明顯。另外一個(gè)整體趨勢(shì)就是自動(dòng)build工具在2008年發(fā)展很快。Groovy在測(cè)試領(lǐng)域成為領(lǐng)頭羊,它讓開發(fā)者更加容易編寫更富表達(dá)能力和更加強(qiáng)大的測(cè)試工具,比如Hudson和Bamboo,將CI持續(xù)集成從專家手中釋放出來面向一般的開發(fā)者。Maven也更加容易使用,擁有豐富的用戶界面讓Maven更加能夠被理解。同時(shí)Subversion也提供新的自動(dòng)腳本功能。

【編輯推薦】

  1. 2008十大優(yōu)秀Java應(yīng)用程序
  2. Java 2008年大事記 由語言到平臺(tái)的轉(zhuǎn)變
  3. Sun高管透露JavaFX開源計(jì)劃 移動(dòng)平臺(tái)明年發(fā)布

 

責(zé)任編輯:田超 來源:
相關(guān)推薦

2019-12-06 10:42:00

華為Mate X

2019-11-28 10:40:00

華為Mate X

2019-12-05 16:50:00

華為Mate X

2019-12-06 10:44:00

華為Mate X

2021-03-16 15:12:57

CompletableFuture機(jī)制java

2024-08-12 12:25:25

SpringMVC開發(fā)

2019-12-02 16:24:00

2024-09-09 08:36:36

Java操作遠(yuǎn)程服務(wù)器

2020-09-01 14:17:03

WindowsDefender微軟

2020-05-14 08:59:28

API網(wǎng)關(guān)性能

2020-12-18 09:45:33

DockerLinux命令

2022-02-22 08:25:51

typeScript泛型概念泛型使用

2020-11-09 09:03:35

高并發(fā)多線程ThreadLocal

2020-09-27 06:50:56

Java互聯(lián)網(wǎng)注解

2022-08-12 15:58:34

Docker

2018-09-13 10:40:40

Linux命令find

2012-05-02 15:38:49

金山快盤網(wǎng)盤

2019-12-02 19:28:00

華為Mate X
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲免费一区二区 | 一区二区三区在线免费看 | 免费观看av | 国产在线视频99 | 视频一区二区中文字幕日韩 | 久久久成人免费一区二区 | 国产成人免费视频 | 亚洲国产在 | 国产综合一区二区 | 欧美精品二区三区 | 亚洲永久 | 精品久久一区 | 日韩三级视频 | 亚洲三区在线观看 | 国产成人精品视频在线观看 | 九九免费视频 | 亚洲精品国产一区 | 成人在线观看黄 | 欧美性区 | 国产你懂的在线观看 | 在线观看国产精品视频 | 99热视| 黄色片视频 | 一区二区高清不卡 | 91资源在线观看 | 国产精品精品视频一区二区三区 | 日本午夜精品一区二区三区 | 日韩中文字幕视频在线观看 | 久久亚洲国产精品日日av夜夜 | 91成人精品 | 日本色婷婷| 日韩区 | 免费性视频 | 第四色狠狠 | 亚洲美女视频 | 精品国产乱码久久久久久牛牛 | 欧美日韩一 | 日韩精品视频在线免费观看 | 亚洲欧美一区二区三区1000 | 免费看日韩视频 | 毛片久久久 |