美文网首页
《从Java到Kotlin》序

《从Java到Kotlin》序

作者: 万学凡 | 来源:发表于2023-05-01 09:06 被阅读0次

译者序

作为架构师,我们平时会特别留意一些新的开发语言,当Kotlin6年前(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的广大开发者们细细品味。

本书由我们四位架构师伙伴共同翻译,我们将书中的方法、案例与实际项目相结合,相得益彰。在整个翻译过程中得到了机械工业出版社编辑们的巨大帮助。同时也特别感谢田楮梦、李磊、尹夫宪、杨海宇、王硕、张军、张权译、李伯成、张琦、周猛等同事的热情付出,他们在翻译和审校中给出了很多宝贵的建议。

希望各位读者能喜欢我们精心准备的这本手册,阅读它并不需要非常严肃和正式,让我们静下心来,一起享受读书的乐趣。

凯捷中国数字化团队解决方案架构师 杨志桥 李伟晔 李传武 陈亮

推荐序

2016年,微软发布了.NET Core以拥抱开源,Java则停留在2014年发布的Java 8上。相较于笨重的Java,C#效率极高的语法让很多人耳目一新,不论是LINQ带来的集合查询能力,还是Lambda表达式带来的简易匿名函数声明,都为开发人员带来了极大的效率提升。虽然这些“语法糖”一度也被诟病为甜腻,但仍为.NET Core平台吸引了更多的粉丝,也让Java这位老大哥切实感受到了来自微软的威胁。

同时,在前端领域,VueJS还没有问世,但是React已经逐渐取代Angular成为主流前端框架。在React + Redux的单向数据流理念影响下,数据流的操作性变得越来越重要,随之应运而生的underscore.js和immutable.js风靡一时。集合的链式操作和不可变性在一部分前卫开发者心目中成为了新的开发范式。

在这样的背景下,由于项目需要,我们的团队急切地期望在JVM平台找到一门能够提升开发效率的语言。Java 8的笨重让我们舍弃了它;而JVM平台的另一门语言Scala,其又太过于灵活且学习曲线相对陡峭,因此很难在新团队中广泛使用。于是Kotlin进入了我们的视野。2017年,我们第一次接触并在项目上使用Kotlin。

Kotlin在开发效率和学习难度之间找到了很好的平衡,我们的骨干程序员仅用一天时间就完成了简单的demo,并向团队成员讲解了Kotlin各种有趣的用法,团队很快接受了这门新语言。随之我们也发现了问题:由于Kotlin对于大部分的Java语法特性都是支持的,很多团队成员开始写出Java风格的Kotlin代码——即使用复杂的循环操作而不是对集合的链式操作,大量使用可变量而不是不可变量,数据校验throw exception而不是使用require语句......不一而足。团队开始对新语言产生质疑,尽管之后在我的坚持下,团队逐渐适应了Kotlin的工作方式,但这件事情也开始让我们意识到:新技术的引入,要作为一项系统性的工程来管理,而不能仅凭借几位优秀程序员的一腔热情。

所以,当看到本书时,我倍感亲切。书中的内容真实地呈现了我们团队在当年所遇到的困境,如果那个时候能有这样一本指导手册,相信我们的技术转型工作会事半功倍。

我也很开心能把这本书推荐给各位读者,今天的编程语言相较于数年前又有了长足的发展。Kotlin在成为Android官方语言后得到了越来越多开发者的使用。感谢凯捷中国数字化团队的各位译者和参与审校的同学,相信这本指南能够帮助更多像我们一样的数字化团队,更快地解决在新技术引入时的诸多问题,更早地享受优秀语言所带来的各项便利。

开卷有益,是为序。

凯捷沈阳数字化研发中心负责人 曲哲

推荐语

Deeply learning a technology and merging theory with practice is a laborious and time-consuming process. I am delighted that my friends from China compiled and recommended this book to me. If you aspire to become a great architect, write more efficient code, and apply sound engineering practices to project implementation, this book will be your best choice for learning Kotlin. I wish you all a pleasant reading experience.

Martin Maleki,Lynk&Co Project Delivery Lead

随着中国企业数字化转型的深入,尤其在一批中国领先企业的出海解决方案中,我们发现不同区域信息化差异较大,因此Kotlin在不同平台间的适用性表现得尤为突出。而且,在项目实施中,唯一不变的就是“变化”。Kotlin作为一种优秀的技术支持实践,可以提高数字化赋能的效率和实际交付能力,高效搭建销售框架和运营体系以适配业务需求。

我强烈推荐本书,期望读者和开发者能够通过Kotlin的 “纹理”了解到其更高效、安全和简洁的优势,体会相对于传统Java语言不一样的美丽。

长城汽车行业出海项目架构师 李超

作为软件研发人员,都希望用精简、易懂、更贴切业务的语言代码,实现同样的需求。Kotlin相对Java有很多优势,譬如可控性、更优美的函数式编程、更精简的代码,以及DSL等。

本书并没有从具体的代码细节入手,而是提纲挈领地从更高的视角为读者阐述编程的思维和方法。所谓谋定而后动,建议开发团队及架构师都来阅读本书,一起畅游从Java到Kotlin语言的编程之旅。

沃尔沃中国销售公司CED首席架构师 曹祝华

在编程的世界中,语言是我们创作的基石。就像木工需要理解木材的纹理一样,程序员需要深入了解编程语言的规则和约定。本书为我们提供了旅行的灯塔,介绍了如何将现有的Java应用程序迁移到Kotlin,并利用Kotlin语言优势来改善应用程序的性能和可维护性,帮助我们顺着Kotlin的纹理进行编程。

作者首先帮助我们了解Java和Kotlin的差异,以及Kotlin中的常用概念和语法,进而分享了许多有关如何将现有的Java代码迁移至Kotlin的实践经验和技巧。正如书中所言,不按照编程语言的纹理进行编程会使事情变得更加复杂。因此,本书强调了一些Kotlin的最佳实践方法,例如使用函数式编程和利用扩展函数。这些技术将有助于我们编写更简洁、更易维护和更高效的代码。

全书不仅提供了一个完整的学习路径,还包含了许多实用的示例和建议,可以帮助我们更轻松地从Java迁移到 Kotlin。它非常适合那些对Kotlin感兴趣的程序员,尤其希望探索新的编程语言并提高他们编程技能的同行者。

梅赛德斯奔驰高级架构师 姜明魁

本书是一本极具实用价值的指南,旨在帮助开发者和项目技术负责人顺利将Java代码转换为Kotlin。无论您是开发者还是项目技术负责人,本书都为读者提供了全面的指导和实践经验。它通过详细的步骤和示例代码帮助读者理解Java和Kotlin之间的差异,优雅地转换和重构现有的Java代码,并在项目中逐步采用Kotlin。借助这本指南,读者将能够顺利迈过Java到Kotlin的转换之门,有效地管理转换过程、优化团队的生产力并在整个过程中获得最佳结果。

让这本书成为我们的引路人,帮助团队在技术创新的道路上迈出坚实的步伐。

宝洁公司高级技术经理 李陟

Java到Kotlin的重构不仅只是编程语言的转换,面临这样的场景时我们需要考虑很多问题,比如:迁移之后会不会对现有代码的健壮性有所破环?是否需要对现有的架构体系进行调整?所以,当我们还在为如何从Java面向对象语言往Kotlin函数式语言进行转换而苦恼时,本书为我们打开了一扇窗户。通过阅读本书,我们得以有机会从中汲取所需的知识和智慧,让我们对Java面向对象和Kotlin函数式编程的设计思维有着更深层次的理解。

南模生物信息部负责人 季旭辉

自从2017年的Google I/O大会宣布把Kotlin作为Android的官方编程语言后,Kotlin从一门“非主流”编程语言一跃成为了Android开发者的第一开发语言。它简洁高效的语法、更好的安全性以及可以和Java无缝衔接等特性使得越来越多的开发者和开发团队开始加入Kotlin的阵营。

如果你正准备学习Android开发,本书将是你学习Android开发的第一站;如果你是一名有经验的Android开发人员,有意从Java转向Kotlin,本书更值得一读,它将帮助你快速完成从Java到Kotlin的无缝切换。希望这本书对大家都有所帮助!

上海大众高级架构师 吴晓春

这是一本极具价值的编程指引,它为Java开发者提供了一条通向更现代化的软件开发之路。本书探讨了Java与Kotlin之间的差异和优势,旨在帮助开发者更快速、高效地将Java代码转换为Kotlin代码。书中通过丰富的实例以及详细的解析,让开发者更好地理解了Kotlin的语法和特性,从而更方便地进行重构。此外,书中还提供了大量的Kotlin代码片段以及最佳实践,帮助开发者更好地应用Kotlin来构建高效、可靠的应用程序。

总的来说,本书不仅能够帮助Java开发者提高代码的效率和可读性,还能够拓展他们的技能和视野、以及架构能力。如果你是一位Java开发者,正在寻求转换为Kotlin的途径,那么这本书一定是不可多得的重要指导。

零售行业资深企业架构师 顾飞

这是一本对Java爱好者和Kotlin开发者都极具启发的书。作者并非简单罗列两种语言的对比,而是深入开发过程中的各个常用场景,通过翔实的案例来展现Java到Kotlin重构的全过程。阅读本书,初级开发人员可以快速掌握Java、Kotlin语言的常用技术特点,运用;资深开发者可以通过书中多个重构案例,学习Kotlin语言的精髓——简洁、精巧、高效及更好的健壮性,从而提升系统架构设计优化的能力。

作为使用Java超过10年的开发者,近年来我团队部分开发者也逐步学习Kotlin并且予以应用。 相信本书的出版,能够帮助更多开发团队快速掌握Kotlin,领会编程的艺术。

小鹏汇天IT研发专家 刘道平 

介绍Kotlin的书籍很多,但本书的出发点非常独特:它站在一个Java开发人员的视角来讲述Kotlin的语法与开发特色,生动、深入浅出地全面阐释了Kotlin。字里行间,我们能读出作者对这两门语言的深刻理解,我亦受益匪浅。

通读全书,同样感觉到译者的不易,特别是如何原汁原味将作者的小幽默以及特定的技术术语准确地呈现给中文读者,每个环节都面临着困难与挑战。感谢几位专业译者的用心与付出。推荐阅读,相信您一定会有所收获。

奈雪的茶研发中心负责人 郭理靖

相关文章

网友评论

      本文标题:《从Java到Kotlin》序

      本文链接:https://www.haomeiwen.com/subject/wkdojdtx.html