作为程序员,我们每天紧跟前沿技术,来回游逛在技术网站之间。我们生怕自己落后,今天出来个新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/