大眾點評是全球最早的消費點評網(wǎng)站之一,成立于 2003 年。進入移動互聯(lián)網(wǎng)時代后,用戶可以在手機上使用大眾點評 APP 方便地查詢?nèi)魏我粋€城市里的餐廳、影院、商場、景點和酒店等信息,并且了解其他用戶寫下的評價。應(yīng)用也會依據(jù)用戶評價數(shù)據(jù)和專家評價來推出各種榜單,比如 "必系列" 榜單和 "黑珍珠" 系列餐廳評價體系,還能根據(jù)用戶的喜好為其在信息流中推薦可能感興趣的餐廳和景點等信息。


為了保障用戶良好的使用體驗和持續(xù)迭代新的功能,應(yīng)用穩(wěn)定性和開發(fā)效率是點評技術(shù)團隊關(guān)注的重中之重。
"點評 Android 應(yīng)用的開發(fā)協(xié)作模式是殼工程依賴于一系列基礎(chǔ)和業(yè)務(wù)組件,應(yīng)用到 Kotlin 的部分分散在十余支業(yè)務(wù)團隊,近四十個業(yè)務(wù)倉庫中,涵蓋了首頁、商戶頁、直播、榜單等核心業(yè)務(wù)。"
—— 程康陽,Android 開發(fā)工程師
Kotlin 現(xiàn)代化的語言特性,比如擴展函數(shù)和 lambda 表達(dá)式,幫助團隊減少了近 30% 的代碼量,提升了近 20% 的需求開發(fā)效率。也因此,目前點評團隊已經(jīng)有 15% 左右的依賴庫在使用 Kotlin 進行開發(fā)和維護。

Kotlin 另一個讓開發(fā)團隊贊不絕口的功能是空安全性,這和 Kotlin 與 Java 良好的互操作性也有關(guān)系——只需要在 Java 代碼中寫好 @Nullable 和 @NonNull 等注解,就能確保 Kotlin 代碼獲得正確的可空性推斷。如此便捷強大的空安全特性也幫助團隊將應(yīng)用的 NPE 從日均 3 個降低至 0。

馬雙飛是團隊里的 "代碼潔癖者",如今基本上只要是他負(fù)責(zé)的模塊,總是會盡可能地完全使用 Kotlin 進行編寫和維護。而想要如此激進地使用 Kotlin,只有一個人精通這門語言是不行的。幸運的是,在團隊里推廣 Kotlin 的成本不算高。
"Kotlin 的語法是很直觀和現(xiàn)代化的,學(xué)習(xí)一到兩天基礎(chǔ)知識就能上手用 Kotlin 進行開發(fā)了。所以在招聘新人的時候,就算沒有 Kotlin 開發(fā)經(jīng)驗問題也不大,畢竟學(xué)習(xí)成本不算高。當(dāng)然有 Kotlin 經(jīng)驗的更好!"
—— 馬雙飛,Android 開發(fā)工程師
能讓團隊放手推廣 Kotlin 的另一個原因,是強大的工具支持。當(dāng)需求開發(fā)涉及到大規(guī)模修改舊的 Java 代碼時,團隊成員會使用 Android Studio 便捷的 Convert Java File 2 Kotlin File 功能將 Java 代碼先轉(zhuǎn)換成 Kotlin 代碼,再繼續(xù)使用 Kotlin 進行開發(fā)。

"用戶體驗是一個很寬泛的概念,我們的產(chǎn)品團隊會努力用更好、更新的功能幫助用戶們吃的更好、生活更好。同時,我們也在努力用新的技術(shù)提升自己開發(fā)產(chǎn)品時的體驗。"
—— 張曉宇,團隊技術(shù)主管
正如張曉宇所說,開發(fā)者們的開發(fā)體驗和應(yīng)用用戶們的使用體驗都很重要。而 Kotlin 可以幫助點評技術(shù)團隊在保留歷史資產(chǎn)的基礎(chǔ)上,更快速、更靈活地開發(fā)產(chǎn)品,讓開發(fā)者可以把精力集中在業(yè)務(wù)邏輯上,而不是浪費在模版代碼上。
相信在整個點評開發(fā)團隊中,會有越來越多的開發(fā)者將 Kotlin 作為其首選的開發(fā)語言。
您手上的開發(fā)項目中有多少在使用 Kotlin?歡迎在評論區(qū)和我們分享使用 Kotlin 的感想。
點擊這里 觀看 Android 開發(fā)者故事視頻。