王亦凡

王亦凡

Full-stack developer. Emacser. 函数式编程爱好者.

React全家桶与前端单元测试艺术

函数是个好东西,测函数不等同“测1+1=2”这种没营养的单元,函数是可以包含很大上下文的。这种输入输出的模型既简单又有效。

我们消灭了mock,减少了依赖,并发了测试,加快了速度,降低了门槛,减少了测试路径等等。如果你的React项目原来在TDD的边缘摇摆不定,现在是时候入一发这种唯快不破了。

解读GraphQL(三):Relay—面向未来的前端框架

这篇文章是这个系列的尾声,也是我们可以一窥GraphQL、Relay生态究竟可以为我们提供怎样优势的时候了。
我们都知道,一项技术的普及,很大程度来源于旧工具解决某些新问题过于棘手的问题。我们看到前端迅猛发展的过程中,社区逐渐开始抛弃jQuery和Angular——因为当我们的场景越来越复杂时,它们就会开始失控,让我们面临越来越多的维护和性能问题。

解读GraphQL(二): 使用Apollo Data构建GraphQL应用

今天的主角是Apollo Data,它提供了一套与GraphQL相关的服务端/客户端工具,大幅简化GraphQL的开发。并且Apollo client分别有React(Native),Angular2,IOS,以及正在开发的Android版本。如果你所使用的平台不在上述范围内,Apollo client也有原生JavaScript版本可用。它内部基于Redux编写,因此你可以用非常科幻的Redux devtools检测应用状态,然而你并不需要了解Redux也可以使用Apollo。Talk is cheap,第一篇已经解释了很多主要概念,Apollo也非常简单。因此这篇将以Code为主。

解读GraphQL(一): WHAT & WHY

GraphQL是Facebook推出的一个查询语言,可能和听起来不同,它并不是一个数据库查询语言,而是你可以用任何其他语言实现的一个用于查询的抽象层。通常你可以通过GraphQL让你的客户端请求有权决定获取的数据结构,也可以通过GraphQL获得更好的多版本API兼容性。并且与大多数查询语言不同的是,GraphQL是一个静态类型的查询语言,这意味着你可以通过GraphQL获得更强大更安全的开发体验。