作为架构师,我们平时会特别留意一些新的开发语言,当Kotlin 6年前(2017年)第一次出现在技术雷达时,我们便进行了学习,花了不少时间去通读Kotlin的语法特性,遗憾的是一直没有机会在后端项目上进行实践。我们理解为什么在实际的开发项目中很少有团队采用Kotlin作为后端开发的首选开发语言。首先,Java作为老牌的后端开发语言一直都是“够用”的,虽然在语法上饱受诟病,但是它有着不可替代的生态基础,并且一直在演进(目前最新的版本已经到了Java 19)。其次,当企业在选择开发语言时,不得不考虑人才市场上的招聘效率与成本,以及后续的维护。这也是为什么这些年很难有其他语言撼动Java在编程界的位置。基于Kotlin的定位及其独特的语法特性,我们认为它是最有可能挑战Java地位的开发语言,在TIOBE刚刚发布的2023年1月编程语言排行榜上,Kotlin从第29位升到第25位。
Kotlin作为一门新兴语言(尽管已经出道10多年)在语法和特性上必然是完胜Java的,使用Kotlin可以使工作更有效率、开发出更高质量的应用。得益于Kotlin与Java无缝的互操作性,开发者可以混用Java和Kotlin,并对Java生态中的库进行匹配,但是要想从Kotlin中得到全部益处,开发者就必须停留在Kotlin的生态系统中,遵循Kotlin的编程哲学。
可以想象,对于一个刚从Java转向Kotlin的新手来说,很容易写出Java式的Kotlin代码,但如何从实践中理解Kotlin的编程哲学和最佳实践尤为关键。我们深知在项目启动之初就能应用各种最佳实践,比在项目后期“如履薄冰”地重构要容易得多。市面上关于Kotlin语法与项目实践的书籍比比皆是,但如何将一个Java项目转为Kotlin的资料却鲜有见闻,当华章分社的编辑老师邀请我们翻译这本书的时候,我们欣然答应。这本书通过“重构为Kotlin”的工作坊层层展开,深入介绍了一个遗留的Java项目是如何一步一步重构为Kotlin的,作者的本意不在教授Kotlin语言本身,而是帮助读者调整思维和设计,以充分利用Kotlin。作者将他们的实战经验、重构步骤以及对于Kotlin编程哲学的理解毫无保留地做了分享,值得有意从Java转向Kotlin的广大开发者细细品味。
本书由我们4位架构师伙伴共同翻译,我们将书中的方法、案例与实际项目相结合,相得益彰。感谢在整个翻译过程中机械工业出版社华章分社的编辑提供的巨大帮助,同时也特别感谢田楮梦、李磊、尹夫宪、杨海宇、王硕、张军、张权译、李伯成、张琦、周猛等同事的热情付出,他们在翻译和审校中给出了很多宝贵的建议。
希望各位读者能喜欢我们精心翻译的这本手册,阅读它并不需要非常严肃和正式,让我们静下心来,一起享受读书的乐趣。
杨志桥 李伟晔 陈亮 李传武
凯捷中国数字化团队解决方案架构师