前端技术周刊 2019-02-11
前端快爆
- Chrome 72 的安卓版正式启用了 Trusted Web Activity 功能,可以使得一个 PWA 应用能够在 Google Play Store 中得以被分发。 🔗
点评:了解一下国外怎么做轻应用的就行😂
- Firefox 66 将默认阻止所有音频和视频的自动播放,同时提供了用户选择是否自动播放的界面。🔗
- EcmaScript 2019 即将支持这些特性:
Array.flat()
及Array.flatMap()
、让对象也可以像数组一样用for of
遍历的Object.fromEntries
、单向清除空白符的String.prototype.trimStart
及String.prototype.trimEnd
、可直接获得 Symbol 描述的Symbol.prototype.description
、省略 catch 回调形参的try {} catch {}
、修复 JSON 中 Unicode 边界问题的 Well Formed JSON 和 Subsume JSON、并修正了Array.prototype.sort
和Function.prototype.toString
的行为。🔗
点评:Chrome 73 开始这些就默认支持啦,可以先去试试。
- V8 7.3 发布,默认支持了异步的堆栈展现,WebAssembly 的启动 和
await
更快了、支持了 ECMA 2019 的新特性Object.fromEntries
和String.prototype.matchAll
,Atomics.wake
重命名为Atomics.notify
。🔗
百宝箱
- React 16.8 发布,正式支持了 React Hooks。🔗
点评:Functional Component 党喜大普奔,Class Component 党面无表情,Vue 3 表示也要支持类似的思路
- Vue 2.6 发布,使用了更新的 Slot 语法(将与 3.0 一致)以支持动态 Slot 命名,支持了基于 Promise 的异步异常捕捉,允许直接使用
Vue.observable
,支持了serverPrefetch
钩子以允许在服务器端预渲染包含异步请求内容的组件。🔗 - flexsearch 是一个新一代的基于上下文进行全文搜索的库,相对同类库它可以轻松平衡内存消耗和搜索精确度,可在浏览器和 Node.js 端运行。
专题:Serverless
Serverless 是相对热门的体系架构思想,它拥有着快速迭代、部署简单、弹性缩扩容的特性,而把运维、部署的工作转嫁给平台来进行处理。
由于 Serverless 跟开源瓜葛相对较小,相关文章很容易沦为各个云服务的广告,这里尽量摘录平台无关的信息。
介绍
本文较为直观地描述了 Serverless 与 Monolith、微服务在架构上的异同,最后从落地角度比较了利弊。
针对 Serverless 的详尽介绍,包括 Faas 的状态管理、执行时间、延迟与冷启动、网关、工具链与开源的细节,并与 PaaS、容器化、NoOps 和存储过程服务进行了横向比较,最后则详述了利弊。
相对于上一篇,本介绍更偏应用,也更精简。简要介绍了 Serverless 的多个方面并附上了文献。包含它的优势,在企业中的落地情况,适合领域,Serverless 与类似服务的简要对比,服务提供商,及相关文献汇总。
主要是一个链接列表,集结了 Serverless 的云厂商服务与相关工具、资源。虽然全面,也暗藏了不少软文。
详细研究
17 年的论文,对 MindMup、Yubl 这 2 个早期介入 Serverless 架构的企业进行了案例分析,他们如何降低了 66% - 95% 的开支,最后讨论了 Serverless 将如何影响到软件体系架构的设计。
18 年的论文,描述了 AWS 上 Serverless 应用的主要困境:生命周期限制,I/O 瓶颈,缓慢的数据通信,没有完全为之定制的硬件,过度依赖云平台服务。
针对 Serverless 的冷启动,本文详细测量了终端到终端的不同云服务、不同语言、不同大小包体的冷启动时间,并链接了冷启动相关的文章。另:如果你使用 Node.js,可以用 ncc 把项目打包成单文件以更快启动。
本文列举了相关安全风险:函数事件数据注入,鉴权漏洞,不安全的部署配置,过大的函数或角色权限,不充分的监控和日志,不安全的三方库,不安全的秘密信息存储,拒绝服务与资源耗竭,函数操作流控制,不正确的异常处理和冗余的异常信息。
OpenLambda 是面向研究者的 FaaS 开源架构,本论文详细描述了构建这样一个应用在本地数据嵌合、JIT 优化、包体管理、状态管理、资金消耗和可移植性的相关挑战。
编辑:承虎 & 审阅:胡伯 & 专题供稿:承虎
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。