身為Java程序員,這些開源工具你一定要會
本文主要介紹Java程序員應(yīng)該在2018年學(xué)習(xí)的一些基本和高級工具。如果你是一位經(jīng)驗(yàn)豐富的Java開發(fā)人員,擁有5到10年的經(jīng)驗(yàn),你可能對這些工具很熟悉,但如果不是,現(xiàn)在就是是開始學(xué)習(xí)這些工具的好時(shí)機(jī)。
Java世界中存在許多工具,從Eclipse,NetBeans和IntelliJ IDEA等著名的IDE開始到Java開發(fā)人員應(yīng)該知道的JVM分析和監(jiān)視工具,如JConsole,VisualVM,Eclipse Memory Analyzer等。
盡管如此,在本文中,我將重點(diǎn)介紹適用于各種Java開發(fā)人員的通用工具,例如核心Java 開發(fā)人員和Web開發(fā)人員。
1. JIRA
Atlassian的JIRA是當(dāng)前敏捷開發(fā)領(lǐng)域最重要的工具之一。它用于錯(cuò)誤跟蹤,問題跟蹤和項(xiàng)目管理。如果你遵循敏捷開發(fā)方法,例如Sprint和Scrum,那么你必須了解JIRA。它允許您創(chuàng)建Spring循環(huán)并跟蹤軟件開發(fā)的進(jìn)度。
JIRA 是目前比較流行的基于Java架構(gòu)的管理系統(tǒng),由于Atlassian公 司對很多開源項(xiàng)目實(shí)行免費(fèi)提供缺陷跟蹤服務(wù),因此在開源領(lǐng)域,其認(rèn)知度比其他的產(chǎn)品要高得多,而且易用性也好一些。
2. Git
Git是Java程序員的另一個(gè)必備工具,它是一個(gè)免費(fèi)的開源分布式版本控制系統(tǒng),旨在快速高效地處理從很小到非常大的項(xiàng)目版本管理。Git易于學(xué)習(xí),占用空間小,具有超強(qiáng)的性能。
最初 Git 的開發(fā)是為了輔助 Linux 內(nèi)核開發(fā)的過程,但是發(fā)現(xiàn)已經(jīng)在很多其他自由軟件項(xiàng)目中也使用了 Git。
3. Jenkins
Jenkins是一個(gè)用Java編寫的開源自動化服務(wù)器。它有助于自動化軟件開發(fā),例如編譯項(xiàng)目,運(yùn)行單元測試,集成測試,生成文檔以及在本地和遠(yuǎn)程存儲庫上載工件。主要用于:
- 持續(xù)、自動地構(gòu)建/測試軟件項(xiàng)目,如CruiseControl與DamageControl。
- 監(jiān)控一些定時(shí)執(zhí)行的任務(wù)。
它是在項(xiàng)目中持續(xù)集成中***的工具之一。如果你還沒有開始使用Jenkins,那就從現(xiàn)在開始吧。
4. Selenium
Selenium是Web應(yīng)用程序***的軟件測試框架之一。它提供了一種用于創(chuàng)作測試的回放工具,而無需學(xué)習(xí)測試腳本語言。Java開發(fā)人員可以使用Selenium來測試他們的HTML和JSP文件。
它還為Web瀏覽器自動化提供了各種工具和庫。Selenium 現(xiàn)在存在2個(gè)版本,一個(gè)叫 selenium-core, 一個(gè)叫selenium-rc 。
5. Groovy
Groovy 是一種基于 JVM 的敏捷開發(fā)語言,它結(jié)合了 Python、Ruby 和 Smalltalk 的許多強(qiáng)大的特性。你可以使用它編寫構(gòu)建腳本,測試腳本,甚至可以使用像Gradle和Spock這樣的流行框架。
6、Spock
Spock 是適合 Java 和 Groovy 應(yīng)用程序的一個(gè)測試框架。由于其JUnit運(yùn)行程序,Spock與大多數(shù)IDE,構(gòu)建工具和持續(xù)集成服務(wù)器兼容。如果你想提高你的單元測試技能,那么多花點(diǎn)時(shí)間在學(xué)習(xí)Spock上總是沒錯(cuò)的。
7. Maven
如果你是一位經(jīng)驗(yàn)豐富的Java開發(fā)人員,那么你一定非常了解Maven了,Apache Maven是一個(gè)構(gòu)建和項(xiàng)目管理工具,基于項(xiàng)目對象模型(POM)的概念,Maven可用于管理項(xiàng)目的生成、報(bào)告和文檔記錄。
Maven的另一個(gè)有用特性是依賴關(guān)系管理,由于我們在Java項(xiàng)目中使用了大量第三方庫,因此手動管理每個(gè)JAR及其依賴項(xiàng)可能非常麻煩,Maven通過自動為你下載正確的JAR來幫助你解決問題
8. Gradle
Gradle 是一個(gè)基于 Apache Ant 和 Apache Maven 概念的項(xiàng)目自動化構(gòu)建工具。它也是Android的默認(rèn)構(gòu)建工具。
它引入了基于Groovy的特定于域的語言(DSL),而不是Apache Maven用于聲明項(xiàng)目配置的XML,這樣有利于配置項(xiàng)目依賴關(guān)系以及用戶的項(xiàng)目自定義
為什么選擇Gradle在Ant或Maven?因?yàn)樗Y(jié)合了其他構(gòu)建工具的***特性,例如它具有Ant的靈活性和控制,Ivy的依賴管理,Maven的配置和插件的約定,以及可以在Ant上使用Groovy DSL。這使它成為Java項(xiàng)目的***構(gòu)建工具。
9. Docker
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
容器是完全使用沙箱機(jī)制,相互之間不會有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機(jī)器和數(shù)據(jù)中心中運(yùn)行。最重要的是,他們不依賴于任何語言、框架或包裝系統(tǒng)。
10. Linux
初學(xué)Linux***從Linux命令行基礎(chǔ)知識開始,Linux是一種自由和開放源碼的類Unix操作系統(tǒng),在你的職業(yè)生涯中起到重要的作用,每一個(gè)Java開發(fā)者都應(yīng)該學(xué)Linux。
如果以上工具還有你沒學(xué)會的,那就不要再錯(cuò)過了趕緊學(xué)起來。但這個(gè)列表并不完整,如果您了解Java程序員應(yīng)該學(xué)習(xí)的一些好工具,那么請?jiān)谠u論部分與我們分享。