11.1

前端每周清单第38 期: Node 9 发布,Kotlin 与React ,Netflix 架构解密
作者:王下邀月熊
编辑:徐川
前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点;分为新闻热点、开发教程、工程实践、深度阅读、开源项目、巅峰人生等栏目。欢迎关注【前端之巅】微信公众号
新闻热点
国内国外,前端最新动态
-
Node.js 8 宣布进入LTS ,Node.js 9 发布: 近日Node.js 维护团队渲染Node.js 8 正式进入Long-Term Support 状态,这也意味着Node.js 8 已做好了进入生产环境的准备,同时Node.js 9 即将成为当前的发布线版本。Node.js 8 引入了Async/Await 、V8 6.1 等一系列的特性,相较于Node.js 6 带来了将近20% 的性能提升;而Node.js 9.0.0 则引入了Async Hooks ,并且对于Errors 、Child Processes、fs 等多个模块进行了优化。更多关于Node.js 8 的特性概述与Node.js 9 的展望可以查看原文。 -
Angular 5 发布: 本周Angular 5.0.0 正式发布,包含了一系列的特性提升与问题修复,同时也在不断致力于将Angular 打造地更为轻巧与高性能。新版本中Angular CLI 会默认启用构建优化器,Angular Universal 项目引入了新的状态转化接口与DOM 支持;而在编译器方面,Angular 5 也对于TypeScript Transform 、空格、注解等进行了提升,并且对于国际化、时区、HTTPClient、表单、路由等都进行了优化。 -
TypeScript 2.6 发布: 本周TypeScript 2.6 版本正式发布,该版本中允许使用 –strictFunctionTypes 参数指定逆变的函数参数适配;并且为tsc 添加了 –locale 标志位以指定使用的本地语言,可以自行设定错误的提示语言。同时该版本还优化了 –watch 模式的编译效率,并且允许使用// @ts-ignore 来指定单行的错误忽略;更多特性介绍可以查看原文。
开发教程
步步为营,掌握基础技能
-
与时俱进:
React 16 新特性尝鲜: React 16 的发布除开源许可证和Fiber 机制全面开启之外,还为我们提供了部分非常强大的新特性,本视频教程将通过实例带你探索这些新特性,从Error Boundary 到Text Only Component ,再到Portal ,共6 小节,19 分钟,每个小节实例讲解一个新特性,让你在学会新特性用法的同时熟悉新特性的最佳实践。学完本视频教程,你将能熟练把诸如Error Boundary ,Portal 等特性运用到你的实际项目中来提高开发效率和代码质量。更多React 相关资料查看这里。 -
基于
Node.js 搭建零依赖的HTTP/2 静态文件服务器: 目前HTTP/2 已经在大部分的现代浏览器中得到了支持,从而使得开发者能够利用多路复用、头部压缩、服务端推送等特性;Node.js 自8.8.1 版本后也开始支持HTTP/2 ,本文即是介绍如何使用Node.js 创建简单的HTTP/2 静态文件服务器。鉴于浏览器端仅支持HTTPS 信道的HTTP/2 请求,本文首先介绍了如何使用LetsEncrypt 来获取HTTPS 证书或者生成自签发证书;然后展示了如何用http2 及其回调来创建静态文件服务器。接下来讨论了如何使用http2 库中的服务端推送的接口,以及如何在现有应用中集成使用HTTP/2 服务器;更多Node.js 实战教程查看这里。 -
Kotlin 与React : 随着Kotlin 宣布支持Web 应用与iOS 应用开发,其也成为了新的跨平台解决方案的选择之一;而Create React Kotlin App 即是类似于Create React APP 的,使用Kotlin 来开发React 应用的脚手架。Create React Kotlin App 目前依赖于JDK 8( 暂不支持Java9) ,提供了类似于Create React APP 的控制命令,同时也支持在Intellij IDEA Ultimate 直接使用内置的JavaScript 调试器进行调试。更多React 教程查看这里。
工程实践
立足实践,提示实际水平
-
Node.js 最佳实践清单: 本仓库是对于Node.js 最佳实践的清单汇总,包括了项目结构、异常处理、代码样式、测试与质量保障、部署到生产环境、安全、性能优化等方面;更多Node.js 学习资料查看这里。 -
搜狗地图面向
SPA 和Hybrid 的前端工程体系实践: 本文为搜狗地图前端主管周俊鹏老师在QCon 上海2017 上的演讲总结而成,搜狗地图前身是图行天下,成立于1999 年,是国内第一家互联网地图服务网站,2005 年被搜狐收购后改名为“搜狗地图”。所以这个刚“开始”做的地图产品比大多数人预料的还要老。搜狗地图前端团队对前端工程体系的理解是:工程体系本质上是一种服务,其服务的对象是技术团队所采用的技术以及组织架构。而架构本身也定位为一种服务,其服务的对象是具体的业务。更多Web 工程化的讨论查看这里。 -
Slack 桌面应用的优化:从WebView 到BrowserView : Slack 团队使用了基于Electron 的混合开发技术来打造他们的桌面端应用,不过很多时候因为其糟糕的性能表现而广为诟病。本文中Slack 技术团队介绍了它们在即将发布的3.0 版本里面针对性能问题与用户体验所做的一些优化,主要就是从标准的WebView 迁移到BrowserView ,以类似于Chrome 中多Tab 的方式来优化单窗口的表现。除此之外,本文还讨论了如何跨窗口管理Redux Store 、如何处理副作用与异步Action 、如何快速地重构代码等内容;更多Electron 学习资料查看这里。
深度阅读
深度思考,升华开发智慧
-
Netflix 工作机制简析:每次你点击之后发生的事: Netflix 支撑着数百个国家数亿用户的数十亿播放,正是其强大的基础架构支撑着业务的正常运行,本文即是对于Netflix 的工作机制与架构进行简要介绍。当用户点击播放按钮之后,Netflix 的数百个微服务或者独立的程序构成的Netflix 服务就开始协同工作,检验请求内容的合规性,并且将其转化为合适的尺寸,同时还要避免其被恶意复制。接下来服务器会将其复制存放在最靠近用户的存储点,而客户端则会自动选择最合适的节点来加载数据;更多大厂架构分享查看这里。 -
前端框架新选择——基于
MVVM 的San : 在MVVM 早已被引入Web 前端应用开发的今天,其实我们已经有了一些选择,有了一些应用开发的利器。它们的代表就是Vuejs ,React, angular。它们都致力于提升开发效率,希望帮开发者做更多的事,通过诸如声明式的绑定,便可通过框架完成视图层的自动化, 使得业务开发者可以有更多的精力,重新聚焦业务实现的关注点,回归应用开发的本质。百度EFE TEAM 历时接近两年时间设计、开发San 框架,一个实现了MVVM 的Web 组件化框架。在接近两年的时间里,它不断迭代,支撑了越来越多的业务。 -
HTTP 103
: 近日HTTP Working Group 宣布新的HTTP 状态码103 Early Hints 进入Version 5 ,本文即是关于该状态码的详细起草文件。新的状态码允许服务端提前发送某些响应头,并且可以在响应头中通过Link 属性指明需要提前加载的文件,其能够有助于实践Preloading 等预加载优化。浏览器端在接收到Early Hints 之后,实际的响应头之前即可开始进行资源文件的加载;不过这样分片地发送响应头同样会存在风险,因此服务端应当在确定了客户端的身份之后再发送Early Hints 响应头。更多HTTP 相关资料查看这里。 -
JavaScript 工作原理之深入WebSockets 与HTTP/2 : 本文是该系列的第五篇文章,着眼于介绍常用的通信协议,讨论他们的属性特点并且选择最合适的构建方式与应用场景;同时本文也快速地比较了WebSockets 与HTTP/2 各自的优劣。本文首先介绍了WebSocket 的请求格式与帧协议,以及JavaScript 中常见的WebSockets 控制回调;然后从请求头、二进制支持、多路复用、压缩等多个角度比较了HTTP/2 与WebSockets ,并且讨论了HTTP/2 + Server-Sent Events 的作用。更多HTTP/2 相关资料查看这里。
开源项目
乐于分享,共推前端发展
-
Bottery
: Bottery 是由Kate Compton 开源的一款非常有意思的对话式原型设计平台,其提供了聊天、控制、编辑器、白板、审视器、状态监控器等界面;将聊天机器人与原型设计流有机结合起来,并且使用有限状态机状态迁移的思路来模拟我们产品设计中的原型设计思路流程。 -
Frappé Charts
: Frappé Charts 是受GitHub 启发创建的零配置的,简单而大方的现代图表库。Frappé Charts 提供了常见的柱状图、折线图、流线图、热点图等多种图表形式,以及灵活的数据变化监听接口。 -
mlhelper
: mlhelper 是JavaScript 中机器学习相关的算法与工具库,其提供了常见的kNN 、决策树(ID3) 、矩阵运算、向量运算、文件解析以及常见的数据模型可视化功能。 -
Server.js
: Server.js 是另一个简单而强大的Node.js 框架,它致力于帮助开发者尽可能地简化项目开发的复杂度。Server.js 默认地包含了很多Express.js 中需要额外装载的中间件,譬如请求体与文件解析、Cookie、Session、Gzip、Redis 等;此外,Server.js 还提供了弹性易扩展的API 设计方案与基于WebSocket 的实时数据服务。
巅峰人生
- 大咖告诉你:这才是支持你双十一“剁手”的幕后功臣
: 本文是AWS 解决方案架构师姜振勇分享的,中小型电商应该如何应对双十一这样的高并发访问场景。对于注册用户量超过3000 万的小红书来说,要想在双十一搞定剁手党,先要在平时了解客户的喜好和需求,这就势必要对数据进行清洗、归整,适于数据分析师使用。姜振勇老师告诉你小红书这样的电商,是如何借助AWS 快速搭建高效的大数据统计、分析系统的。除此之外,你还能够听到小米网、SK 电信等客户真实案例。当然,姜振勇老师还会介绍AWS 的多种服务,包括大数据、网络和安全,展现AWS 弹性、安全和高可扩展性的全方位能力。
前端之巅
前端之巅是
