大众点评是全球最早的消费点评网站之一,成立于 2003 年。进入移动互联网时代后,用户可以在手机上使用大众点评 APP 方便地查询任何一个城市里的餐厅、影院、商场、景点和酒店等信息,并且了解其他用户写下的评价。应用也会依据用户评价数据和专家评价来推出各种榜单,比如 “必系列” 榜单和 “黑珍珠” 系列餐厅评价体系,还能根据用户的喜好为其在信息流中推荐可能感兴趣的餐厅和景点等信息。
△ “必系列” 榜单
△ “黑珍珠” 系列餐厅评价体系
为了保障用户良好的使用体验和持续迭代新的功能,应用稳定性和开发效率是点评技术团队关注的重中之重。
“点评 Android 应用的开发协作模式是壳工程依赖于一系列基础和业务组件,应用到 Kotlin 的部分分散在十余支业务团队,近四十个业务仓库中,涵盖了首页、商户页、直播、榜单等核心业务。”
—— 程康阳,Android 开发工程师
Kotlin 现代化的语言特性,比如扩展函数和 lambda 表达式,帮助团队减少了近 30% 的代码量,提升了近 20% 的需求开发效率。也因此,目前点评团队已经有 15% 左右的依赖库在使用 Kotlin 进行开发和维护。
△ Kotlin 扩展函数
Kotlin 另一个让开发团队赞不绝口的功能是空安全性,这和 Kotlin 与 Java 良好的互操作性也有关系——只需要在 Java 代码中写好 @Nullable 和 @NonNull 等注解,就能确保 Kotlin 代码获得正确的可空性推断。如此便捷强大的空安全特性也帮助团队将应用的 NPE 从日均 3 个降低至 0。
△ 在 Java 代码中使用空安全注解可以确保 Kotlin 代码获得正确的可空性推断
马双飞是团队里的 “代码洁癖者”,如今基本上只要是他负责的模块,总是会尽可能地完全使用 Kotlin 进行编写和维护。而想要如此激进地使用 Kotlin,只有一个人精通这门语言是不行的。幸运的是,在团队里推广 Kotlin 的成本不算高。
“Kotlin 的语法是很直观和现代化的,学习一到两天基础知识就能上手用 Kotlin 进行开发了。所以在招聘新人的时候,就算没有 Kotlin 开发经验问题也不大,毕竟学习成本不算高。当然有 Kotlin 经验的更好!”
—— 马双飞,Android 开发工程师
能让团队放手推广 Kotlin 的另一个原因,是强大的工具支持。当需求开发涉及到大规模修改旧的 Java 代码时,团队成员会使用 Android Studio 便捷的 Convert Java File 2 Kotlin File 功能将 Java 代码先转换成 Kotlin 代码,再继续使用 Kotlin 进行开发。
△ Convert Java File 2 Kotlin File 功能
“用户体验是一个很宽泛的概念,我们的产品团队会努力用更好、更新的功能帮助用户们吃的更好、生活更好。同时,我们也在努力用新的技术提升自己开发产品时的体验。”
—— 张晓宇,团队技术主管
正如张晓宇所说,开发者们的开发体验和应用用户们的使用体验都很重要。而 Kotlin 可以帮助点评技术团队在保留历史资产的基础上,更快速、更灵活地开发产品,让开发者可以把精力集中在业务逻辑上,而不是浪费在模版代码上。
相信在整个点评开发团队中,会有越来越多的开发者将 Kotlin 作为其首选的开发语言。
您手上的开发项目中有多少在使用 Kotlin?欢迎在评论区和我们分享使用 Kotlin 的感想。
点击这里 观看 Android 开发者故事视频。