ELSE 技术周刊(2017.08.14期)

团队分享

[译]JavaScript 中的匿名递归

闭包、自执行函数、函数式编程模式不是什么黑魔法,它们遵循一套易于理解的简单原则。理解这些基本技术对于创建清晰优雅的解决方案以及提升自我是至关重要的,也可能会成为重构中一些好点子。

业界动态

Atom 1.19 - Improved Responsiveness and Memory Usage

Atom 主要架构升级,同时 Electron 也作了升级。新版本引进原生 C++ 文本缓存实现 提升反应速度和内存使用,并重写编辑器渲染层,许多因为性能问题放弃 Atom 的朋友可以试试这个版本。

技术纵横

编写高质量代码的思考

怎么写高质量的代码是一个很大的话题,这里只是抛砖引玉,其实面向对象设计的很多原则都能够给我们写代码的时候提供指导,写代码的时候要时刻记得学以致用,而不是敷衍了事,专业的软件工程师必然要能写得一手好代码。

前端开发

测试 JavaScript 函数的性能

在软件中,性能一直扮演着重要的角色。在Web应用中,性能变得更加重要,因为如果页面速度很慢的话,用户就会很容易转去访问我们的竞争对手的网站。作为专业的web开发人员,我们必须要考虑这个问题。有很多“古老”的关于性能优化的最佳实践在今天依然可行,例如最小化请求数目,使用CDN以及不编写阻塞页面渲染的代码。然而,随着越来越多的web应用都在使用JavaScript,确保我们的代码运行的很快就变得很重要。

一行 JavaScript 代码的逆向工程

这是由一行代码引发的故事, 逆向工程出来的东西,着实让人眼前一亮, 看完之后有点烧脑,有种破解敌军电报的既视感。 作者的思路确实值得学习下。

WebAssembly: A New Hope

主流浏览器如 Chrome、Firefox 已经逐渐开始支持这项令人兴奋的新技术 WebAssembly。本文通过一个真实的例子:web 版本的 PSPDFKit,将 500.000 LOC C ++内核编译成 WebAssembly 和 asm.js 在浏览器中独立渲染。

Understanding Service Workers

介绍Service Workers的起源背景,它们能做什么,以及如何帮你的app运行的更好,文章还用emberjs做了实现。

如何编写轻量级 CSS 框架

作者文中讲到自己如何一步步实编写一个轻量级的CSS框架,可以了解到作者对 CSS 框架的理解,包括对模块的划分,命名策略等, 尤其对命名 重视,好的命名是一个好的开始。

如何监听页面 DOM 变动并高效响应

从 DOM 事件出发,深入浅出解析页面监听 DOM 变动并进行高效的响应,对于前端开发者来说,读完这篇文章相信都会受益匪浅。

探索 Service Worker 「生命周期」

SW 只是个 Event bus,他的几个运行周期的事件,是专门为缓存与推送量身打造的( install 事件和 push 事件),因此他的扩展性也非常好,以后如果有更多需求只需添加事件即可(比如 chrome 实现了 sync 事件是为了弥补离线时从本地到服务器 post 的不好体验),它将我们对资源拉的需求(对服务器的请求资源,对服务器的轮询),隐形转换为了推(本地缓存资源代码控制缓存,统一服务器推送)。

前端实现文件的断点续传

断点续传在前端的实现主要依赖着HTML5的新特性,所以一般来说在老旧浏览器上支持度是不高的,本文通过断点续传的简单例子(前端文件提交+后端PHP文件接收),理解其大致的实现过程。

“遍历器(Iterators)加速那些奥秘”

文章以 ES6 的 Map 和 Set 为例,对比了 Node 8 在遍历器性能上的提升及其实现原理。 在大面上介绍了遍历器性能所面临的瓶颈和现有的解决方案。

程序人生

在工作中学习

在公司里参与那种可以学到很多东西的项目;观察公司里的牛人如何工作;阅读源码;利用通勤时间学习,等等。一个正常的工程师一天8小时在公司的时间里,高效写代码的时间一般不超过4小时,与其让剩下的4小时白白浪费,或许可以挪出一部分时间用来投资个人成长。

ELSE 技术周刊由 IFT 小组 出品,汇聚一周好文章, 周刊原文。本期编辑:

@Curtis 前端中年人

@StoneZou 前端搬砖工,不安分于前端开发的搬砖工

@Steven 写 JS 的老年人

@mirreal 一个程序圈的间谍

感谢以下同学荐稿:loveforcode

点击这里 向我们推荐你读到的好文章,期待你们。

风清洋

风清洋

前端老兵,一路上搬过C++、C#、Java的砖,现在在搬Node.js

评论