Kraken:PayPal公司的开源Node.js框架(转)

标签: kraken paypal 公司 | 发表时间:2013-12-02 09:32 | 作者:wbj0110
出处:http://www.iteye.com

PayPal 是一项全球流行的网上支付服务,近期它发布了一款  Node.js Web 开发框架: Kraken

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

img-1
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,才有了这个项目。

同时,我们也需要注意工程师团队中存在的“ 非我所创”文化,对于新技术要采取积极的态度,不能一成不变,否则将给企业发展带来阻碍。



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [kraken paypal 公司] 推荐:

paypal相关问题

- - 牛B博客 niub.us
paypal ,号称是全球最大的网络支付公司,在国外确实很强,不过在国内被支付宝干掉了. paypal在国内中文名叫贝宝,国内有了支付宝一般人基本上用不上这玩意,今天文章里和大家说说paypal国际版的问题. 因为今年3月份,全球最大的电子商务平台ebay(曾经,现在是淘宝了)搞了一个海淘节(专门针对中国买家),很多数码产品、手表、包包等都有非常实惠的价格.

PayPal 展示“未来的血拼”

- beralee - 爱范儿 · Beats of Bits
PayPal 昨日在洛杉矶召开一个见面会,目的是向商家阐述移动支付的理念,以及它如何实现移动支付的方式. 公司 CEO Scott Thompson 在官方博客中称:“PayPal 正在重新设想货币,并让它更好的为商家与消费者服务——不管你使用的是哪种设备,不管你身处世界哪个地方,也不管你想买什么.

PayPal联合创始人付费让大学生缀学

- keyi - Solidot
在线支付系统Paypal的联合创始人Peter Thiel认为,加快企业创新的关键是略过大学阶段. 他向24位年龄不到20岁的大学生每人资助10万美元,让他们离开大学两年,创建自己的企业. 获得资助的成员将推动科技项目的创新,学习如何创业,开始建立明日的科技企业. 在两年期间内,他们将从Thiel基金会获得10万美元.

Google宣布手机电子钱包,PayPal起诉Google

- CandyFrankie - Solidot
Google宣布了Google Wallet,基于近场通讯技术(NFC)的手机支付系统. Android手机用户在付费时只需让收银台阅读器感应一下手机即可. 移动支付蕴藏的商机,不仅吸引了银行、信用卡公司等传统企业的目光,也吸引了无线运营商、手机制造商等业的关注. 移动支付的吸引力在于它能为消费者提供省时的支付方法.

PayPal 开发者大会的不速之客:WePay CEO 来砸场!

- Isis - 爱范儿 · Beats of Bits
PayPal 年度开发者大会 PayPal X Developer Conference 昨天在旧金山 Moscone Center 开幕. 不过树大招风,竞争对手 WePay 拉来一块 600 磅重的冰块,里面冰封了成百上千的美刀,上面还写了字:PAYPAL FREEZES YOUR ACCOUNTS (PayPal 封了你的帐号)UNFREEZE YOUR MONEY (开始解封你的钱吧).

Paypal创始人投资建造人工岛国

- Marvin - Solidot
Paypal创始人、Facebook早期投资者、亿万富翁Peter Thiel投资了125万美元建造漂浮在国际水域的自由岛国. Peter Thiel是Seasteading Institute项目的主要支持者,该项目设想在不受法律管制的公海建造类似石油钻井平台的主权国家. 这个国家将不受任何地方现有法律、法规和道德规则的束缚.

PayPal创始人:美国的科技创新“奄奄一息”

- diaoxsh - cnBeta.COM
据国外媒体报道,在TechCrunch Disrupt旧金山大会上,彼得・蒂尔(Peter Thiel)和麦克斯・拉夫琴(Max Levchin)谈到了当今美国在创新和技术方面的变化. 以下是TechCrunch对此的报道:蒂 尔是Palantir Technologies、Geni和Asana的董事会成员,Facebook的早期投资者和前董事会成员,对冲基金Clarium Capital的创始人和总裁,以及他的风险公司Founder’s Fund的管理合伙人.

PayPal联合创始人:技术变革速度已停滞

- diaoxsh - cnBeta.COM
美国著名投资人、企业家、PayPal联合创始人皮特・泰尔(Peter Thiel)日前表示:技术变革速度正在停滞. 皮特・泰尔是PayPal联合创始人、Facebook投资者之一,他认为在过去几十年里,尽管电脑领域取得了可观的进步,但整个技术进程实际上却停滞了.

Paypal联合创始人的创业经验

- Robi - Pipes Output
Max Levchin是Paypal联合创始人兼前CTO,有人在Quora上问,作为一个年轻创业者,Levchin哪些经验最值得学习. Levchin自己在下边做了回答:. 有个联合创始人比自己一个人干更好. 创业不是让你爱上一个想法,而是让你爱上运营一家公司. 早期团队有相同的背景、教育、价值观等更好,可以减少无谓的沟通浪费.

PayPal在零售店内测试NFC支付技术

- - 博客园新闻频道
在 9 月份的一次吹风会上,PayPal 展示了一系列支付技术使用场景,商家无需购买新的终端设备,无需适应新的基础设备,消费者也无需升级手机,也无需银行账户. PayPal 将在圣诞节期间测试一款新的移动支付应用:PayPal InStore. 参加测试的两家零售店都位于瑞典,一家是全球最大的滑雪靴零售商 Alpingaraget,另一家是斯德哥尔摩最大的电脑和游戏商店.