阅读更多

2顶
1踩

编程语言

原创新闻 Kraken:PayPal公司的开源Node.js框架

2013-11-26 09:35 by 见习编辑 tuhaihe 评论(4) 有9145人浏览
PayPal 是一项全球流行的网上支付服务,近期它发布了一款 Node.js Web 开发框架:Kraken

Kraken 基于 gruntExpress,相比而言,它提供了更加稳健的功能合集,支持本地化、环境配置、更加注重应用程序安全等。这里解释下,Express 是 Node.js 的一个 MVC 开发框架,支持 jade 等多种模板,是目前 Node.js 上最流行的 Web 开发框架,通过提供一系列强大特性帮助开发者创建各种 Web 应用。



Kraken 项目


为什么会有 Kraken?

之前,PayPal 公司长期存在着“非我所创”的文化,这导致 PayPal 采用新技术的态度很消极,项目开发进度也极其缓慢。正是由于 PayPal 行动缓慢,其他支付服务商 Stripe 和 Square 趁机成长,逐渐撼动 PayPal 的市场地位。同时,PayPal 当时的开发技术也已经无法满足快速开发的需求,因为当时的开发基本全是 Java,不需要用 Java 来实现的也会用 Java 完成。

2012 年 4 月,David Marcuss 成为 PayPal 的总裁,并任命工程师团队在 6 周内完成支付系统的重写。大家应该清楚下,该支付系统是为 PayPal 带来 35 亿美元收入的系统。最终,工程师团队用了 8 周时间完成了该项任务,他们选择了 Node.js 对系统进行重新开发。当然,PayPal 的其他大量的子系统还需要整合到 Node.js 系统,所以起初 Node.js 仅是一个快速开发原型架构。

后来,PayPal 越来越多的新开发都逐渐采用 Node.js 和其他开源软件来完成,这就促成了一个可以快速开发 Web 应用的 Kraken.js 项目的诞生。

下面我们对 Kraken 的框架结构和特点进行简单的总结分析,希望能够帮助大家更好地了解 Kraken。

框架结构

Kraken 框架套件包括多个部分,Kraken.js 仅是该框架的主体部分。该框架还包括其他模块(可独立使用):

  • lusca:支持 Express 的应用程序安全模块
  • makara:支持 Dust.js 的国际化(i18n)模块
  • Adaro:支持 Express 的一款 Dust.js 视图渲染器
  • Kappa:NPM 代理插件


除了上述可以独立使用的模块之外,Kraken 套件还包括了一系列的依赖和实用工具:



特点

通过前面的介绍,我们已经基本了解了 Kraken 究竟是怎么一回事儿,那 Kraken 到底具有哪些吸引开发者的特点呢?

1. 项目结构清晰

Kraken 将生成的项目的配置、内容和模板、路由逻辑(routing logic)放在了不同的位置,方便开发者对文件进行组织和管理。下面,我们详细了解下 Kraken 所创建项目的基本结构:

  • /config,存放应用程序和中间件配置
  • /controllers,控制器
  • /lib,存放开发者自定义的库文件和其他代码
  • /locales,特定语言内容
  • /models,模型
  • /public,公共的网络资源
  • /public/templates,服务器和浏览器端模板
  • /test,存放单元和功能测试用例等。
  • index.js,应用程序入口文件


随着项目的不断成长,这种组织方式和策略对开发者来说会更加友好。

2. 良好平衡开发环境与生产环境

Kraken 的配置文件为 /config/app.json,它会在运行时加载文件中包含的键值对。全部的应用程序配置均存放在这一个文件中,大大方便了开发者。/config/middleware.json 则是自定义的中间件配置文件。

说起开发环境与生产环境,二者通常在端口号、主机名等方面的参数设置会有不同,Kraken 允许创建开发模式下使用的配置文件,如 /config/app.json 为生产环境下的配置,/config/app-development.json 则是开发环境下的配置,然后可以通过自定义环境变量(定义环境变量 NODE_ENV 为 production 或 development)来控制要加载哪个配置文件。如此一来,可以方便开发者在生产环境和开发环境进行快速切换!

3. 注重安全

通过 Lusca 模块来为安全保驾护航,并遵循 OWASP 安全原则,同时也默认为全部调用启用了几个请求/响应头文件:


4. 其他

