- Java到Kotlin:代碼重構(gòu)指南
- (英)鄧肯·麥格雷戈 (英)納特·普萊斯
- 1017字
- 2025-01-03 16:16:32
譯者序
作為架構(gòu)師,我們平時會特別留意一些新的開發(fā)語言,當(dāng)Kotlin 6年前(2017年)第一次出現(xiàn)在技術(shù)雷達(dá)時,我們便進(jìn)行了學(xué)習(xí),花了不少時間去通讀Kotlin的語法特性,遺憾的是一直沒有機(jī)會在后端項(xiàng)目上進(jìn)行實(shí)踐。我們理解為什么在實(shí)際的開發(fā)項(xiàng)目中很少有團(tuán)隊(duì)采用Kotlin作為后端開發(fā)的首選開發(fā)語言。首先,Java作為老牌的后端開發(fā)語言一直都是“夠用”的,雖然在語法上飽受詬病,但是它有著不可替代的生態(tài)基礎(chǔ),并且一直在演進(jìn)(目前最新的版本已經(jīng)到了Java 19)。其次,當(dāng)企業(yè)在選擇開發(fā)語言時,不得不考慮人才市場上的招聘效率與成本,以及后續(xù)的維護(hù)。這也是為什么這些年很難有其他語言撼動Java在編程界的位置?;贙otlin的定位及其獨(dú)特的語法特性,我們認(rèn)為它是最有可能挑戰(zhàn)Java地位的開發(fā)語言,在TIOBE剛剛發(fā)布的2023年1月編程語言排行榜上,Kotlin從第29位升到第25位。
Kotlin作為一門新興語言(盡管已經(jīng)出道10多年)在語法和特性上必然是完勝Java的,使用Kotlin可以使工作更有效率、開發(fā)出更高質(zhì)量的應(yīng)用。得益于Kotlin與Java無縫的互操作性,開發(fā)者可以混用Java和Kotlin,并對Java生態(tài)中的庫進(jìn)行匹配,但是要想從Kotlin中得到全部益處,開發(fā)者就必須停留在Kotlin的生態(tài)系統(tǒng)中,遵循Kotlin的編程哲學(xué)。
可以想象,對于一個剛從Java轉(zhuǎn)向Kotlin的新手來說,很容易寫出Java式的Kotlin代碼,但如何從實(shí)踐中理解Kotlin的編程哲學(xué)和最佳實(shí)踐尤為關(guān)鍵。我們深知在項(xiàng)目啟動之初就能應(yīng)用各種最佳實(shí)踐,比在項(xiàng)目后期“如履薄冰”地重構(gòu)要容易得多。市面上關(guān)于Kotlin語法與項(xiàng)目實(shí)踐的書籍比比皆是,但如何將一個Java項(xiàng)目轉(zhuǎn)為Kotlin的資料卻鮮有見聞,當(dāng)華章分社的編輯老師邀請我們翻譯這本書的時候,我們欣然答應(yīng)。這本書通過“重構(gòu)為Kotlin”的工作坊層層展開,深入介紹了一個遺留的Java項(xiàng)目是如何一步一步重構(gòu)為Kotlin的,作者的本意不在教授Kotlin語言本身,而是幫助讀者調(diào)整思維和設(shè)計(jì),以充分利用Kotlin。作者將他們的實(shí)戰(zhàn)經(jīng)驗(yàn)、重構(gòu)步驟以及對于Kotlin編程哲學(xué)的理解毫無保留地做了分享,值得有意從Java轉(zhuǎn)向Kotlin的廣大開發(fā)者細(xì)細(xì)品味。
本書由我們4位架構(gòu)師伙伴共同翻譯,我們將書中的方法、案例與實(shí)際項(xiàng)目相結(jié)合,相得益彰。感謝在整個翻譯過程中機(jī)械工業(yè)出版社華章分社的編輯提供的巨大幫助,同時也特別感謝田楮夢、李磊、尹夫憲、楊海宇、王碩、張軍、張權(quán)譯、李伯成、張琦、周猛等同事的熱情付出,他們在翻譯和審校中給出了很多寶貴的建議。
希望各位讀者能喜歡我們精心翻譯的這本手冊,閱讀它并不需要非常嚴(yán)肅和正式,讓我們靜下心來,一起享受讀書的樂趣。
楊志橋 李偉曄 陳亮 李傳武
凱捷中國數(shù)字化團(tuán)隊(duì)解決方案架構(gòu)師
- jQuery Mobile Web Development Essentials(Third Edition)
- Visual Basic 6.0程序設(shè)計(jì)計(jì)算機(jī)組裝與維修
- MATLAB實(shí)用教程
- 深度學(xué)習(xí):算法入門與Keras編程實(shí)踐
- Python數(shù)據(jù)分析從0到1
- Oracle從入門到精通(第5版)
- 常用工具軟件立體化教程(微課版)
- 精通MySQL 8(視頻教學(xué)版)
- Android應(yīng)用開發(fā)深入學(xué)習(xí)實(shí)錄
- 大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)指導(dǎo)
- C編程技巧:117個問題解決方案示例
- JavaScript從入門到精通(視頻實(shí)戰(zhàn)版)
- Application Development with Parse using iOS SDK
- Python大規(guī)模機(jī)器學(xué)習(xí)
- Xamarin Cross-Platform Development Cookbook