如何实现一个 Git Diff 解析器

作者: 栖邀 发表于: 2017-05-19
代码审阅中一个重要功能是对两个 commit 进行 diff 并展示到页面中,这篇文章将尝试总结其实现过程。 解析 Git Diff 想要展示 diff,首先需要将 Git 提供的 diff 格式解析成结构化数据(比如:JSON)。 基本格式 一个基本的 Git Diff 格式如下: di...

使用 ES decorators 构建一致性 API

作者: 法海 发表于: 2017-04-28
重用和一致性是程序设计中经久不衰的两个课题。在最新的 ES Proposal 中,「decorators 语法」为此带来了一定的便利,并且,很适合应用于大型的类库中。 装饰模式 提到 decorator 大家都不会陌生,即「装饰模式」—— 我们可以在「不侵入原有代码」的情况下,为代码增加一...

「深入实践中的 Node.js」- Node 地下铁第四期南京站线下沙龙总结

作者: 煜宸 发表于: 2017-03-25
前言 获得知识有两种途径。一是学习理论知识;二是实践。二者缺一不可。学习知识固然重要,但最根本的是要把理论的知识和实践结合起来达到学以致用和用以促学的目的,Node.js 从 2009 年至今发展已近 8 年,时光荏苒,回想当初社区生态还不完善时候的捉襟见肘,到现在社区庞大社区完善,为一些企业...

我眼中的 JavaScript 函数式编程

作者: 化辰 发表于: 2017-03-17
JavaScript 函数式编程是一个存在了很久的话题,但似乎从 2016 年开始,它变得越来越火热。这可能是因为 ES6 语法对于函数式编程更为友好,也可能是因为诸如 RxJS (ReactiveX) 等函数式框架的流行。 看过许多关于函数式编程的讲解,但是其中大部分是停留在理论层面,还有一...

认识 TypeScript

作者: 九十 发表于: 2017-03-10
这是一个系列文章,一共会有三篇: [本篇] 认识 TypeScript - 简单描述 TypeScript 的定位、特点。 TypeScript 语法学习 - 比较文档化的讲述 TypeScript 的使用方式。 TypeScript 工程使用 - 讲述如何在工程 —— 包括 Node.js...

致未来的实习生

作者: 海文 发表于: 2017-03-04
岁月如歌,你的人生即将翻开新的篇章,也许你需要一份展现自我的优秀简历,也许你需要一份属于自己的未来规划,也许你需要一个优秀的导师帮助你成长。淘宝前端团队有很多优秀的 FEDer,他们和你们一样富有激情和梦想,对于过去也有过徘徊和迷茫。优秀的他们用自己的激情和努力完成了学生到专业攻城师的华丽转身...

浅析 requestAnimationFrame

作者: 腾渊 发表于: 2017-03-03
相信现在绝大多数人在 JavaScript 中绘制动画已经在使用 requestAnimationFrame 了,关于 requestAnimationFrame 的种种就不多说了,关于这个 API 的资料,详见 http://www.w3.org/TR/animation-timing/,h...

从达标到卓越 —— API 设计之道

作者: 法海 发表于: 2017-02-17
新技术层出不穷,长江后浪推前浪,而浪潮褪去后能留下来的,是一些经典的设计思想。 在前端界,以前有远近闻名的 jQuery,近来有声名鹊起的 Vue.js。这两者叫好又叫座的原因固然有很多,但是其中有一个共同特质不可忽视,那便是它们的 API 设计 非常优雅。 因此这次我想来谈个大课题 —— A...

Why Rax?

作者: 大果 发表于: 2017-02-11
https://github.com/alibaba/rax 从今年 1 月 12 日在 Weex Conf 上宣布 Rax 开源,至今已过去一个月左右的时间,这段时间里,Rax 拿到 2400+ 的 star, 我们深知这对一个开源产品来说是微不足道的,但是从中可以发现的是「前端或者 We...

淘宝双促中的 Rax

作者: 亚城 发表于: 2017-01-14
引子 本文开始之前先调整一个概念,陪我们奋战穿促的 Rx 更名为 Rax。本文会全部使用新的概念去描述。首先简单介绍一下 Rax 是什么以及在双促中的定位。然后介绍一下大促通用页面渲染逻辑以及模块渲染逻辑。 Rax Rax 是一个基于 React 方式的跨容器的 JS 框架 React:你...