gradle groovy_适用于Java开发人员的Groovy吗? 认识Gradle,Grails和Spock
gradle groovy
Java開發人員最感興趣的Groovy用例有哪些?
盡管已經有一段時間了,但似乎只有Groovy最近才開始使用Groove。 對于某些人來說,它基本上只是另一種深奧的JVM語言,但是由于一些流行的工具可以幫助您使用Java,因此它比您想象的要流行。
在下面的文章中,我們將檢查Groovy和Java之間的連接是什么,并盡力抓住Groovy雙關語。 我們提前致歉。
幾乎和Java一樣
是什么讓Groovy變得如此時髦呢? 這是一種面向對象的JVM語言。 這種動態語言是開源的,并得到Apache和Groovy社區的支持。 這意味著您將找到圍繞它的選項,功能和工具,包括Web框架,桌面應用程序框架,并發/異步/并行庫,測試框架等等。
Groovy使用大括號語法,這使Java開發人員更容易學習和使用。 但是,它包括一系列與Java區別的功能,例如:
- 靜態和動態類型化(在運行時解釋變量的類型時)
- 運算符重載
- 關聯數組
- 嵌入字符串中的表達式
- 安全導航操作員“?”。 自動檢查是否存在null –這很有意義,因為NullPointerException是生產中最常見的異常類型
- 沒有分號(!)
在Groovy官方網站上,指出該語言旨在通過簡潔,熟悉和易于學習的語法來提高開發人員的生產率。 換句話說,如果您了解Java,就可以立即學習和使用Groovy。
您可以將Groovy與任何Java程序集成在一起,以獲得腳本功能,特定領域的語言編寫,運行時和編譯時元編程以及函數式編程。 其他功能包括閉包,構建器,類型推斷和靜態編譯。
Groovy還具有“腳本和測試膠”。 這意味著Groovy是編寫“緊湊”和可維護的測試以及構建和自動化任務的理想選擇。 但是這里最大的問題是特定領域語言創作(DSL),它使您可以創建關鍵字和語法來表達問題域的更高抽象表示。
更容易將其視為非程序員獲取信息的解決方案。 如果公司中有需要提取數據,創建剪切或執行任何其他任務的分析師,則可以為他們創建自定義語言。 這樣,他們不必知道如何編程,而只需熟悉所需測試所需的語法。
以下是一些DSL示例,可使其更加清晰:
// equivalent to: turn(left).then(right) turn left then right// equivalent to: take(2.pills).of(chloroquinine).after(6.hours) take 2.pills of chloroquinine after 6.hours// equivalent to: select(all).unique().from(names) select all unique() from namesshow = { println it } square_root = { Math.sqrt(it) }def please(action) {[the: { what ->[of: { n -> action(what(n)) }]}] }// equivalent to: please(show).the(square_root).of(100) please show the square_root of 100 // ==> 10.0如果您想開始使用Groovy,我們建議您查閱官方文檔 。
數字不說謊
萬一您仍然對Groovy 持反對態度 ,還可以快速了解一下TIOBE索引,該索引衡量編程語言的流行性。 在其中,您會發現Groovy是2016年7月最受歡迎的20種編程語言之一。
在就業市場上也有興趣。 在我們的最新職位之一中, 我們處理了351,799個職位空缺 ,發現對Groovy開發人員的需求不斷增長。
美國JVM語言工作趨勢
Groovy在我們的Java項目中適合什么地方?
當開始一個全新的Java項目時,我們大多數人選擇的第一個入門工具是Maven和JUnit。 但是隨著項目的發展一段時間后,需求發生了變化,我們發現自己想要比以前更多的自定義。 那時,Maven通常被Gradle取代。 或者至少這就是我們在開發Takipi時經歷的旅程。
Gradle是Groovy內置的工具,可幫助我們使用Java。 聽起來很棘手,但實際上使用一種語言與另一種語言一起工作確實很有趣。 另外,在使用了一段時間并了解了Groovy之后,我們可以使用一種新的語言,這對我們總是很有趣。 現在唯一剩下的問題是我們還能將其用于什么? 簡單的答案就是工具。 但是哪一個呢?
從Gradle開始
Gradle是一個開放源碼的構建自動化系統,它使用用Groovy編寫的特定領域語言而不是Maven的XML配置。 它可以幫助您自動化不同的任務,例如構建,測試,發布,部署等。 您還可以創建其他類型的項目來生成靜態網站,文檔或其他任何內容。
它是為具有增長潛力的大型多項目構建而設計的,同時仍為增量構建提供支持,您可以在其中添加一些小軟件,直到達到最終目標。 Gradle可以確定構建樹的哪些部分是最新的,因此依賴于那些部分的任何任務都無需重新執行。
這樣,Gradle消除了代碼凍結,并允許QA團隊在處理另一個零件時檢查某個零件。 您甚至可以使用它來協調單個開發人員版本到IDE級別的持續集成(CI)版本。
如果您發現您的隊友正用他們的nerf槍弄亂或者只是放松一下 ,Gradle也會在該領域提供幫助。 有了它,您可以快速發貨,而不會在辦公室中浪費太多的“編譯”時間,因此您實際上可以完成一些工作。
如果您是Maven愛好者,或者仍然不確定轉移到Gradle可以如何幫助您的項目,則后者在下面的鏈接中創建了兩者之間的完整功能比較。
不只是DSL:Grails Web框架
Grails Web框架希望通過Convention-over-Configuration范式幫助您提高生產率。 怎么樣? 通過為您提供獨立的開發環境,同時隱藏大部分配置細節,使您可以專注于重要的事情。 或者換句話說; 它旨在使開發盡可能簡單。
它支持在單個界面上重用Hibernate和Spring等現有Java技術,提供可自定義和可擴展的Ajax支持,并且基本上提供了完整的開發模式,包括Web服務器和資源的自動重載。
在官方網站上,您可以找到選擇Grails的主要網站,包括Netflix Asgard,用于Amazon Web Services,Vodafone 等應用程序部署和云管理的Netflix開源Web界面。
轉向Spock
如果Gradle已經是您公司的一部分,那么該該看看Groovy必須提供哪些其他工具了。 Spock最近已成為許多Java開發人員選擇的模擬和測試框架的領先者。
Spock由Peter Niederwieser和Luke Daley于2008年創建,專門為Java和Groovy應用程序而開發。 該單元測試工具與大多數IDE,構建工具和持續集成服務器兼容,能夠處理軟件應用程序的整個生命周期。 它擴展了JUnit運行器,該運行器用于運行測試類,因此它可以與您在JUnit框架中使用的當前工具配合使用。 如果您要從一個框架遷移到另一個框架,那將是一個非常平穩的過程。
DSL在此框架中起著很大的作用,使您可以使用簡單的語法編寫測試。 這意味著測試可以由公司中的任何人完成,而不僅僅是開發人員。 您可以通過其Web控制臺測試Spock。
也檢查這些
盡管我們只選擇關注這3個與Groovy相關的項目,但還有許多其他選項值得一看。 感謝社區,您可以找到與Groovy相關的項目的一長串,例如:
- GPars –直觀,安全的方式同時處理Java或Groovy任務
- Ratpack –用于創建高性能Web應用程序的工具包
- Griffon –在JVM中開發桌面應用程序的應用程序框架
- Sdkman –用于在大多數基于Unix的系統上管理多個軟件開發套件的并行版本的工具
這些只是冰山一角,還有更多的Groovy項目。 最好的開始方法是檢查Github上熱門的Groovy項目 。
最后的想法
當涉及可用的框架,工具和實用程序時,Java開發人員有很多選擇,而不是全部用Java編寫。 實際上,由于Java開發人員編寫了令人印象深刻的工具,因此他們在一個或另一個項目中有很好的機會接觸Groovy。
由于該語言與Java非常相似,因此,它的優點是立即可以輕松學習和使用。 牢記所有這些,根據您當前項目的需求,最終選擇使用Gradle,Spock,Grails還是任何其他Groovy或非Groovy框架。
如果您遇到任何其他Groovy(或簡單的groovy)框架,我們很樂意在下面的評論中聽到它們。
翻譯自: https://www.javacodegeeks.com/2016/08/groovy-java-developers-meet-gradle-grails-spock.html
gradle groovy
總結
以上是生活随笔為你收集整理的gradle groovy_适用于Java开发人员的Groovy吗? 认识Gradle,Grails和Spock的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 口罩备案号查询平台(口罩备案号)
- 下一篇: (linux wc wc)