推56论坛

 找回密码
 立即注册(限中文)

QQ登录

只需一步,快速开始

    查看: 22|回复: 0

    深入分析PayPal对Node.js的应用和开发案例

    [复制链接]
    发表于 2018-11-9 07:51:30 | 显示全部楼层 |阅读模式

    从历史上看,我们工程团队的代码已经被分割成浏览器层(使用HTML , CSS和JS )和应用层(使用J ) 。试想一下,一个HTML的开发人员要求一个J开发人员将A和B页面连接在一起,但是这就是我们。该模型通过引入全栈工程师,落后那些能够创造一个好的用户界面,然后生成应用程序去支持它。称他们为独角兽,但是这就是我们想要的,在PP中,主要阻滞剂是我们在浏览器和服务器之间建立的人工边界。  关注程序员之家论坛,有帮助!

    N 使用,通过建立浏览器和服务端的应用程序帮助我们解决了这个问题。它统一了我们团队,让我们在技术堆栈上了解和应对我们用户的任何需求。
    早期使用N
    和其他一样,我们把N 作为一个原型的平台。同其他一样,它表现了很好的性能,我们决定在产品上使用它。最开始的时候,我们使用作为路由,来作为配置,来建立工作流。我们特别喜欢框架的普及,却发现它并没有在多个开发团队很好地扩展。是非强制性的,并允许您在任何方式合适地去设置一个服务器。它非常灵活,但不利于在大型团队中保持一致。随着时间的推移,我们看到的模式脱颖而出,更多的人拿起的转身进入K ,它不是一个框架本身,而是基于的一个层,允许它扩展到更大的组织。我们希望我们的工程师专注于打造自己的应用程序,而不是仅仅着眼于建立自己的环境。到现在为止,我们在内部使用 已经有几个月了(不久,我们将会开源),我们的工程师团队期望将它变成一个实时的公司内部的应用程序。
    促使N 到产品上
    我们首先在产品上尝试不是一个小的应用程序,它是我们的账目总览页面,这个页面具有很大的流量。我们打算去使用,但是我们也得降低风险,
    于是我们同时建立了一个应用程序。我们知道如何去部署和度量应用程序,因此如果在 程序出了任何问题,我们能够迅速的切换到上来。它提供对一些数据的设置。
    部署
    我们在月份就开始了,它花费了我们几个月的时间去研究必要的基础东西。比如,  , 。在这段时间内我们有名工程师在使用工作。在个月的开发后,名工程师开始使用 并行开发 。在月初的时候,他们相互沟通了一下,他们的应用程序具有相同功能。的应用程序,是以一个更小的团队在个月后开始,但是很快就追上了。有几个细节脱颖而出后,我们运行测试案例,两个应用程序通过相同的功能测试。 是:
    )更少的人去建立,几乎是倍甚至更快的速度)少了% 的代码)建立%甚至更少的文件
    这个提供了一个令人鼓舞的消息表明可以更快的工作。我们都同意并且做了一个决定:将应用程序搁置了。但是问题是工程师在项目上,开始的时候对转向并且很高兴的在我们的工作流中提交代码,提高我们双倍的生产力不太自信。
    性能
    性能是一个高兴而有争议性的话题,在我们的案例中,我们一个团队有套功能相同的应用程序:一个使用 基于S而另一个基于 使用 ,  和其他的开源代码。这个应用程序包含了套路由,并且每一套路由个或者个请求,数据是通过D去渲染页面的。
    在我们的测试路由中,我们收集的数据是吞吐量和响应时间
    你能看到在我们的 应用程序中:
    )与J应用程序相比较,双倍的每秒请求。更有趣的是,N应用程序是单核,而在J中五核。我们希望进一步增加这个鸿沟。) %的跌幅,平均响应时间在同一页。这导致响应的快一些用户肯定会注意到。
    对于这个结果我申明一下:我们的框架使用种不同的应用程序,它仅仅在不同的技术上的是一个对等测试。有可能你的区别更大。也就是说,我们非常激动的看到了表现出的性能。
    K:改变PP开发文化的N框架PP(全球流行的网上支付服务)公司发布了一款N W开发框架K。
    K基于E,E是目前N上最流行的MVC模式的W开发框架,通过提供一系列强大特性帮助开发者快速创建各种W应用。而K在E的基础上提供了更加稳健的功能合集,支持本地化、环境配置、更加注重应用程序安全等。
    为什么会有 K?
    之前,PP 公司长期存在着非我所创的文化,这导致 PP 采用新技术的态度很消极,项目开发进度也极其缓慢。正是由于 PP 行动缓慢,其他支付服务商 S 和 S 趁机成长,逐渐撼动 PP 的市场地位。同时,PP 当时的开发技术也已经无法满足快速开发的需求,因为当时的开发基本全是 J,不需要用 J 来实现的也会用 J 完成。
    年  月,D M 成为 PP 的总裁,并任命工程师团队在  周内完成支付系统的重写,这是一个为 PP 带来了  亿美元收入的系统。最终,工程师团队用了  周时间完成了该项任务,他们选择了 N 对系统进行重新开发。当然,PP 的其他大量的子系统还需要整合到 N 系统,所以起初 N 仅作为一个快速开发原型架构。
    后来,PP 越来越多的新开发项目都逐渐采用 N 和其他开源软件来完成,这就促成了一个可以快速开发 W 应用的 K 项目的诞生。
    下面我们对 K 的框架结构和特点进行简单的总结分析,希望能够帮助大家更好地了解 K。
    K 框架套件
    K 框架套件包括多个部分,K 仅是该框架的主体部分。该框架还包括其他模块(可独立使用):
    :支持 E 的应用程序安全模块:支持 D 的国际化()模块A:支持 E 的一款 D 视图渲染器K:NPM 代理插件除了上述可以独立使用的模块之外,K 套件还包括了一系列的依赖和实用工具:
    G-:Y 生成器E:用于 E 的路由()配置中间件(初始化与配置模块)K-:K 应用程序开发所需的工具合集
    K的特点
    通过前面的介绍,我们已经基本了解了 K 究竟是怎么一回事儿,那 K 到底具有哪些吸引开发者的特点呢?
    项目结构清晰
    K 将生成的项目的配置、内容和模板、路由逻辑( )放在了不同的位置,方便开发者对文件进行组织和管理。下面,我们详细了解下 K 所创建项目的基本结构:
    ,存放应用程序和中间件配置,控制器,存放开发者自定义的库文件和其他代码,特定语言内容,模型,公共的网络资源,服务器和浏览器端模板,存放单元和功能测试用例等,应用程序入口文件随着项目的不断成长,这种组织方式和策略对开发者来说会更加友好。
    良好平衡开发环境与生产环境
    K 的配置文件为 ,它会在运行时加载文件中包含的键值对。全部的应用程序配置均存放在这一个文件中,大大方便了开发者。 则是自定义的中间件配置文件。
    说起开发环境与生产环境,二者通常在端口号、主机名等方面的参数设置会有不同,K 允许创建开发模式下使用的配置文件,如  为生产环境下的配置,- 则是开发环境下的配置,然后可以通过自定义环境变量(定义环境变量 NODE_ENV 为  或 )来控制要加载哪个配置文件。如此一来,可以方便开发者在生产环境和开发环境进行快速切换!
    注重安全
    通过L模块来为安全保驾护航,并遵循OWASP安全原则,同时也默认为全部调用启用了几个请求响应头文件:
    跨站请求伪造(CSRF)标头内容安全策略(CPS)标头隐私优先项目平台(PP)标头X-FRAME-OPTIONS 防止点击劫持 其他
    同时,它还有下面几个特点:
    路由()与逻辑()分离:方便程序运行失败时快速锁定问题。模板()共用:K 选用 D 作为模板语言,同时在服务器端和客户端使用了同一个模板,如此一来,就可以做到代码复用。支持本地化: K 可以在运行时基于请求上下文来加载内容包( ),所以在模板渲染之前就可以通过添加上下文来给用户提供相应的本地语言支持,大大增强了应用的友好性。示例与文档
    关于 K,官方给出了下面两个示例,可以帮助大家学习和了解:
    例一:本地化与国际化:给 W 应用增加多语言支持,让各地用户能够用当地语言来使用 W 应用例二:部署中间件:创建一个网页计数器,为大家解释在应用生命周期中如何部署中间件开源项目
    K 是一款开源项目(分发协议为A L ),大家都可以对该项目进行 F 和提交修改。它也提供了一份简洁的使用文档。项目源码和文档均可在G页面进行查看。
    最后
    任何一个项目的诞生都有其产生的背景,也必然有相应的需求驱动。正如 K,正是由于 PP 为了满足其快速开发 W 应用的强烈需求,才选择了 N,才有了这个项目。
    同时,我们也需要注意工程师团队中存在的非我所创文化,对于新技术要采取积极的态度,不能一成不变,否则将给企业发展带来阻碍。
    学建站、学推广、学赚钱,上56站长论坛就够了!个性签名请到个人资料里面修改……

    本版积分规则

    关闭

    推56站长论坛推荐上一条 /2 下一条

    站长QQ
    在线咨询
    咨询热线
    QQ:405327411
    站长

    QQ|广告合作|关于我们|联系我们|免责声明|网站导航|站长论坛 ( 豫ICP备11018337号-5

    王宝臣旗下网站 推56论坛(www.tui56.com|ask.tui56.com|blog.tui56.com|daohang.tui56.com)

    Powered by Discuz! X3.4 Licensed

    ©2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表