同时,它还有下面几个特点:

  • 路由(route)与逻辑(logic)分离:方便程序运行失败时快速锁定问题。
  • 模板(template)共用:Kraken 选用 Dust 作为模板语言,同时在服务器端和客户端使用了同一个模板,如此一来,就可以做到代码复用。
  • 支持本地化: Kraken 可以在运行时基于请求上下文来加载内容包(content bundle),所以在模板渲染之前就可以通过添加上下文来给用户提供相应的本地语言支持,大大增强了应用的友好性。


示例与文档

关于 Kraken,官方给出了下面两个示例,可以帮助大家学习和了解:



Kraken 是一款开源项目(分发协议为 Apache License v2.0),大家都可以对该项目进行 Fork 和提交修改。它也提供了一份简洁的使用文档。项目源码和文档均可在 Github 页面进行查看。

最后

任何一个项目的诞生都有其产生的背景,也必然有相应的需求驱动。正如 Kraken,正是由于 PayPal 为了满足其快速开发 Web 应用的强烈需求,才选择了 Node.js,才有了这个项目。

同时,我们也需要注意工程师团队中存在的“非我所创”文化,对于新技术要采取积极的态度,不能一成不变,否则将给企业发展带来阻碍。
  • 大小: 4.5 KB
2
1
评论 共 4 条 请登录后发表评论
4 楼 boendev 2013-12-20 17:21
PayPal 的工程师很闲啊貌似。
3 楼 gxz1989611 2013-11-27 09:40
引用
David Marcuss 成为 PayPal 的总裁,并任命工程师团队在 6 周内完成支付系统的重写

