开发者简报第二期

226 阅读6分钟
原文链接: mp.weixin.qq.com

作为程序员,我们每天紧跟前沿技术,来回游逛在技术网站之间。我们生怕自己落后,今天出来个新Rect Natvie我们学,明天再来个 小程序我们还是学、后天有出来一个 Flutter,嗯!我们还得学。我们一股脑的学,恨不得把所以最前沿最潮流的技术全塞在脑子。

话又说回来,追求前沿技术是好事。我并反对前沿技术,我曾经也是一个狂热的追求前沿技术的追随者,好轮子我们当然要用。这些技术出现,本来是提高我们的工作效率,现在反而成为我们的累赘。后来,我反思,每天新技术层出不穷。人的精力有限,我学得过来吗?答案肯定是学不完的。最重要的事,其中一些技术它只是昙花一现,如果将太多时间花在上面不值得。

做编程这行说实话,不思进取可能不行。根据我有限的工作经验,发现一个问题。其实绝大多数程序员,基础是不牢靠的。一些基本的编程原理也说不上来。其实,我就是其中一个。那么,出路在哪呢?钻研编程基础原理。事实上,编程原理是相通的。我给自己定目标是,把基础掌握牢靠,再分3分精神来了解前沿技术。这样即掌握了原理,也不会被抛弃。

新闻摘要

JEP草案:文本块(Preview)

将文本块添加到Java编程语言。文本块是一个多行字符串文字,可以最大限度地减少转义常见字符(如双引号和换行符)的需要。

过去在Java中编写多行字符串需要换行转义符,可读性差,而且容易出错。文本块可读性更好,降低出错机率。

字符串换行转义符

文本块

原文链接:JEP草案:文本块[1]

GitHub 推出软件包托管服务 Package Registry

GitHub 在官方 Twitter 上正式宣布,推出自家的软件包托管服务 - GitHub Package Registry。

开发者们以后可以很方便的将安装包与源代码都托管在 GitHub 上了。

本次提供的安装包托管服务是完全免费的,你可以选择公开发行安装包,或仅给公司内部团队成员使用。

原文链接:GitHub 推出软件包托管服务 Package Registry[2]

谷歌警告说,未来的Android版本可能会删除ADB备份和恢复

多年来,新手机的使用变得更加容易。 Android Oreo的自动填充功能使您可以更轻松地登录所有应用,而且某些应用甚至可以覆盖您的所有偏好。 在同一OEM的手机之间切换特别容易,因为大多数手机都有自己的备份和恢复工具。然而,体验并不完美,不同OEM厂商之间的切换可能会很痛苦。这就是ADB备份和恢复可以派上用场的地方

ADB备份和还原是一个方便的工具,允许您执行多个内置备份选项。您可以在不需要root的情况下保存私有数据和已安装的应用程序,具体取决于应用程序是否允许它。不幸的是,看起来ADB备份和恢复可能会在未来的Android版本中消失。AOSP中的提交标题为“向adb备份/恢复添加弃用警告。”只要用户在最新的ADB工具版本中运行该工具,就会显示警告,告知他们该功能可能不会存在。

原文链接:谷歌警告说,未来的Android版本可能会删除ADB备份和恢复[3]

好文推荐

Kotlin如何帮助您避免内存泄漏

如果一个Activity或者Fragment被一个内部类持有它的引用可能会导致内存泄漏。为什么Kotlin创建一个匿名内部类,不会导致内存泄漏呢?本文给你答案。

原文链接:Kotlin如何帮助您避免内存泄漏[4]

探讨Kotlin中lazy和lateinit的差异

lateinit和lazy是重要的属性初始化功能。我们必须知道何时使用哪个属性初始化。

原文链接:探讨Kotlin中lazy和lateinit的差异[5]

Oh shit, git!

git好用,同时也会使我们犯错。如何在已经犯下的错误及时弥补?这里有几条弥补措施。

原文链接:Oh shit, git![6]

Bloom Filters by Example

Bloom filter 是一个数据结构,它可以用来判断某个元素是否在集合内,具有运行快速,内存占用小的特点。

而高效插入和查询的代价就是,Bloom Filter 是一个基于概率的数据结构:它只能告诉我们一个元素绝对不在集合内或可能在集合内

Bloom filter 的基础数据结构是一个 比特向量。

原文链接:Bloom Filters by Example[7]

讨论

Kotlin真的降低了你的崩溃率吗?

Kotlin官方宣传称它是安全的,可以避免空指针异常等整个类的错误。然而,真的像官方说的那样吗?这里有一些关于它的讨论。

原文链接:Kotlin真的降低了你的崩溃率吗?[8]

你喜欢Java还是kotlin

Java和Kotlin各有千秋,你更喜欢哪一门语言呢?

原文链接:你喜欢Java还是kotlin[9]

自学成才的程序员应该关注哪些工具

你有好的工具推荐或者学习资料。你是如何自学软件开发的?

原文链接:自学成才的程序员应该关注哪些工具[10]

编程语言

Neko

Neko是一种高级动态类型编程语言。它可以用作嵌入式脚本语言。它旨在为几种不同的语言提供通用运行时。学习和使用Neko非常容易。您可以使用C库轻松扩展语言。您还可以使用自己的语言将生成器编写到Neko,然后使用Neko Runtime编译,运行和访问现有库。

链接:Neko[11]

有趣

在浏览器的标签图标中制作视频游戏!

想在浏览器标签图标玩恐龙小游戏吗?

链接:在浏览器的标签图标中制作视频游戏![12]

非技术

保护人类知识

如果发生毁灭人类文明灾难,如何保护好人类文明知识?目前又有哪些组织从事这方面的功能。本文给你答案

链接:保护人类知识[13]

参考资料

[1]

JEP草案:文本块: https://openjdk.java.net/jeps/8222530

[2]

GitHub 推出软件包托管服务 Package Registry: https://github.com/features/package-registry

[3]

谷歌警告说,未来的Android版本可能会删除ADB备份和恢复: https://www.xda-developers.com/adb-backup-and-restore-depreciated/

[4]

Kotlin如何帮助您避免内存泄漏: https://proandroiddev.com/how-kotlin-helps-you-avoid-memory-leaks-e2680cf6e71e

[5]

探讨Kotlin中lazy和lateinit的差异: https://ahsensaeed.com/differences-between-kotlin-lazy-lateinit-delegate/

[6]

Oh shit, git!: https://ohshitgit.com/

[7]

Bloom Filters by Example: https://llimllib.github.io/bloomfilter-tutorial/zh_CN/

[8]

Kotlin真的降低了你的崩溃率吗?: https://www.reddit.com/r/androiddev/comments/bnqjhl/did_kotlin_really_reduce_your_crash_rate/

[9]

你喜欢Java还是kotlin: https://www.reddit.com/r/androiddev/comments/bo2b27/anyone_else_prefer_java_over_kotlin/

[10]

自学成才的程序员应该关注哪些工具: https://news.ycombinator.com/item?id=19900955

[11]

Neko: https://nekovm.org/

[12]

在浏览器的标签图标中制作视频游戏!: https://www.youtube.com/watch?v=kZFhm7aW8A4&feature=youtu.be

[13]

保护人类知识: http://the-knowledge.org/en-gb/similar-projects/