「科技小辛辛」30-90%!多邻国从 Java 迁移到 Kotlin 的奇妙体验,代码行数减少( 二 )


虽然移植代码对于我们的Android平台工程师来说不是问题 , 但对于我们的产品团队来说可能会相对困难 。 我们鼓励产品团队的开发人员在空闲时间迁移经常修改的代码 , 还通过每天的排行榜比赛来游戏化这个过程 。 最终 , 产品团队的开发人员担起了一半的工作量 。
绊脚石
Kotlin的工具生态系统比Java的要小得多 。 尽管如此 , 它已经足够满足我们的需求了 。
我们偶尔还是会遇到NullPointerException和IllegalArgumentException , 这些异常来自第三方Java依赖库(比如Android框架本身) , 它们没有遵循最佳实践 , 没有使用可空注解 , 以至于Kotlin编译器无法知道某些方法的参数或返回值可以为空 。 随着谷歌给它们的公共API加入注解 , 这种情况得到了改善 。
【「科技小辛辛」30-90%!多邻国从 Java 迁移到 Kotlin 的奇妙体验,代码行数减少】不过 , Kotlin仍然缺乏对一些Java特性的原生支持 , 包括不太常见的超类静态受保护方法调用和神秘的超类构造函数调用 , 但这类问题很容易解决 。
结果
在2018年初引入Kotlin之前 , 我们的Android代码库的代码行数每年增长46% 。 两年过去了 , 我们加入了很多新特性 , 活跃的贡献者数量增加了一倍多 , 而我们的代码库现在几乎只和以前一样大!
根据NPS数据 , 这一次Android开发人员的满意度增加了129个点 , 大多数开发人员认为是采用Kotlin(以及我们的工具)起到了主要作用 。 NPS的数据具体为:
https://en.wikipedia.org/wiki/Net_Promoter
我们现在也同时使用Python和Java作为后端服务开发语言 , 这几乎不需要额外的工作量 , 因为我们可以重用现有服务中的Java代码和Android代码库中的Kotlin工具 。
总的来说 , 在迁移到Kotlin之后 , 我们感到非常开心 。 我们也很高兴能够看到它在我们的公司内部和整个软件行业中的采用率不断增长!
关注我并转发此篇文章 , 私信我“领取资料” , 即可免费获得InfoQ价值4999元迷你书!


推荐阅读