Pinterest转向通用JavaScript和React

编辑:光环大数据 来源: 互联网 时间: 2017-10-20 10:25 阅读:

  Pinterest转向通用JavaScript和React,在2015年,Pinterest决定转向React。但是对于一个有数百万活跃用户的站点来说,谈何容易。Pinterest转向React的故事本质上是Pinterest转向通用JavaScript的故事。

Pinterest的软件工程师ImadElyafi写道,决定转向React的部分原因是React是“黄金标准”,有着“庞大的开发者社区”以及它“能极大地提升工程效率和质量”。React通常用在通用JavaScript场景下,在此服务器和浏览器使用同一类模板。

Pinterest的服务器端引擎是Django,它使用Jinja模板引擎。然而,Pinterest的客户端的JavaScript使用Nunjucks,它的灵感来源于Jinja,也与之相似。这导致了代码的重复,一份Python版和一份JavaScript版。但是他们无法抛弃一切而转向React,Pinterest的软件工程师JessicaChan说道。

我们需要一个方案,能让我们在不打断产品组工作和影响用户体验的情况下,迭代地转换数以百计的Pinterest构件。第一步就是要将客户端和服务器端统一到单一的模板渲染引擎,然后再将引擎替换掉。如果服务器能解释JavaScript,使用Nunjucks渲染模板以及共享客户端代码,我们就能进行迭代迁移到React。

在触及React之前,该团队重新设计了服务器渲染引擎的架构以使用现成的Nunjucks模板。JessicaChan说,他们没有在Django的内部渲染Jinja模板,而是创建了一个进程使用Node来渲染模板。“最终,我们在Nginx代理层后使用常驻的Node进程,将接口架构设计为每一个网络请求都是无状态的渲染过程。我们因此能将请求分发到这些进程组,并在需要的时候扩展进程数。”

一旦该系统上线,他们就能慢慢转向基于React的组件渲染模式。Elyafi说只要可能他们都扩展Nunjucks模板语言来渲染React。

{%ifin_react%}

{{component('MyReactComponent',{pinId:'123'})}}

{%else%}

{{module('MyDenzelComponent',pinId='123')}}

{%endif%}

component关键字告诉模板引擎应该使用基于React的组件,而不是基于Nunjucks的。Pinterest转向React的努力还在继续。

  Python培训,就选光环大数据Python培训机构python学习地址:http://hadoop.aura.cn/python/


大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服

你可能也喜欢这些

在线客服咨询

领取资料

X
立即免费领取

请准确填写您的信息

点击领取
#第三方统计代码(模版变量) '); })();
'); })();