【Gradle系列】初識Gradle

爲何要學習gradle?

gradle是主要用來工程構建,自動化建設用的java

有朋友問,已經學會了ant,maven等來構建工程了,爲何咱們還要學習gradle?python

由於gradle是一款最新的,功能最強大的構建工具面試

ant,maven能作的事情,gradle必定能夠作,可是gradle能作的,其它不必定能作編程

同時,gradle不只僅是一個工具那麼簡單,是用程序替代傳統的xml配置,使項目構建更加靈活瀏覽器

舉個例子:xml語言寫個if-else使很是困難,可是gradle卻很是的簡單ruby

還有就是,咱們的gradle有豐富的第三方插件,能夠爲所欲爲使用服務器

做爲一名開發者,能夠完善安卓開發工程師/java開發工程師的技術體系,提高自動化構建技術深度,幫助進階爲高級/資深工程師markdown

由於如今安卓工程/java工程都在使用gradle來構建項目閉包

不少人認爲,構建不就是構建出一個apk文件,一個jar包這麼簡單?jvm

gradle技術有那麼深奧?

在公司最終負責構建的人,通常都是級別比較高的同窗,甚至是一些經理,總監等

由於咱們寫再多的代碼,最終都是爲了最後的構建文件

因此這個環節是很是重要的,若是要成爲高級/資深工程師,gradle是必須掌握的一項技能

爲何?

由於在如今的一線互聯網企業,面試的時候絕大部分會考到自動化構建

若是掌握瞭如何使用gradle實現自動化構建,那麼就比別的競爭者有更大的優點

什麼是Groovy語言?

Gradle是使用Groovy語言實現的

Groovy語言就是DSL的一個分支

在瞭解Groovy前,咱們要先搞清楚DSL它本身的一些概念

DSL,領域特定語言

其實咱們很早就接觸了DSL語言了,只是沒有這個概念而已

好比:matlab,這個專門用來作計算的語言,其就是DSL語言的一種

還有uml建模語言,把現實的模型轉換爲計算機模型,也是DSL模型的一種

還有HTML,這個語言也算DSL語言的一個分支,專門用來作瀏覽器頁面的

因此DSL本質上來說,並非一個陌生的概念

這個語言和咱們的系統語言,走的是兩個極端

系統編程語言宗旨是解決全部的問題,好比:java既但願能作安卓開發,又但願能作服務器開發

而DSL語言產生的初衷是,解決計算機相關某一個特定領域內的問題

系統編程語言是大而全,DSL語言是小而細

因此DSL是和咱們的系統開發語言是相鋪相成的,相互結合會產生巨大的做用

在掌握某一個開發語言基礎下,再去掌握一門DSL語言,那麼就是錦上添花的效果

那麼,DSL和咱們的普統統用編程語言,有哪些區別?

DSL縱向,往深度發展的;

系統編程語言,橫向往更廣的應用範圍去發展;

這個是它們最大的區別

Groovy語言特色

接下來,咱們來看下groovy的基本概念

首先,groovy是一種基於jvm的敏捷開發語言

基於jvm說明它和咱們的java背後運行的原理,徹底是同樣的

咱們都知道,java想要運行,首先須要將咱們的java文件編譯爲class文件

而後class文件交給咱們的jvm去運行

groovy和java語言是同樣的,groovy源文件編譯爲class字節碼文件,而後交給咱們的jvm運行

固然,這個還不足與體現咱們groovy的強大

groovy還能將咱們的groovy源文件直接解釋執行,像JavaScript同樣

接下來看下第二個特色

groovy結合了python,ruby和smalltalk 的許多腳本語言的強大特性

咱們都知道,腳本語言寫腳本都是很是強大的,因此groovy寫腳本也能夠6到飛起

既然有了不少強大的腳本語言,爲何還須要groovy?

若是咱們做爲一門java開發者,而後如今去學習python語言等,至關於從頭開始學習新的語言

而咱們的groovy能夠不這樣,由於groovy就是對咱們java的一種擴展

其語法和咱們的java很是的相似,因此能夠學習java的方式學習groovy

因此,在java基礎上學習groovy,比學習其它語言要快點

第三,就是咱們的groovy能夠與java版本完美結合,這一點從都是基於jvm能夠看出來

同時,groovy可使用java全部的庫,是否是很酷?

….到這裏瞭解了groovy的相關概念,接下來咱們來看下groovy的特性

首先它最大的一個特性是語法上支持動態類型,閉包等新一代腳本語言特性

其中groovy的閉包比其它語言的會強大一些

第二,就是能夠無縫集成已存在的java類庫,能夠用java的語法/庫等寫咱們的groovy程序,可是通常咱們不會這麼作

雖然groovy的語法和java相似,可是仍是作了比較多的修改的

第三,groovy既支持面向對象編程,也支持面向過程編程

面向對象是由於groovy是基於java的一個拓展,java是一個面向對象編程的語言

面向過程是由於groovy結合了python等腳本語言的特性

若是用groovy開發程序,那麼就會用到面向對象特性

若是用groovy開發腳本,那麼就會用到面向過程特性

……在瞭解完特性後,咱們看看groovy的優點….

首先,groovy是一種更加敏捷的編程語言

由於其在語法上作了很是多的語法堂,許多在java上寫的在groovy中能夠直接省掉,也就是用更少的代碼寫出一樣的功能

第二個優點是,入門容易,功能強大

入門容易指掌握java下,去學習groovy是很是簡單的

第三,既能夠做爲編程語言,也能夠做爲腳本語言

結尾

哈哈,該篇就寫到這裏(一塊兒體系化學習,一塊兒成長)

相關文章
相關標籤/搜索