摘要:我們可以利用的所有動態功能構建高性能的應用將開發效率提高幾個數量級這就是我們為什么要學它注本文首發于公眾號,可長按或掃描下面的小心心來訂閱環境部署本文實驗所用為,這里介紹使用工具來安裝的方法。
為什么要學Groovy
Groovy運行于JVM之上,然而其對動態語言、函數式編程范式以及元編程功能的加持所帶來的表現力和簡潔性可以說甩了Java幾條街。我們可以利用Groovy的所有動態功能構建高性能的JVM應用、將開發效率提高幾個數量級! 這就是我們為什么要學它!
注: 本文首發于 My 公眾號 CodeSheep ,可 長按 或 掃描 下面的 小心心 來訂閱 ↓ ↓ ↓Groovy環境部署
本文實驗所用OS為CentOS7,這里介紹使用sdk工具來安裝Groovy的方法。
首先在命令行下執行:
curl -s get.sdkman.io | bash
接下來執行:
source "$HOME/.sdkman/bin/sdkman-init.sh"
然后我們就可以使用sdk工具來安裝Groovy:
一句話搞定!
sdk install groovy
完成之后我們來檢查Groovy安裝狀態
groovy -v
一切就緒
Hello World From Groovy[root@localhost ~]# vim Hello.groovy [root@localhost ~]# more Hello.groovy println "Hello World From Groovy !" [root@localhost ~]# groovy Hello Hello World From Groovy !Groovy語言特性
Groovy是輕量級的Java
Groovy的信噪比比Java高:較少的代碼獲得更多結果
GDK = Groovy JDK:通過向JDK的各種類中添加便捷方法,Groovy擴展了JDK形成了GDK庫
return語句可選,分號結尾可選
方法和類默認public
導航操作符可幫助實現對象引用不為空時方法才會被調用
Groovy不強迫捕獲自己不關心的異常,沒捕獲的異常自動傳到高層
靜態方法內可使用this來引用Class對象,因此可以鏈式調用!
兩大優點:表現力 + 簡潔!!!
從Java到Groovy用Java寫一段代碼如下:
public class Greetingss { public static void main( String[] args ) { for( int i=0; i<3; i++ ) { System.out.println("ho "); } System.out.println("Merry Groovy"); } }
用Groovy重構一遍如下:
for(i in 0..2) { print "ho " } print "Merry Groovy"
看看兩種語言的信噪比對比,真是給人不可估量的感動!
安全導航操作符 ?.可以避免代碼中的大量null引用的判斷
def foo( str ) { str?.reverse() // 僅當str不為null時reverse才會執行 }
這可以幫我們省多少個if啊!!!
異常處理與Java相比,Groovy的異常處理少了很多繁文縟節
對于那些不想處理或者不適合在代碼當前層次處理的異常,Groovy對用戶不做任何要求,任何用戶未處理的異常會自動傳遞到高一層,我們啥也不用寫:
def openfile( fileName ) { // 無需throws new FileInputStream( fileName ) // 無需try...catch... 處理 }
異常可以放到其調用代碼中處理:
try { openFile("nonexistfile") } catch( FileNotFoundException ex ) { print "Oops: " + ex }
若捕獲所有異常(Exception),則上面catch中異常的類型都可省略:
try { openFile("nonexistfile") } catch( ex ) { // 省略類型表示可捕獲所有異常 print "Oops: " + ex }鏈式調用
靜態方法內可使用this來引用Class對象,因此可以鏈式調用
class Wizard { def static learn( trick, action ) { //... this } } Wizard.learn("xxxx", {...}) .learn("yyyy", {...}) .learn("zzzz", {...})后記
作者更多的原創文章在此,歡迎觀賞
My Personal Blog
作者更多的SpringBt實踐文章在此:
Spring Boot應用監控實戰
SpringBoot應用部署于外置Tomcat容器
ElasticSearch搜索引擎在SpringBt中的實踐
初探Kotlin+SpringBoot聯合編程
Spring Boot日志框架實踐
SpringBoot優雅編碼之:Lombok加持
如果有興趣,也可以抽點時間看看作者一些關于容器化、微服務化方面的文章:
利用K8S技術棧打造個人私有云 連載文章
從一份配置清單詳解Nginx服務器配置
Docker容器可視化監控中心搭建
利用ELK搭建Docker容器化應用日志中心
RPC框架實踐之:Apache Thrift
RPC框架實踐之:Google gRPC
微服務調用鏈追蹤中心搭建
Docker容器跨主機通信
Docker Swarm集群初探
高效編寫Dockerfile的幾條準則
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/68795.html
摘要:函數式編程概述如今主流的編程語言,函數式編程范式或多或少都融入其中成了標配,或者說主流語言都在進行函數式方面的擴充,這是一個大趨勢。 showImg(https://segmentfault.com/img/remote/1460000015089083); 函數式編程概述 如今主流的編程語言,函數式編程范式或多或少都融入其中成了標配,或者說主流語言都在進行函數式方面的擴充,這是一...
摘要:如果期望應用程序正常地運行,編碼和部署過程都是重中之重。但應用程序對環境的要求非常少只需一個和一個內核,然而意想不到是,目前為止尚不存在一個通用的應用部署工具機制。當下,經過一年的發展,正式發布一個簡單健壯且靈活的應用部署工具。 【編者按】本文作者 Ron Pressler 是 Parallel Universe 公司的創始人,擁有著豐富的高性能開發經驗。通過這篇文章,Ron 向大家詳...
摘要:日期和時間處理日期和時間的函數庫。使用中可觀察序列,創建異步基于事件應用程序的函數庫。為分布式系統提供延遲和容錯處理。發布使用本機格式分發應用程序的工具。將程序資源和打包成和的本機文件。圖像處理用來幫助創建評估或操作圖形的函數庫。 好資源要分享原文 譯者 唐尤華 翻譯自 github akullpp 構建 這里搜集了用來構建應用程序的工具。 Apache Maven:Mave...
摘要:經過年時間的發展,到目前為止,最新穩定版為版本。的發展剛出生的時候,引起了很多開源社區的關注,并且也有個人和企業開始嘗試使用。通過項目搭建過程來對比的差異和優勢。當然它的作用不僅于此,后續會逐步揭開它的真實面目。而和就相當于當年的和的關系。 要了解Spring Boot的發展背景,還得從2004年Spring ...
摘要:軟件架構師需要掌握的開源工具的是當前敏捷開發領域最重要的工具之一。主要用于持續自動地構建測試軟件項目,如與。監控一些定時執行的任務。是應用程序最好的軟件測試框架之一。是一種自由和開放源碼的類操作系統 Java軟件架構師需要掌握的開源工具1. JIRAAtlassian的JIRA是當前敏捷開發領域最重要的工具之一。它用于錯誤...
閱讀 3716·2021-11-23 09:51
閱讀 1378·2021-11-10 14:35
閱讀 4016·2021-09-22 15:01
閱讀 1289·2021-08-19 11:12
閱讀 386·2019-08-30 15:53
閱讀 1696·2019-08-29 13:04
閱讀 3435·2019-08-29 12:52
閱讀 3063·2019-08-23 16:14