写点什么

前端每周清单第 17 期:大前端技术生命周期模型;WWDC 发布 Safari 11;面向生产环境的前端性能优化

  • 2017 年 6 月 13 日
  • 本文字数:3922 字

    阅读完需:约 13 分钟

新闻热点

国内国外,前端最新动态

开发教程

步步为营,掌握基础技能

  • 《WebAssembly 初体验:重构简单游戏引擎》:WebAssembly 为我们提供了构建高性能的前端应用的途径,而本文则从零开始介绍如何使用 C 来覆写简单的 JavaScript 游戏引擎并且将其编译为 WebAssembly。本文依次介绍了如何搭建基础的 Emscription 工具链、使用 JavaScript 引入 wasm 模块、覆写并且优化某个小型游戏引擎、两个引擎的性能评测等等部分。( http://blog.openbloc.fr/webassembly-first-steps/ )
  • 《使用 Vue 与 NativeScript 开发跨端应用》:目前标准的开发 NativeScript 应用的方式是使用朴素的 JavaScript 或者 Angular,而本文介绍了如何结合使用 Vue 与 NativeScript 来开发跨终端应用。本文首先阐述了 Vue.js 相较于 React 或者 Angular 的优势,然后阐述了使用 Vue 语法来开发基础 NativeScript 应用的步骤。( https://www.nativescript.org/blog/a-new-vue-for-nativescript )
  • 《基于 Firebase 与 Vue.js 构建基于地理位置的聊天室》:本文介绍了基于 Firebase 与 Vue.js 构建某个基于地理位置搜索与配对的聊天室应用的过程,应用发布在这里,还是挺有意思的应用。本文除了介绍 Vue.js 项目的基础构建与语法之外,还介绍了所谓 Geohash 的知识与 Firebase 相关接口的使用。( https://parg.co/bLH )
  • 《Node.js 8 中 util.promisify 介绍》:Node.js 8 为我们提供了新的工具函数 util.promisify(),它能够将某个基于回调的函数封装为基于 Promise 的函数。本文介绍了 util.promisify() 的基本使用,首先介绍了对于文件读取写入相关接口的封装使用,然后讨论了如何引入 async 语法,最后还介绍了自定义 promisify 函数的用法。
  • 《你应该掌握的关于 Node.js 子进程的知识》:Node.js 最初以单进程单线程非阻塞方式提供了强大的性能表现,不过在目前多核时代下仅使用单进程已远远不能承载日益增长的应用压力。本文即介绍在 Node.js 中如何使用 spawn()、exec()、execFile()、fork() 等多进程相关模块的用法与各自的特点,依次介绍了使用 spawn 来创建实现了 EventEmit 接口的子进程、使用 exec 执行子命令、使用 fork 创建自带通信信道的子进程等。( https://parg.co/bLq )

工程实践

立足实践,提示实际水平

  • 《Medium 网站的技术栈》:Medium 是一个在线发布平台,最初由Twitter 联合创始人Evan Williams 开发。该平台于2012 年启动,现在每个月有6000 万独立访客。该网站部署在AWS 上,使用NodeJS 和Go 作为应用程序和服务的开发语言,使用DynamoDB 作为数据存储,并使用Amazon Redshift 作为数据仓库。( http://www.infoq.com/cn/news/2017/06/medium-technology-stack
  • 《Figma 利用 WebAssembly 降低三倍加载速度》:自 WebAssembly 推出之后,很多开发者都开始尝试在小型项目中实践 WebAssembly,不过尚缺大型真实案例比较。而 Figma 因为其产品主要基于 C++ 实现,可以方便地编译到 WebAssembly 中并且与原方案进行性能比较。本文中 Figma 介绍了它们在 Firefox 中使用 WebAssembly 之后带来的加载性能提升以及下载尺寸的优化,同时还提及了目前 WebAssembly 在实际项目使用中存在的一些问题与风险。( https://parg.co/biB )
  • 《利用 React Apollo 减少 Redux 代码量》:Redux 为人诟病的一点就是需要大量的模板代码,而更多的代码往往也意味着更多的潜在错误与更高的维护代价。本文则介绍了如何利用 Apollo 来接管应用中的数据加载与呈现逻辑,从而减少 Redux 实现方案中加载数据生命周期中所需要的代码。( https://parg.co/bLA )
  • 《CSS 局部作用域变量详解》:CSS 自定义属性或者所谓的 CSS 变量,为我们带来了真正的、不同于 SASS 等预处理框架中使用的类占位符的动态变量。本文介绍了 CSS 变量的基本定义语法与使用,以及如何使用 JavaScript 来动态修改 CSS 变量值从而动态地进行界面重渲染,最后阐述了目前浏览器对于 CSS 变量的支持情况以及可以使用的兼容方式。( https://parg.co/bLS )
  • 《面向生产环境的前端性能优化清单》:在 Web 前端开发中,产品经理更多的会关注于寻找优秀的设计与内容,而开发者同样需要关注于如何进行前端性能优化。作者在本文中则分享了多年经验累积的性能优化清单,包括常见的资源优化、CSS 优化中常用的工具、常用的性能检测工具等等。( https://parg.co/bLP )
  • 《渐进式图片渲染机制》:图片在网页中占据了重要的地位,合适的图片能够大幅提升用户体验,不过同样会占据大量的带宽;本文则着眼于如何综合利用懒加载与渐进式渲染等方式来优化带宽使用与用户体验。本文首先讨论了对于合适的图片格式的选择,然后介绍了常见的图片懒加载的技术,最后阐述了所谓渐进式编码与渐进式图片渲染的理念与实践。( https://parg.co/bLp )

深度阅读

深度思考,升华开发智慧

  • 《Mobdux:整合 MobX 与 Redux 中优秀的部分》:MobX 与 Redux 为我们提供了截然相反地管理前端应用状态的方式,而本文则细致地分析对比了 Redux 与 MobX 的优缺点,并且从自己的实践经验角度出发提出了结合二者优点的 mobdux 框架。( https://parg.co/bLd )
  • 《不会做动画的前端不是好开发》:自从有了前端开发这个概念以来,这个岗位所做的事情都是围绕着人机交互来开展的,主要包括展示信息给用户看,然后获取用户的意图并做出响应。随着终端设备以及业务的快速发展,前端工程也越来越复杂,所以分工也进一步精细化,有侧重做工具化与模块化架构的,有侧重无线体验或者 Web 与 Native 融合方面的,也有侧重复杂的商家后台或者数据可视化的,甚至有部分公司把 HTML+CSS 与 JS 的工作也分开的,所以出现了不同前端工程师会有不一样的侧重点。而目前越来越多的业务线有越来越高的动画类需求,而在动画方面能紧跟技术趋势的优秀前端实在是比较难找,本文则希望让那些想在动画方面有些提升的朋友有所帮助。( https://parg.co/bL0 )
  • 《Flow 与 TypeScript》:本文主要对比了 Flow 与 TypeScript 这两个常用的 JavaScript 静态类型检测工具,首先介绍了在简单项目中如何使用 TypeScript 与 Flow。然后对比了二者在类型覆盖率上的渐进对比,会发现使用 Flow 之后因为其较为严格的类型要求会相对较快地实现高覆盖,而 TypeScript 则相对较为松弛。( http://thejameskyle.com/adopting-flow-and-typescript.html )
  • 《JavaScript 中类的私有域定义》:目前对于类中的私有域定义已经达到了 Stage 2,本文即是详细介绍 #private 语法的使用以及设计理念。顾名思义,我们可以使用 #privateFieldName 方式来定义类中的私有域,该私有域仅允许该类的方法访问(包括静态方法)。本文还介绍了使用这种 HashTag 方式而不是其他语言中常见的 private 关键字来定义的考量。( http://thejameskyle.com/javascripts-new-private-class-fields.html )
  • 《CSS 的现状》:毫无疑问我们正在见证着 JavaScript 社区与生态的极速变化,而与此同时可能很多人没有关注到 CSS 社区的进展,本文作者则是对于 CSS 的现状进行了综述并且提出了个人的观点。本文作者主要提出了五个论点:我们可以使用 CSS Module 来替代原有的 BEM 等命名方案、使用 Flexbox 来替代 float、使用 CSS Grid 来替代第三方网格库、使用 CSS 内置的变量、计算函数等特性来替代 SASS 等预处理库,乃至于最终我们完全可以使用 CSS-in-JS 来替代 CSS。本文具有极强的主观色彩,请批判性阅读。( https://parg.co/bLZ )

开源项目

乐于分享,共推前端发展

前端之巅

「前端之巅」是 InfoQ 旗下关注前端技术的垂直社群,加入前端之巅学习群请关注「前端之巅」公众号后回复“加群”。投稿请发邮件到 editors@cn.infoq.com,注明“前端之巅投稿”。


感谢韩婷对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017 年 6 月 13 日 19:001180
用户头像

发布了 60 篇内容, 共 15.0 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

学习总结—第二周

于江水

架构是训练营

架构师训练营 第二周作业

大丁💸💵💴💶🚀🐟

第02周 开发编程框架 学习总结

Jaye

架构师训练营 - 作业 - 第二周

心在飞

极客大学架构师训练营

江帅帅:精通 Spring Boot 系列 01

古月木易

Spring Boot

第二周作业

远方

做产品少走弯路:你必须掌握的知识

我是IT民工

产品 互联网 方法论 思维方式 知识体系

Week2命题作业

星河寒水

第二周作业二:描述熟悉的框架,是如何实现依赖倒置原则

远方

week2 作业

Geek_2e7dd7

Spring Aware 你不能不知道的事

CoderLi

Java spring 程序员 源码分析 后端

江帅帅:精通 Spring Boot 系列 02

古月木易

Sprint Boot

服务治理之轻量级熔断框架:Resilience4j

CoderJ

用 Explain 命令分析 MySQL 的 SQL 执行

程序员历小冰

MySQL explian

第二周 软件设计原则

WW

Python与文件流

Vincent

Python 编程 文件管理

江帅帅:精通 Spring Boot 系列 01

奈学教育

Spring Boot

第二周作业

andy

江帅帅:精通 Spring Boot 系列 02

奈学教育

Spring Boot

命题作业—第二周

于江水

极客大学架构师训练营

ARTS - Week 3

Khirye

ARTS 打卡计划 arts

Class-only Protocols - class or AnyObject

SwiftMic

swift AnyObject

架构师训练营第二周课后作业二

不谈

极客大学架构师训练营

解析 Swift 中的 @discardableResult

SwiftMic

swift

JVM的未来——GraalVM集成入门

孤岛旭日

Java 云原生 JVM GraalVM

第三周作业三:优化 Cache 类的设计

远方

架构师训练营第二周课后作业一

不谈

极客大学架构师训练营

数据库周刊28│开发者最喜爱的数据库是什么?呼兰脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;MySQL架构选型;Oracle文件损坏处理……

墨天轮

数据库 oracle 阿里云

Java参数传递分析

游侠最光阴

Java

week2 学习总结

Geek_2e7dd7

游戏夜读 | 什么是全力以赴?

game1night

前端每周清单第 17 期:大前端技术生命周期模型;WWDC 发布 Safari 11;面向生产环境的前端性能优化_语言 & 开发_王下邀月熊_InfoQ精选文章