Google这是要“放弃”Java了!

2020-11-24 11:32:49 浏览数 (1)

去年 5 月份的 Google I/O 上,谷歌宣布 Kotlin-first,Kotlin 开始成为 Android 开发者的首选语言,接着谷歌针对 Kotlin 的相关建设不断。

# 本文简介

就在今年,上周,谷歌刚刚推出免费的 Kotlin 和 Android 在线课程,教开发者使用 Kotlin 构建 Android 应用。很快,Google Home 团队也现身说法,通过自身经历,展示了 Kotlin 开发的好处。

# 开始从 Java 迁移到 Kotlin

谷歌建议“由点及面”进行迁移,包括人与代码两个层面:

人的层面,团队内部推举出一位 Kotlin “推广大使”,他需要做到:

  • 了解 Kotlin 并成为专家
  • 制定 Kotlin 开发流程
  • 参与代码审核,确保 Kotlin 开发流程得到顺利贯彻
  • 组建公司/团队内部的学习小组
  • 主动收集内部的问题并与开发者社区反馈探讨

而代码层面,需要做到:

  • 先使用 Kotlin 编写测试(此时项目依然在使用 Java)
  • 使用 Kotlin 编写新代码
  • 将现有代码更新为 Kotlin 代码

在将现有代码更新为 Kotlin 代码时,可以直接使用 Android Studio 提供的 Java 转 Kotlin 工具,只需要在菜单中选择 “Code → Convert Java File to Kotlin File” 即可:

# Java 转 Kotlin 工具

另外,Kotlin 的迁移工作没必要一蹴而就,开发者可以按照自己的进度来逐步进行迁移。一个项目中可以同时包含 .java 和 .kt 文件,但同一个文件中不可以既有 Java 也有 Kotlin,开发者也可以在 Kotlin 代码中使用任何 Java 库。

Android Studio 的 Lint 检查中也可以打开 Kotlin 互操作检查。

在 Kotlin 中调用 Java 时,有几点需要注意

1、将代码标记为 @Nullable 和 @NotNull

2、使用属性前缀(getName(), setName(), isActive())

3、避免使用 Kotlin 中的保留关键字(when、is 等)

# 谷歌工程师怎么看

作为一门 JVM 语言,一门兼容甚至被认为要取代 Java 的语言,Kotlin 的出场也往往伴随着与 Java 的比较。谷歌甚至推出了从 Java 迁移到 Kotlin 的官方指南。部分 Android 开发者仍在犹豫是否要转到 Kotlin,有一些人已经从 Java 迁移到 Kotlin 又迁回了 Java。在一年前 Dice 网站发布的调查中,85% 的受访者几乎一边倒地选择仍旧使用 Java 来构建 Android 应用程序。

但其实在谷歌工程师看来,并没有必要将二者完全划清界限。Android Studio 技术负责人 Jeffrey van Gogh 就曾讲过,Java 与 Kotlin 具有极高的互操作性,所以两者完全可以共存于同一个项目中。目前如 Google Home 这样的谷歌自家应用,不少都采用这种融合式做法,Kotlin 更多地被用来编写新功能。

那么,再回到 “Kotlin 还是 Java” 这个也许已经令 Android 开发者感到厌烦的问题上,定论显然并不存在,关键是选择最适合的方式。

内容取材整编转自:OSCHINA 社区 oschina.net/news/111189/migrating-from-java-to-kotlin oschina.net/news/117389/google-home-benefits-from-using-kotlin

最近有有不少老铁在后台留言说,想进大厂,但是算法不好。最近我整理了一份刷题实录,这份刷题实录,也让我进了心仪的大厂。现在开放分享给大家。希望对大家有所帮助。

任何的算法题,如同写作文一样,都有一些模板可以套用的。比如面试常考的DP(动态规划),难的是一些关键点是否能想清楚。比如你能写出动态转移方程,这题基本上就可以AC了。

整个刷题实录内容,包括LeetCode所有专题 双指针、动态规划、二分查找、贪心算法、深度优先搜索、字符串、递归、字典树、排序、链表等相关专题内容。图文并茂,附有刷题答案源码。

刷题任务的题目,是根据题目的类型来汇总的,总结了八个类别,每个类别下面也总结了5个左右的题型,帮助大家分门别类的突破,所以刷起来相对会更有重点和针对性。如果从头到尾的刷,每周按顺序刷42题,很容易让自己坚持不下来,也会觉得很枯燥。所以在制定计划的时候可以让这个计划变得更“有趣"和针对性,让它看起来更容易实现一点,才会更容易坚持。

目前上述内容已打包成完整电子书,具体获取方式如下:

  1. 扫描关注 GitHub中文社区公众号;
  2. 在 GitHub中文社区公众号后台回复关键词「刷题」获取下载地址。

除此之外,这里再跟大家推荐一本前不久火爆 GitHub 的 LeetCode 中文刷题手册:LeetCode Cookbook。

GitHub:https://github.com/halfrost/LeetCode-Go

作者雷神是前阿里资深后端工程师,连续1年,天天刷题,总结的这个笔记。对多个技术领域均有涉猎,同时也是多个开源项目作者,博客 300w 浏览的技术作者。目录如下:

这本小册里面共包含作者刷 LeetCode 后整理的 520 道题,每道题均附有详细题解过程。自发布以后,受到技术圈内广大开发者的赞赏,建议大家收藏阅读。

0 人点赞