查看原文
其他

Google这是要“放弃”Java了!

点击关注 👉 开发者技术前线 2020-10-08

点击“开发者技术前线”,选择“星标🔝”

在看|星标|留言,  真爱


去年 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 道题,每道题均附有详细题解过程。自发布以后,受到技术圈内广大开发者的赞赏,建议大家收藏阅读。

前线推出学习交流群,加群一定要备注:

研究/工作方向+地点+学校/公司+昵称(如大数据+上海+上交+可可)

根据格式备注,可更快被通过且邀请进群,领取一份专属学习礼包

扫码加我微信进群,大厂内推和技术交流,和前辈大佬们零距离

好文点个在看吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存