应用和开发案例:PayPal对Node.js
2021-01-04 14:36:04 阅读(154) 评论(0)
从历史上看,我们工程团队的代码已经分为浏览器层(HTML、CSS和JavaScript)以及应用层(Java)。想象一下,HTML开发人员要求Java开发人员“A”和“B页面连接在一起,但这就是我们。该模型可以通过引入全栈工程师来创建良好的用户界面,然后生成应用程序来支持它。称他们为独角兽,但这就是我们想要的,在PayPal中,主要的阻滞剂是我们在浏览器和服务器之间建立的人工边界。Node.js使用javascript,帮助我们通过建立浏览器和服务端的应用程序来解决这个问题。它统一了我们的团队,让我们了解和应对技术堆栈中用户的任何需求。Node早期使用.像其他js一样,我们把Node放在Node上.js作为一个原型平台。和其他一样,它表现得很好,我们决定在产品上使用它。一开始,我们用express作为路由,nconf作为配置,grunt建立工作流。我们特别喜欢express框架的普及,但我们发现它并没有在多个开发团队中得到很好的扩展。express是非强制性的,允许您以任何方式设置服务器。它非常灵活,但不利于在大团队中保持一致。随着时间的推移,我们看到的模式脱颖而出,越来越多的人拿起node.转身进入Krakens.js,它不是一个框架本身,而是一个基于express的层,允许它扩展到更大的组织。我们希望我们的工程师专注于建立自己的应用程序,而不仅仅是建立自己的环境。到目前为止,我们在内部使用kraken.js已经好几个月了(不久,我们将开源),我们的工程师团队希望把它变成实时公司内部的node.js应用程序。促进Node.在产品方面,我们首先尝试node.js不是一个小应用程序,它是我们的账目总结页面,流量很大。我们计划使用它,但我们必须降低风险,所以我们同时建立了java应用程序。如果在nodee中,我们知道如何部署和测量java应用程序.js程序出了问题,我们可以快速切换到java。它为某些数据提供了设置。我们从1月份开始部署,花了我们几个月的时间研究node.js必要的基本东西。比如sessions,centralizedlogging,keystores。在此期间,我们有5名工程师在使用java工作。Java开发两个月后,两名工程师开始使用node.并行开发jsapp。在7月初,他们相互沟通,他们的应用程序具有相同的功能。node.js的应用程序在两个月后开始了一个更小的团队,但很快就赶上了。在几个细节脱颖而出后,我们运行了测试案例,两个应用程序通过了相同的功能测试。node.js是:1)建立40%甚至更少的文件提供了一个令人鼓舞的消息,表明javascript可以工作得更快,几乎是两倍甚至更快。我们都同意并做出了搁置java应用程序的决定。但问题是java工程师在项目开始时转向node.js很高兴在我们的工作流中提交代码,并且对提高我们的双重生产力没有信心。性能是一个快乐而有争议的话题。在我们的情况下,我们的一个团队有两个功能相同的应用程序:一个基于Spring使用java,另一个基于kraken.js使用express,dust.js等开源代码。该应用程序包含3套路由,每套路由2或5个请求,数据通过Dust渲染页面。在我们的测试路由中,我们收集的数据是吞吐量和响应时间,你可以看到我们的node.与Java应用程序相比,js应用程序:1)每秒请求的两倍。更有趣的是,更有趣的是,Node.JS应用程序是单核,Java中有五核。这一差距我们希望进一步加大。2)35%平均响应时间在同一页。这导致一些快速响应200ms的用户肯定会注意到。对于这个结果,我想解释一下:我们的框架使用两种不同的应用程序,它只是在不同的技术上进行平等测试。也许你的差别更大。也就是说,我们非常兴奋地看到node.js性能。Kraken:Node改变了PayPal开发文化.js框架PayPal(全球流行的网上支付服务)公司发布了Node.jsweb开发框架——Kraken。基于Express的Kraken,Express是目前Nodee.Web开发框架是js上最流行的MVC模式,通过提供一系列强大的特性,帮助开发者快速创建各种Web应用程序。在Express的基础上,Kraken提供了更稳定的功能集合,支持本地化、环境配置、应用安全等。为什么会有Kraken?此前,PayPal长期以来一直具有“非我创造”的文化,这导致PayPal采用新技术的态度非常消极,项目开发进度非常缓慢。由于PayPal行动缓慢,其他支付服务提供商Stripe和Square趁机成长,逐渐动摇了PayPal的市场地位。与此同时,PayPal当时的开发技术已经不能满足快速开发的需要,因为当时的开发基本上都是Java,Java不用Java就能完成。2012年4月,DavidMarcuss成为PayPal总裁,任命工程师团队在6周内重写支付系统,这是一个为PayPal带来35亿美元收入的系统。最后,工程师团队花了8周时间完成了这项任务,他们选择了Node。.js重新开发系统。当然,PayPal的其他大量子系统也需要集成到Node.js系统,所以一开始Node.js仅作为原型架构的快速开发。后来,越来越多的PayPal新开发项目逐渐采用Node.js和其他开源软件完成,这促成了Kraken,可以快速开发web应用.js项目的诞生。下面简单总结分析一下Kraken的框架结构和特点,希望能帮助大家更好的了解Kraken。Kraken框架套件Kraken框架套件包括多个部分,Kraken.js只是框架的主要部分。该框架还包括其他模块(可独立使用):lusca:支持Express应用程序安全模块makarara:支持Dust.Adaro的国际化(i18n)模块:Dusttts支持Express.Kappapp视图渲染器:除上述可独立使用的模块外,NPM代理插件,Kraken套件还包括一系列依赖和实用工具:Generator-kraken:Yeoman生成器Enrouten:用于Express的路由(route)配置中间件(初始化和配置模块)Kraken-devtools:通过前面的介绍,Kraken应用程序开发所需的工具集合了Kraken的特点,我们已经基本了解了Kraken到底是怎么回事,那么Kraken到底有什么吸引开发者的特点呢?1.Kraken将生成的项目配置、内容和模板、路由逻辑(routinglogic)在不同的位置,方便开发者组织和管理文件。下面,让我们详细了解Kraken创建项目的基本结构:/config,存储应用程序及中间件配置/controllers,控制器/lib,存储开发人员定制的库文件和其他代码/locales,特定语言内容/models,模型/public,公共网络资源/public/templates,服务器和浏览器端模板/test,index存储单元和功能测试用例.js,随着项目的不断发展,这种组织方式和策略将对开发者更加友好。2.Kraken在开发环境和生产环境之间取得良好平衡的配置文件为/config/app.json,在运行过程中,它会加载文件中包含的键值对。2.Kraken的配置文件,平衡开发环境和生产环境,为/config/app.json,它将在运行过程中加载文件中包含的键值对。本文件中存储了所有的应用程序配置,极大地方便了开发者。/config/middleware.json是自定义的中间件配置文件。说到开发环境和生产环境,端口号和主机名称的参数设置通常是不同的。Kraken允许创建开发模式下使用的配置文件,如/config/app.json是生产环境中的配置,/config/app-development.json是开发环境下的配置,然后可以定制环境变量(定义环境变量NODE_ENV为production或productiondevelopment)控制要加载的配置文件。这样,开发者就可以在生产环境和开发环境中快速切换!3.注意安全,通过Lusca模块护送安全,遵循OWASP安全原则。同时,默认情况下,所有请求/响应头文件都被调用和启用:伪造跨站请求(CSRF)标头内容安全策略(CPS)标头隐私优先项目平台(P3P)标头X-FRAME-OPTIONS防止点击劫持4。同时,它还具有以下特点:路由(route)与逻辑(logic)分离:方便程序运行失败时快速锁定问题。模板(template)共享:Kraken选择Dust作为模板语言,同时在服务器端和客户端使用相同的模板,使代码可以重用。支持本地化:Kraken在运行过程中可以根据要求加载内容包(contentbundle),因此,在模板渲染之前,可以通过添加上下文为用户提供相应的本地语言支持,大大提高了应用程序的友好性。关于Kraken的示例和文档,官方给出了以下两个示例,可以帮助您学习和理解:例1:本地化和国际化:增加对Web应用程序的多语言支持,使用户可以使用当地语言使用Web应用程序例2:部署中间件:创建网页计数器,解释如何在应用生命周期中部署中间件开源项目Kraken是一个开源项目(分发协议为Apachelicensev2.0),每个人都可以对项目进行Fork和提交修改。它还提供了一个简单的使用文档。它还提供了一个简单的使用文档。Github页面可以查看项目源代码和文档。最后,任何项目的诞生都有自己的背景,必须有相应的需求驱动。就像Kraken一样,正是因为PayPal选择了Noden,以满足其快速开发Web应用程序的强烈需求.js,才有了这个项目。同时,还需要注意工程师团队中存在的“非我创造”文化,对新技术采取积极态度,不能保持不变,否则会阻碍企业的发展。
推荐阅读
- 烂片排行榜 豆瓣公认的十大烂片
每个人在选择电影的时候,会按照自己所喜欢的类型去选择,类型不一样,对应的电影也是不相同的,所以,我们在看电影之前,需要先了解一下烂片排行榜都有哪些,从排行榜中选择更节省时间。 1、《返老还童(亚历克斯・巴顿奇事)》 推荐原因…查看详情
- 办公软件有哪些?一起来看看电脑上必装的10款Windows办公软件
电脑上好用的办公软件非常多,今天就给大家分享一下,电脑上必装的10款Windows软件,使用舒适感立刻提升,一起来看看吧。01*优效日历一款日历软件,界面设计简洁,无弹窗无广告,非常良心。最重要的是它能够与Windows原生日历无缝结合,不…查看详情
- xor指令含义是什么
三菱取反指令的用法?三菱的取反指令(-/-)是放在输入与输出的连线之间的,取反指令的前面(条件端)为0(断开状态),取反后则为1(其后面的输出端被接通);取反指令的前面(条件端)为1(接通状态),取反后则为0(其后面的输出端不接通)。 取…查看详情
- 建筑装修企业网站建设重点在哪里?
网站建设流程、功能布局、视觉设计......别提!作为建筑装修企业,一座座高楼大厦,一套套暖心住宅都搞定了,还需要谈网站建设中关于设计的那些事儿吗?只谈重点,怎么做到建筑装修行业网站建设差异化,在用户选择中脱颖而出,才是企业想了解的。 极致…查看详情
- 正则表达式r如何匹配
正则表达式怎样匹配任意字符?.*匹配除\n以外的任何字符。/[\u4E00-\u9FA5]/汉字/[\uFF00-\uFFFF]/全角符号/[\u0000-\u00FF]/半角符号---------------------这个正则我写的,仔…查看详情
- 2021有哪些好用的新零售分销系统?
什么是新零售分销系统?其新就在于代理+零售+线上线下一体化结合,提供更好的结合运营模式的新零售方案,实现实现快速推广、多层分销机制等功能,那么2021有哪些好用的新零售分销系统? 1.微商来新零售分销系统 这是一款“商城+多级分销+分红代理…查看详情
- 最受年轻人欢迎的社交软件有哪些?好用的社交软件推荐
很多的年轻人在平时都会选择一些好用的软件来使用,其实现在的软件也是比较多的,找到一款好的社交软件才能够带来更好的体验。那么最受年轻人欢迎的社交软件有哪些呢?接下来就给大家介绍几款比较受欢迎的社交软件吧。 1、微信 其实现在大…查看详情
- 智能装修管理软件有哪些?让工程细节一览无余
相信人们在装修工程实施过程中,都希望能够对装修进程、装修成本、装修安全性、装修质量等进行实时跟进与把控,而这些往往需要借助专业的装修管理软件来辅助监控。今日为大家介绍几款比较靠谱的装修管理软件,把握每一处装修工程细节。 1、…查看详情
- crm哪个好用?介绍一些现在较多企业在使用的crm
crm客户管理系统可以直接帮助企业减少销售的成本,提高市场竞争力,提高企业业绩,如何你现在正处于选择crm系统的过程中,不是很了解市场上的crm哪个好用,那下面小万就为你推荐一些。图片来源于网络 Crm哪个好用?好用的crm不是功能越多越好…查看详情
- 新闻app软件哪些好用 新闻app软件排行榜
相信大家平时手里面都是有几款新闻类APP软件的,大家没事的时候刷刷新闻也是消磨时间的一大好处,下面小编就给大家来详细介绍一下新闻app软件哪些好用 新闻app软件排行榜这一块的内容,希望能帮助到大家、 新闻app软件哪些好用 1…查看详情
- 商标网注册平台都有哪些?不错的商标网注册平台推荐
一家公司想要吸引更多的客户在网站上让更多的客户找到,那么就应该要选择注册好自己的商标,一家企业的商标也代表了企业的形象,所以说对企业来讲是非常重要的,在进行商标设计的时候也是需要找到商标网的,因为不同的商标网设计也会带来很好的推广。在做商标…查看详情
- 免费好用的建站系统有哪些?
ocms建站系统是什么?公司旗下产品OCMS建站系统,是一个(CMS发布系统)为企业用户提供多元、高效、易用的互联网工具,同时配以成熟的运营优化服务体系,帮助企业有效地提升搜索引擎排名,同时提升企业用户消费者体验与互联网营销核心竞争力。制作…查看详情
- 网站建设的目标是什么?获取更多客户,赚取更多利益
随着网络的发展,人们的生活越来越便捷,足不出户就可以购买到大洋彼岸的产品,因此人们越来越依赖网络了,因此很多企业开始注重网站建设了,借此机会发展自身,那么网站建设的目标是什么呢?图片来源于网络 网站建设的目标是什么? 第一,提升企业形象互联…查看详情
- b2b2c电商平台系统在交易流程中的相应配置
电子商务的关键要素是人、商品和场地,在目前比较流行的电子商务模式中,都是三要素的组合,无论是B2N、B2C、B2B2C都只是在模式调整中存在拓展差异。b2b2c电商平台系统中存在的现象就是端和C端混合且身份可转换,涵盖面比较广,相应的系统支…查看详情
- 云计算是什么意思 什么是云计算
最近几年云计算算是很流行的,但是很多的人对云计算都不是很熟悉,下面万商云集小编给大家来详细介绍一下云计算是什么意思 什么是云计算这方面的内容,希望能帮助到大家了解云计算这一块的详细内容。 什么是云计算? 话说英特尔创始人戈登·摩尔曾说过…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品
找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
在线咨询
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达
关注万商云集
和10万中小企共成长
TOP

企业首选的数字选用平台






