idea kotlin gradle 實(shí)際開發(fā)的優(yōu)點(diǎn)

以下是在實(shí)際開發(fā)過程中與eclipse java maven三者的對(duì)比所體會(huì)的.

idea
1 界面美觀

這個(gè)就仁者見仁智者見智.

2 不卡

曾經(jīng)在用eclipse的時(shí)候, 有很多次寫代碼的時(shí)候就卡死了, 不得不關(guān)掉再重新打開. 而在用idea的時(shí)候死沒有出現(xiàn)過這種情況. 也可能是打開一個(gè)idea只能打開一個(gè)項(xiàng)目,而eclipse是打開一個(gè)工作空間.

3 測試方便

在idea中寫main方法或junit測試的時(shí)候,直接在旁邊就有個(gè)運(yùn)行按鈕, 而eclipse一般是, 單擊方法名,右鍵 run juin test, 雖然可以設(shè)置快捷鍵, 但是這已經(jīng)成為了習(xí)慣.


image.png
4 可以定義項(xiàng)目模板

比如我在架構(gòu)2.0 的base項(xiàng)目, 就把他存儲(chǔ)為模板, 每一次開發(fā)新項(xiàng)目時(shí)以這個(gè)模板為基礎(chǔ)創(chuàng)建即可.


image.png
5 代碼提醒智能

這個(gè)就體現(xiàn)在寫代碼的方方面面 只能在實(shí)際寫代碼的過程中多體會(huì).

kotlin
1 去掉分號(hào) 去掉分號(hào) 去掉分號(hào), 去掉new 去掉new 去掉new 重要的事說三遍.

每行代碼末尾不需要分號(hào),新建每個(gè)對(duì)象不需要new.
不要小看這個(gè)分號(hào)和new, 不僅是可以少敲很多下鍵盤, 關(guān)鍵是這個(gè)分號(hào)和new 真的沒什么必用.
這也足以說明kotlin致簡的設(shè)計(jì)思想, 能省略的盡量省(分號(hào), new, lambda的括號(hào)...) 不能省略的就默認(rèn)自帶(單例, getter, setter,it...)
我當(dāng)時(shí)學(xué)kotlin的時(shí)候就深深的喜歡上這個(gè)語言了, 甚至那時(shí)玩塞爾達(dá)的時(shí)候給我第一匹馬取的名字就叫kotlin.

2 單文件可以寫多個(gè)類

這也是把java換成kotlin最根本的原因, 因?yàn)殡S著項(xiàng)目的發(fā)展類越來越多, 查找一個(gè)類都已經(jīng)變的很麻煩, 我不喜歡用自帶的搜索, 習(xí)慣了從包的一級(jí)一級(jí)點(diǎn)下去, 很多類就只有幾行代碼, 而很多類又是相關(guān)的, 完全是可以放到一起的. 這也是架構(gòu)2.0的由來.

3 擴(kuò)展函數(shù)和屬性

在java中寫日志的方式

一 在每個(gè)類中添加logger


image.png

二 使用lombok


image.png

第一種方法就不說了, 太麻煩, 第二種方法, 稍微好一些, 只是需要在每一個(gè)類上加一個(gè)注解.
而在kotlin中, 你只需要全局定義一個(gè)擴(kuò)展屬性, 那么每一個(gè)類都會(huì)自帶一個(gè)log變量.
kotlin的Any對(duì)象,對(duì)應(yīng)java 的Object對(duì)象, 所有的類都是繼承Any對(duì)象等同于java中所有的父類都是Object.


image.png

在java中打印的方式


image.png

kotlin中


image.png

雖然只是少了11個(gè)字符, 但是真的看著要舒服很多, 因?yàn)楹啙?

接口的輸入輸出都是json字符串, 通常需要打印json串來看我們的接口是否正確.

在java中打印對(duì)象的json串


image.png

而在kotlIn中


image.png

有了擴(kuò)展函數(shù), 相當(dāng)于每一個(gè)對(duì)象都自帶了println方法, pj (pring json) 方法和toJsonString屬性.
調(diào)試測試有了翻天覆地的變化.
只要是你經(jīng)常用的都可以寫成擴(kuò)展函數(shù)和方法.


image.png
4 可以定義全局屬性和方法 不需要有類

這其實(shí)是對(duì)java中各種各樣的Util的優(yōu)化.
在java里的工具類是這樣的


image.png

而kotlIn中只有一個(gè)Util文件即可


image.png

