Facebook的Web开发三板斧:React.js、Relay和GraphQL
来源:互联网 发布:栈和队列的算法 编辑:程序博客网 时间:2024/06/05 22:50
Eric Florenzano最近在自己的博客上发表了一篇题为《Facebook教我们如何构建网站》的文章,他认为软件开发有些时候需要比较大的跨越,而这将会在2015年再次上演,主角们则是Facebook的React.js、Relay和GraphQL。
Eric Florenzano在该文章中提到:2003年Brad Fitzpatrick发布了Memcached,由此开启了LiveJournal架构的时代;2004年Google发布了MapReduce论文,由此诞生了Hadoop并开始风靡世界;2007年Amazon发布了Dynamo存储系统,让我们知晓了如何通过线性扩展的方式让数据库和应用程序一起工作,并导致了Cassandra、Riak等数据库的产生;2010年Twitter教会了我们如何通过客户端模板让服务器端变成一些简单的API,并引发了Web应用的又一次大转变;2012年Google发布了Angular.js1.0,并最终成为流行的Web开发框架,这一切都有一个共同点,那就是:公司或者创业团队从生产中得到了沉痛的教训,从失败中找到了向前的出路,然后在将自己的技术突破共享出来的时候引发了一系列的变革。Fitzpatrick相信,在2015年Facebook将会通过React.js、Relay和GraphQL三把利剑引发Web应用开发的另一次跨越。
Fitzpatrick做出如此判断的理由主要是基于Facebook的员工在一些演讲中所透露出的Web开发理念。例如,Pete Hunt在2013年的JSConf上做了题为《React:重新思考最佳实践》的演讲,讲述了Facebook之所以会避开某些“最佳实践”的原因,Pete Hunt认为JS模板分离了技术,但是并没有分离关注点,而框架并不知道如何分离关注点,解决这一问题的方案是组件,要充分利用JavaScript的能力,削弱模板的作用;Daniel Schafer和Jing Chen在2015年的React.js Conf上讲述了Facebook如何通过GraphQL改变既有的数据获取方式,让开发者更容易地在React应用中获取数据;Christopher Chedeau在《React:CSS in JS》中讲述了在大规模使用CSS时所面临的问题以及如何通过JS来解决。
- Facebook的Web开发三板斧:React.js、Relay和GraphQL
- Facebook的Web开发三板斧:React.js、Relay和GraphQL
- GraphQL Relay Specification #Facebook Relay文档翻译#
- Thinking in GraphQL #Facebook Relay文档翻译#
- Facebook 内部是如何使用 JavaScript 和 GraphQL 的
- facebook GraphQL
- graphql学习(三)一些和GraphQL相关的
- graphql学习(四)GraphQL和SpringMVC 的整合
- React Native开发写的JS和React入门知识
- Relay: 全新的React数据获取框架
- React.js: web开发者的14个工具和资源
- React.js: web开发者的14个工具和资源
- 【Facebook的UI开发框架React入门之四】index.ios.js解读(iOS平台)-goodmao
- Facebook React Native开发入门
- 【Facebook的UI开发框架React入门之一】简介-goodmao
- Web开发的未来:React、Falcor和ES6
- Babel Relay Plugin #Facebook Relay文档翻译#
- Thinking In Relay #Facebook Relay文档翻译#
- Android中RelativeLayout各个属性的含义
- Block介绍(三)解开神秘面纱(上)
- js中的一个闭包小例子
- myeclipse修改乱码(编码格式修改)
- vim操作哲学
- Facebook的Web开发三板斧:React.js、Relay和GraphQL
- uva 10330 Power Transmission (最大流 + 拆点)
- java设计模式--单例模式
- Windows安装pip
- Write Small Functions Using Examples
- px(像素)与 dp, sp换算公式
- 1009. Product of Polynomials (25)
- error C2248: “CObject::CObject”: 无法访问private 成员(在“CObject”类中声明)
- POJ 1789