Kraken:paypal開源的Web開發框架

PayPal最近發佈了一款Node.js Web開發框架——Krakenphp

Kraken基於Express。Express是目前Node.js上最流行的MVC模式的Web開發框架。Express提供的一系列強大特性能夠幫助開發者快速建立各類Web應用。而Kraken在Express的基礎上提供了更加穩健的功能集,包括本地化、環境配置,同時更加註重應用程序安全。git

爲何會有Kraken

以前,PayPal 長期存在着「非我所創」的文化,採用新技術的態度很消極,項目開發進度也很是緩慢。因爲 PayPal 開發緩慢,其餘支付系統(好比Stripe 和 Square) 趁機成長,開始撼動 PayPal 的市場地位。PayPal 當時的開發技術也已經沒法知足快速開發的需求,由於當時的開發基本全是Java,無論功能是否須要用 Java 實現,都會用 Java。github

2012 年 4 月,David Marcuss 成爲 PayPal 的總裁,要求工程師團隊在 6 周內完成支付系統的重寫,這是一個爲 PayPal 帶來了 35 億美圓收入的系統。最終,工程師團隊用了 8 周時間完成了該項任務,他們選擇了 Node.js 對系統進行從新開發。固然,PayPal 的其餘大量的子系統還須要整合到 Node.js 系統,因此起初 Node.js 僅做爲一個快速開發的原型。express

後來,PayPal 愈來愈多的新開發項目都逐漸採用 Node.js 和其餘開源軟件。最終,一個能夠快速開發 Web 應用的 Kraken 框架誕生了。json

下面咱們簡單介紹下 Kraken 的框架結構和特色,但願能對你們有所幫助。segmentfault

Kraken 框架套件

Kraken 框架套件包括多個部分,Kraken.js 僅是該框架的主體部分。該框架還包括其餘模塊(可獨立使用):安全

  • lusca:支持 Express的安全模塊
  • makara:支持 Dust.js的國際化i18n模塊
  • Adaro:支持 Express 的Dust.js 視圖渲染器
  • Kappa:NPM 代理插件

除了上述能夠獨立使用的模塊以外,Kraken 套件還包括了一系列的依賴和工具:服務器

特性

項目結構清晰

配置、內容、模板、路由邏輯放在不一樣位置,方便對文件進行組織和管理。app

  • config 配置
  • controllers 控制器
  • lib 庫文件和其餘代碼
  • locales 本地化文件
  • models 模型
  • public 公共資源
  • public/templates 模板
  • test 測試
  • index.js 應用程序入口文件

開發環境與生產環境的平衡

Kraken 的配置文件爲config/app.json,所有的應用配置均存放在此文件中,大大方便了開發者。config/middleware.json則是中間件配置文件。框架

開發環境與生產環境,一般在端口號、主機名等方面的參數設置會有不一樣,Kraken 容許建立單獨的適用於開發模式的配置文件,好比config/app.json 爲生產環境下的配置, config/app-development.json 爲開發環境下的配置,而後能夠經過自定義環境變量來控制須要加載的配置文件。開發者能夠在生產環境和開發環境進行快速切換!

安全

利用Lusca提供的安全保障。遵循OWASP安全原則,默認啓用以下請求和響應的頭文件:

其餘

  • 路由與邏輯分離:快速鎖定問題。
  • 模板共用: 服務器端和客戶端都使用Dust 做爲模板語言,方便代碼複用。
  • 本地化: Kraken 能夠在運行時基於請求上下文來加載內容,因此在模板渲染以前就能夠經過添加上下文來給用戶提供相應的本地語言支持。

代碼示例

Kraken官方給出的兩個代碼示例:

項目主頁

Kraken是一個開源項目。請訪問其Github頁面瞭解更多內容。

編輯:Segmentfault

相關文章
相關標籤/搜索