老外真是敢啊。之前听人跟我吹牛说早先支付宝核心代码还有超过几千行的核心代码没人敢重构,就是怕出问题。
2 楼 rainv 2013-11-26 22:29
换了个语言实现了web框架,真不知道有什么意义。。
1 楼 wchaowu 2013-11-26 13:07
node.js将是轻量级web开发开发的王者,同时是高并发很好的解决方案。 欢迎关注我的node.js开源项目 http://vbooking.github.io/

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 计算机的神奇功能华为,图说华为MateBook X,这是一款神奇的笔记本电脑

    随着互联网的快速发展,移动办公已经成为了人们的一种生活方式,因此大家对于笔记本电脑的要求相比一样也要高了很多,机身更轻薄一些、性能更强一些、最好还能有一些创新的体验,为我们的移动办公进一步带来便利。...

  • 小学计算机神奇的因特网教案,小学信息技术第三册全册教案(第一单元 神奇的动画城)...

    《小学信息技术第三册全册教案(第一单元 神奇的动画城)》由会员分享,可在线阅读,更多相关《小学信息技术第三册全册教案(第一单元 神奇的动画城)(60页珍藏版)》请在人人文库网上搜索。1、信息技术第三册教案第一...

  • 推荐CSDN排名前1000博主

    分享一个Linux性能诊断网站: http://linuxperformance.top/  ,访问有收获 中国 福建省 厦门市 专注分享IT知识技能 21aspnet 排名:11 原创:1586 粉丝:13511 积分:...

  • 【其他】笔记本的辐射有多大?

    观点一:这是一份来自BTV《科教观察》对笔记本电脑辐射、台式电脑主机辐射、显示器辐射及其他外围设备辐射值大小的测试。希望对想了解电脑各配件辐射到底有多少的朋友提供些参考。CRT 显示器辐射测试。显示屏前紧贴...

  • 【其它】笔记本的辐射有多大?

    这是一份来自BTV《科教观察》对笔记本电脑辐射、台式电脑主机辐射、显示器辐射及其它外围设备辐射值大小的測试。希望对想了解电脑各配件辐射究竟有多少的朋友提供些參考。 CRT 显示器辐射測试。显示屏...

  • 转自知乎,亲民好酒推荐 分类: fool_tree的笔记本 ...

    这里尽量为大家推荐一些符合大众喜好、业内公认好评、“即使你不喜欢,你也会承认它不错”的酒款。而且介绍到的酒款还会有一个共同的特征,就是能让你方便的在网上买到。 大概会分为烈酒,利口酒,啤酒,和葡萄酒...

  • 计算机设备替换方案,500元不到的低成本笔记本电脑升级方案,东芝TR200替换机械硬盘带来性...

    原标题:500元不到的低成本笔记本电脑升级方案,东芝TR200替换机械硬盘带来性今年PC硬件市场真的是风起云涌,过山车般的显卡狂潮、牙膏厂的供需矛盾,一个个神剧本让各位吃瓜群众眼花缭乱,等等党(包括我)一等再等,...

  • BBC神作:半导体如何改变世界

    来源:电子工程师笔记在纪录片领域BBC一直是打遍天下无敌手的存在作为纪录片王牌制作方近期,BBC与FedEx联合推出了神作Made on Earth系列《The humble miner...

  • 2020笔记本电脑选购分析(redmibook 16锐龙版和惠普星14s 满配)

    2020笔记本电脑分析 信息应用能力来自两方面,一是信息搜集能力,一是信息处理能力。 信息搜集能力帮助搜集更多关键准确的信息,辅助分析;信息处理能力帮助在有限的信息内分析出尽可能多的信息出来。 信息处理能力...

  • 物联网软件更新政策不明 智能冰箱也易沦为犯罪工具

    拜物联网所赐,如今不用骇入笔记本电脑或个人计算机(PC),就可以轻轻松松破解物联网装置的安全防护,换言之,智能冰箱比笔记本电脑更危险。 影集中的黑客组织骇入物联网装置,以全面掌控使用者的房子等情形已...

  • 【凝水成冰】记学生事务系统的结构化

    结构决定性质,也创造美。 ——纪念一次合作开发 散落的逻辑在精巧的架构下结合为美丽的代码,这就好像水分子因为氢键形成稳定而美丽的冰晶一样,细微而又宏大。

  • 用C语言写一个查单词的小demo

    用C语言写一个查单词的小demo #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { // 用只读的方式打开我们的单词库 FILE *fp = fopen(...

  • B站游戏排行榜(No.1竟是‘原神‘)—— B站动态页面爬取

    《原神》是由米哈游自研的一款全新开放世界冒险RPG。你将在游戏中探索一个被称作「提瓦特」的幻想世界。 在这广阔的世界中,你可以踏遍七国,邂逅性格各异、能力独特的同伴,与他们一同对抗强敌,踏上寻回血亲之路...

  • 《那些年啊,那些事——一个程序员的奋斗史》四

    ”伍定轩指了指摆在电脑旁边的一盆仙人掌。当初伍定轩决定买这小盆仙人掌的时候,也是从网上听人说,它可以防辐射。    伍定轩继续说着:“你看,能够在恶劣的环境中生存的仙人掌,居然在我们的屋子被

  • 大学开学必备数码推荐,2022数码好物选购清单

    使用时只需南卡Zzzz枕中宝放置在枕头下面即可,此时,枕头就变成了一个立体音箱,声音通过枕头进行传递,音效表现不俗,无论是趴睡、仰睡,还是侧睡,可尽情享受270-360°音效,让发声摆脱限制,实现无声场死角。...

  • 一个故意不通过图灵测试的人工智能

    一个故意不通过图灵测试的人工智能 人工智能很可能导致人类的永生或者灭绝,而这一切很可能在我们的有生之年发生。 上面这句话不是危言耸听,请耐心的看完本文再发表意见。这篇...

  • 【转存】Go语言设计模式(推荐阅读)

    责任链的拼接方式存在两种,一种是节点遍历,一个节点一个节点顺序执行;另一种是节点嵌套,内层节点嵌入在外层节点执行逻辑中,类似递归,或者“回”行结构; 责任链的节点嵌套拼接方式多被称为拦截器链或者过滤器...

  • 多彩m618plus评测_这么奇葩的鼠标竟然如此神奇?多彩M618mini垂直鼠标测评

    需要提到的一点是,多彩M618 Mini也并非是一款定位于游戏竞技的外设鼠标,所以我建议喜欢玩游戏的朋友,还是选择正常的游戏鼠标吧,这款多彩M618 Mini目前主要适用于办公使用,偶尔用来玩小游戏是没有问题的。...

  • 【java毕业设计】智慧社区教育服务门户.zip

    有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上

  • 基于selenium的携程机票爬虫资料齐全+详细文档+高分项目+源码.zip

    【资源说明】 基于selenium的携程机票爬虫资料齐全+详细文档+高分项目+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

Global site tag (gtag.js) - Google Analytics