阿里云前端周刊 - 第 33 期

推荐

1. React 16.1.0 发布

https://github.com/facebook/react/releases/tag/v16.1.0

本周 React 16.1.0 版本发布,自该版本开始 React 不再发布到 Bower,而是采用 unpkg 来镜像存放 UMD 构建版本;那些依赖于 Bower 进行依赖管理的开发者只能选择使用老的版本。此外该版本中还修复了 UMD 构建中,异常全局变量的错误;并且为实验性的 React Call Return 模块添加了父子通信的接口。

2. Node.js 9.1.0 发布

https://nodejs.org/en/blog/release/v9.1.0/

本周 Node.js 9.1.0 版本发布,整合了一系列的提交;值得注意的变化包括 NODE_OPTIONS 环境变量开始支持 --stack-trace-limit 选项,OpenSSL 更新到了 1.0.2m,对于 http 模块开始支持 103 Early Hints 状态码,并且修复了 connect 事件处理器溢出的漏洞。

3. Gitlab 使用 Vue.js 的年度总结

https://about.gitlab.com/2017/11/09/gitlab-vue-one-year-later/

时光易逝,岁月如梭,不觉之间 Gitlab 已经使用了一年多的 Vue.js,其对于 Vue.js 应用开发也有了更深刻的认识,本文即是 Gitlab 对于这一年的使用感悟的分享。就像 Scala,Vue.js 并非一锤子买卖,当我们正确使用它时,它能够给予优秀地体验反馈;这一年来 Gitlab 也遇到了,并且尝试去解决了很多的问题。作者在接下来的章节中讨论了使用 VueX 进行状态管理、编写高质量的代码、如何提升应用性能等内容;

更多

1. 有了 ARCore 和 ARKit,AR 行业还能做什么?

https://36kr.com/p/5091876.html?from=related

ARCore 的发布代表 AR 技术全面进入 C 端,后续会是内容和技术互相促进,更新迭代的时期。在 AR 眼镜到来之前,手机端是一个不得不做,并且值得做好的平台,希望 Google 和苹果可以保持良性竞争的关系,为大众带来体验更好的技术,同时也希望开发者们可以喜欢 AR,带来更多有价值的 AR 应用。

2. OpenAPI 与 gRPC 横向比较

https://medium.com/@timburks/openapi-and-grpc-side-by-side-b6afb08f75ed

OpenAPI(原 Swagger) 是构建网络 API 的两种不同方式,不过如果你了解过这两种技术方案,你会发现二者也有很多的共通之处,本文即是对 OpenAPI 与 gRPC 进行了详细的阐述与对比。OpenAPI 是用于描述 REST API 的语言,其提供了规范的 API 描述格式,默认基于 HTTP 进行数据交互并且使用 JSON 格式来表示数据;这种规范性也就使得基于 Schema 的代码生成更容易实现。而 gRPC 则源自 Google,同样提供了接口描述格式,其默认使用 HTTP/2 进行数据交互,并且使用 Protocol Buffer 作为数据格式,其相较于 OpenAPI 会更为严格。

3. 为什么我还在使用 jQuery

https://hackernoon.com/i-still-love-jquery-and-you-should-too-3114f33f249e

现代 Web 开发中,jQuery 一直是传统开发的代名词,开发者喜欢谈论 TypeScript、ECMAScript 2015+、React、Vue.js 等等时髦的名词;作者则是在本文中讨论了为何他现在还是会继续使用着 jQuery。很多对于 jQuery 的诟病在于其增加了网站的体积,不过目前 jQuery 仅有 27KB,并且在通过 CDN 方式分发并不会增加站点压力;而 jQuery 的辅助方法还是能够帮我们提升代码的编写效率与性能。接下来作者还讨论了如何避免错误的代码、编写可扩展的 jQuery 代码、如何将 jQuery 集成到其他框架、在什么情况下要避免使用 jQuery 等内容。

4. GraphQL 技术栈漫游

https://dev-blog.apollodata.com/the-graphql-stack-how-everything-fits-together-35f8bf34f841

GraphQL 开源已两年有余,其相关的生态圈也呈现指数级的增长,成百上千的公司在生产环境中使用了 GraphQL;本文即是对于 GraphQL Summit 2017 中的演讲的总结。本文首先概述了 GraphQL 的特别之处,然后分析了 GraphQL 开发中缓存、追踪、模式拼接等方面地实践技巧与相关开源项目;

5. React Native 与原生应用的量化比较

https://codeburst.io/react-native-vs-real-native-apps-ad890986f1f

现在,从事移动应用开发的程序员可能都会听过 React Native,这个由 Facebook 开源的优秀的跨平台开发解决方案;不过很多公司在进行技术选型时可能还较难在 Swift 原生开发与 React Native 做恰当的抉择。本文即是从理论到实践,多方位、立体地、量化地对 React Native 与 Swift 原生应用进行比较。作者分别使用 Swift 与 React Native 实现了一个简单的应用,包含了常见的登录、列表、地图等功能,而后又分别针对各个页面,从 CPU、GPU、内存使用等多个角度进行了量化比较。最后作者又从各方面比较了 React Native 的优势与不足;

6. BBC 是如何进行网页发布的

https://medium.com/bbc-design-engineering/how-we-deliver-bbc-web-pages-to-the-internet-9b72f48f857c

本文是 BBC 在线技术委员会的首席架构师 Neil Craig 分享的,BBC 是如何将它们大部分的网页发布到因特网上。BBC 服务于全世界超过 230 个国家和地区,为了保证全世界用户的使用体验,BBC 在其发布流程上采用了一系列的优化策略。其对于资源的请求总量与并发请求数进行了分析,并且将下属的栏目划分到了不同的目录下以进行不同的峰值应对;对于不同国家和地区的用户,负载均衡会将其转发到不同的 CDN 或者应用服务器中,并且对于不同类型的资源也进行了区分对待。

7. ThinkJS 3.0 如何实现对 TypeScript 的支持

https://zhuanlan.zhihu.com/p/31057738

ThinkJS 3.0 是一款面向未来开发的 Node.js 框架,内核基于 Koa 2.0。 3.0 相比 2.0 版本进行了模块化改造,使得内核本身只包含了最少量必须的代码,甚至还不足以构成一个完整的 Web MVC 框架,除了内核里面实现的 Controller, View 和 Model 被实现为扩展(Extend)模块 think-view 和 think-model,这样实现的好处也是显而易见的,如果我的 Web 服务只是简单的 RESTful API,就不需要引入 View 层,让代码保持轻快。

上一篇:Visual Studio 安装OpenCV及问题总结


下一篇:阿里云前端周刊 - 第 32 期