因?yàn)楣ぞ哳愅ǔJ钦{(diào)它的方法,根本不需要類名,直接調(diào)用方法即可.


image.png
5 lambda表達(dá)式
image.png

省略了參數(shù), 有默認(rèn)參數(shù)it , 新增了各種各樣常用的方法, list map set 的構(gòu)造非常方便. 也就是說它會(huì)在方方面面減少你的代碼量.


image.png
6 對(duì)象及帶接收者的lambda with apply let run

不需要為對(duì)象的每一個(gè)屬性添加get, set方法. 再也看不到a.getXXX(), a.setXXX() 這樣啰嗦的語法了.

頁面?zhèn)鞯慕?jīng)緯度的格式是度分秒數(shù)組, 自動(dòng)轉(zhuǎn)換成小數(shù)的度. 插入數(shù)據(jù)庫后, 從數(shù)據(jù)庫取的小數(shù)的度會(huì)自動(dòng)轉(zhuǎn)換成度分秒返回給前端顯示.完全不需要在業(yè)務(wù)代碼中寫轉(zhuǎn)換邏輯.


image.png

構(gòu)造函數(shù)可以寫默認(rèn)值, 參數(shù)也不需要按照順序.
構(gòu)造函數(shù)和apply, run 等等的結(jié)合 ,實(shí)在是太方便了, 以前煩人的建對(duì)象和給對(duì)象屬性賦值在都沒有了.
與spring自動(dòng)注入的結(jié)合也方便多了.


image.png

image.png
image.png
7 字符串模板和三引號(hào)運(yùn)算符

字符串模板, 主要應(yīng)用在日志信息里.再也不需要用{}預(yù)留位置,也不需要擔(dān)心參數(shù)寫的不對(duì)應(yīng)了.


image.png

三引號(hào)運(yùn)算符就很強(qiáng)大了, 再配合mybatis的script 直接就可以去掉mybatis的xml.


image.png
8 其他比較常用的 還有 單例 ?, !!, ?:, when, if else, 等運(yùn)算符.
gradle
1 配置使用代碼, 擴(kuò)展性強(qiáng), 也通俗易懂.
2 自定義任務(wù)簡單. 比如遠(yuǎn)程打包部署,自動(dòng)寫打包時(shí)間.
3 打包效率高.

還是一樣我并不會(huì)推薦大家使用這些, 我只是把我在開發(fā)中的感受寫下來.畢竟我只寫了優(yōu)點(diǎn), 缺點(diǎn)就是如果沒有很強(qiáng)的目的性是很難堅(jiān)持學(xué)下去的(主要還是新事物的抵觸心理). idea和gradle在我沒有遇到kotlin的時(shí)候, 就已經(jīng)嘗試過了幾次,最終都是放棄而還是繼續(xù)使用eclipse和maven. 就算學(xué)好了想在實(shí)際開發(fā)中應(yīng)用也不是易事.我是由于我們公司后臺(tái)開發(fā)比較少,也不是很忙,大家有時(shí)間去學(xué)習(xí),最終應(yīng)用成功.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末块请,一起剝皮案震驚了整個(gè)濱河市娜氏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌墩新,老刑警劉巖贸弥,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異海渊,居然都是意外死亡绵疲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門臣疑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來最岗,“玉大人,你說我怎么就攤上這事朝捆“愣桑” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長驯用。 經(jīng)常有香客問我脸秽,道長,這世上最難降的妖魔是什么蝴乔? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任记餐,我火速辦了婚禮,結(jié)果婚禮上薇正,老公的妹妹穿的比我還像新娘片酝。我一直安慰自己,他們只是感情好挖腰,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布雕沿。 她就那樣靜靜地躺著,像睡著了一般猴仑。 火紅的嫁衣襯著肌膚如雪审轮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天辽俗,我揣著相機(jī)與錄音疾渣,去河邊找鬼。 笑死崖飘,一個(gè)胖子當(dāng)著我的面吹牛榴捡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播朱浴,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼薄疚,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了赊琳?” 一聲冷哼從身側(cè)響起街夭,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎躏筏,沒想到半個(gè)月后板丽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趁尼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年埃碱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了狼渊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片礼华。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖乏梁,靈堂內(nèi)的尸體忽然破棺而出芝囤,到底是詐尸還是另有隱情似炎,我是刑警寧澤辛萍,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站羡藐,受9級(jí)特大地震影響贩毕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜仆嗦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一辉阶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瘩扼,春花似錦谆甜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至倒慧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間包券,已是汗流浹背纫谅。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留溅固,地道東北人付秕。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像侍郭,于是被迫代替她去往敵國和親询吴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容