Google Play:SmartNews 使用 Kotlin 將代碼行縮減了 20% 并提升了團(tuán)隊(duì)士氣

來(lái)源: Google Developers
作者:Google Developers
時(shí)間:2021-02-04
17005
SmartNews通過分享來(lái)自各家新聞媒體的實(shí)時(shí)新聞,每天幫助數(shù)百萬(wàn)人探索世界。該公司于2012年在日本成立,目前在全球范圍內(nèi)的下載量已超過5000萬(wàn)次。

SmartNews通過分享來(lái)自各家新聞媒體的實(shí)時(shí)新聞,每天幫助數(shù)百萬(wàn)人探索世界。該公司于2012年在日本成立,目前在全球范圍內(nèi)的下載量已超過5000萬(wàn)次。

smartnews-logo.png

2019年6月,SmartNews團(tuán)隊(duì)注意到Android開發(fā)正在轉(zhuǎn)向采用“Kotlin優(yōu)先”方法,并決定開始自行測(cè)試Kotlin。他們想充分利用Kotlin優(yōu)先的Jetpack庫(kù),減少必須維護(hù)的代碼量,并從Kotlin更具表達(dá)性且易于理解的語(yǔ)法中獲益。

他們做了什么

SmartNews團(tuán)隊(duì)精通Java,因此開始使用Kotlin編寫代碼對(duì)他們來(lái)說很容易。由于Kotlin可完全與Java互操作,因此他們可以輕松地開始使用Kotlin編寫新功能(例如Weather Radar和News From All Sides),同時(shí)仍在現(xiàn)有代碼庫(kù)中執(zhí)行操作。他們使用協(xié)程來(lái)管理已獲專利的Weather Radar功能中的圖片下載和緩存。協(xié)程調(diào)度程序提供了一個(gè)實(shí)用的抽象函數(shù)來(lái)管理任務(wù),這可幫助SmartNews工程師避免管理原生線程時(shí)出現(xiàn)的陷阱。

該團(tuán)隊(duì)還重構(gòu)了部分Java代碼,Kotlin的null安全功能給他們留下了深刻的印象。Kotlin用于識(shí)別可變性、是否可為null和初始化的語(yǔ)法幫助該團(tuán)隊(duì)盡早發(fā)現(xiàn)了錯(cuò)誤,并將審核代碼變更的時(shí)間縮短了10%。利用Kotlin簡(jiǎn)潔高效的語(yǔ)法,他們還能夠增強(qiáng)其代碼庫(kù)的可讀性,從而在公司不斷發(fā)展壯大的同時(shí)讓其代碼更易于維護(hù)。

結(jié)果

采用Kotlin編寫代碼后,該團(tuán)隊(duì)在從實(shí)現(xiàn)到發(fā)布的整個(gè)流程中的工作效率得到了提升。采用Kotlin編寫代碼后,該團(tuán)隊(duì)將轉(zhuǎn)換后的代碼行縮減了20%,這是他們看到的一項(xiàng)最重大的改進(jìn)。目前,SmartNews應(yīng)用中有一半的功能是采用Kotlin編寫的,開發(fā)團(tuán)隊(duì)計(jì)劃用Kotlin編寫所有新功能,并重構(gòu)部分現(xiàn)有代碼以便繼續(xù)提高其代碼的可維護(hù)性。

開發(fā)團(tuán)隊(duì)在實(shí)現(xiàn)Kotlin并減少樣板代碼的過程中發(fā)現(xiàn),團(tuán)隊(duì)士氣得到了很大提升。團(tuán)隊(duì)成員都非常興奮,因?yàn)樗麄兡軌蚋咝У乇磉_(dá)自己的想法,同時(shí)提高了代碼的可讀性,更便于日后閱讀。SmartNews的工程經(jīng)理Hideo Ohashi注意到,Kotlin對(duì)工程招募工作大有裨益。“應(yīng)聘者最常提問的問題是‘貴公司使用Kotlin嗎?使用頻率是怎樣的?’現(xiàn)在,似乎很多工程師都有意遷移到Kotlin,并希望提供這方面的支持?!北M管團(tuán)隊(duì)士氣的提高和在招募方面的改進(jìn)并不是該團(tuán)隊(duì)采用Kotlin的主要原因,但這些積極的改變將幫助該公司在這個(gè)競(jìng)爭(zhēng)激烈的行業(yè)中不斷發(fā)展壯大。

開始使用

詳細(xì)了解使用Kotlin開發(fā)Android應(yīng)用。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來(lái)自于Google Developers,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家