开放#36

技术周刊 第 30 期

作者:
wild-flame
发布时间:
更新时间:

【前端】

1. v86:JavaScript中的x86虚拟化

适用于浏览器和 Node 。 可以运行Windows 98,Linux和其他操作系统。

链接:https://github.com/copy/v86

2. 使用 Webview 开发跨平台桌面应用

跨平台桌面应用一般用 Electron 开发,打包体积很大。对于纯静态应用,其实有另一种轻量级选择。

操作系统都有自己的 Webview,Mac 是 webview,Windows 是 MSHTML,Linux 是 gtk-webkit2。这篇文章教你怎么用 Webview,开发一个跨平台的桌面打飞机游戏。

链接:https://sausheong.github.io/posts/cross-platform-games-with-go/

3. 浏览器输入 URL 后发生了什么?

这是一道非常经典的题目,相信你被面试或者面试别人有非常大的概率接触过,也可能只是其中某一部分进行提问。这道题涵盖的知识点非常多,考察得比较全面,网上一搜也有成百上千篇文章,不同的人有不同的见解,然而大部分都是千篇一律。如果你没有深入透彻系统性地研究过,光靠死记硬背,面试官稍稍针对某一点提问,或者换成另外一种方式提问,就有可能露出破绽。仔细想想,学习积累到了一定阶段,也该凭技术储备对知识体系进行一遍全面的梳理总结。

链接:https://zhuanlan.zhihu.com/p/43369093

4. Ky: 基于浏览器 Fetch API 的简洁优雅的 HTTP 客户端

Ky 是 github 上新鲜出炉的基于浏览器 Fetch API的轻量简洁HTTP客户端。比起原生 Fetch,它的优势在于:比原生 Fetch简单,简洁的接口操作,把非200+的状态都当做 error处理,请求失败时自动重新尝试,支持 JSON配置,支持超时操作等。对于不支持 Fetch API的浏览,你需要polyfill。

链接:https://github.com/sindresorhus/ky

5. WatermelonDB

下一代功能强大的 React 和 React Native APP 的数据库,WatermelonDB 特地为复杂的 React 和 React Native APP 做了优化,首要目标就是性能,换句话说就是要快速启动。当应用简单时,可以使用 Redux 或者 Mobx,但如果扩展到数千或数万个数据库记录,应用程序启动速度会受到很大影响,尤其在速度较慢的 Android 设备上,将完整的数据库加载到 JavaScript 代价巨大。WatermelonDB 的解决方案就是延迟加载,并且因为所有查询都是以单线程的方式直接在 SQLite 数据库上执行,所以即使在较慢的 Android 设备上,大多数查询也会在不到 1 毫秒的时间内解析,即使有 10000 条记录!

链接:https://github.com/Nozbe/WatermelonDB

6. 盘点 React 16.0 ~ 16.5 主要更新及其应用

大约一年前,React 团队发布了 React 16.0,时至今日,已更新到 16.5 ,这其中有不少激动人心的特性(如 Fiber 架构的引入、新的周期函数、全新 Content API、Fragment、Error Boundary、Portal 等)都值得开发者跟进学习,本文就以 React 更新日志 为引,选取几个重要且用于工作的更新,和大家一起学习。所有示例代码在 react-upgrade-examples, 配合文章一起食用更佳~ 😆

链接: https://zhuanlan.zhihu.com/p/44452592

7、Yarn Plug'n'Play: 摆脱 node_modules

Yarn 将有一个新功能,可以摆脱 node_modules 目录。实现很简单,就是所有 Node 应用的依赖都放在一个中央缓存里面。每个项目不再有自己的node_modules,而会多一个.pnp.js文件,里面列出依赖的版本,直接读缓存。

链接:https://github.com/yarnpkg/rfcs/pull/101

8、Ant Design 实战教程(beta 版)

Ant Design 有 3 万 + 的 Star,应该是国内使用最广泛的 React 组件库。现在,官方团队发布了免费的《Ant Design 实战教程》,从零开始教你怎么写复杂的单页应用。支付宝内部也用这个教程做前端培训,想学 React 的同学可以关注。

链接:https://www.yuque.com/ant-design/course

【后端】

1、HHVM 将停止支持 PHP

Facebook 开发的 PHP 执行引擎 HHVM 宣布将停止支持 PHP,以后只支持 Facebook 自已的 Hack 语言。现在不好判断这对PHP有什么影响。很清楚的一点是,大公司越来越倾向于用自己的语言:谷歌有go和dart,苹果有swift,微软有.net和TS,Facebook 有Hack。

链接:https://hhvm.com/blog/2018/09/12/end-of-php-support-future-of-hack.html

2、如何降低软件的复杂性

阮一峰新的博客文章《如何降低软件的复杂性?》:John Ousterhout 是斯坦福大学计算机系教授,出版了一本新书《软件设计的哲学》。大部分书教你怎么写正确的代码,这本书教你如何正确设计软件。

链接:http://www.ruanyifeng.com/blog/2018/09/complexity.html

3. SQL样式指南 · SQL Style Guide

这篇文档翻译自以署名-相同方式共享 4.0 国际协议发布的http://www.sqlstyle.guide ,译文以原文同样的协议发布。

链接:https://mp.weixin.qq.com/s/pygMaLYA_yh_RbJJ-sBUPg

4. Redis作者摊上事儿了:多人要求修改Redis主从复制术语master/slave

近日,Redis 作者在 GitHub 上发起了一个“用其他词汇代替 Redis 的主从复制术语”的 issue。有人认为 Redis 中的术语 master/slave (主人 / 奴隶)冒犯到了别人,要求 Redis 作者 ANTIREZ 修改这个术语,甚至连 ruby on rails 的作者 DHH 都在表态。本文对此 issue 做了简单翻译,以飨读者。

链接:https://mp.weixin.qq.com/s/DWH7e87q_h52VPH8amlrXw

【其他】

1、Windows 10 拦截用户安装 Firefox 和 Chrome

微软不放过任何机会推销自家的浏览器,即将在下个月发布的 Windows 10 更新将包含更多使用 Microsoft Edge 的提示,它会拦截用户安装 Chrome 和 Firefox,提醒用户:你已经有了更快更安全的浏览器 Microsoft Edge?赶快打开 Microsoft Edge 吧,不管,继续安装。

链接:https://www.ghacks.net/2018/09/12/microsoft-intercepting-firefox-chrome-installation-on-windows-10/

2、Chrome 70 将继续在地址栏隐藏 WWW

Google 在本月初释出的 Chrome 69 中引入了一项受争议的改动:隐藏网址中的 WWW 和 m。然而, www.example.com 和 example.com 是有区别的,它们很可能是不同的网站,Google 的做法会带来安全隐患,用户可能会更容易的被钓鱼网站欺骗。在引发争议之后,Google Chromium 产品经历 Emily Schecter 表示他们听取了社区反馈,决定 Chrome 70 将作出一些改动:继续省略 WWW 但不省略 m。

链接:https://bugs.chromium.org/p/chromium/issues/detail?id=883038