Kraken:paypal开源的Web开发框架

简介: PayPal最近发布了一款Node.js Web开发框架——Kraken。Kraken基于Express。Express是目前Node.js上最流行的MVC模式的Web开发框架。Express提供的一系列强大特性可以帮助开发者快速创建各种Web应用。而Kraken在Express的基础上提供了更加稳健的功能集,包括本地化、环境配置,同时更加注重应用程序安全。

PayPal最近发布了一款Node.js Web开发框架——Kraken

Kraken基于Express。Express是目前Node.js上最流行的MVC模式的Web开发框架。Express提供的一系列强大特性可以帮助开发者快速创建各种Web应用。而Kraken在Express的基础上提供了更加稳健的功能集,包括本地化、环境配置,同时更加注重应用程序安全。


为什么会有Kraken

之前,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 框架诞生了。


下面我们简单介绍下 Kraken 的框架结构和特点,希望能对大家有所帮助。


Kraken 框架套件

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

  • lusca:支持 Express的安全模块
  • makara:支持 Dust.js的国际化i18n模块
  • Adaro:支持 Express 的Dust.js 视图渲染器
  • Kappa:NPM 代理插件


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


特性

项目结构清晰

配置、内容、模板、路由逻辑放在不同位置,方便对文件进行组织和管理。

  • 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

相关文章
|
1月前
|
开发框架 JavaScript 前端开发
如何选择合适的Web开发框架?
【9月更文挑战第1天】如何选择合适的Web开发框架?
60 1
|
2天前
|
Web App开发 JavaScript 前端开发
使用Node.js和Express框架构建Web服务器
使用Node.js和Express框架构建Web服务器
|
12天前
|
Web App开发 JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的深度整合
【9月更文挑战第28天】在现代Web开发领域,Node.js和Express框架的结合已成为打造高性能、易扩展应用的黄金组合。本文将深入探讨如何利用这一技术栈优化Web应用架构,提供具体实践指导,并分析其性能提升的内在机制。通过代码示例,我们将展示从基础搭建到高级功能的实现过程,旨在为开发者提供一条清晰的学习路径,以实现技术升级和项目效率的双重提升。
26 3
|
16天前
|
JSON 安全 JavaScript
Web安全-JQuery框架XSS漏洞浅析
Web安全-JQuery框架XSS漏洞浅析
97 2
|
16天前
|
开发框架 JSON 缓存
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
在数字化浪潮推动下,RESTful API成为Web开发中不可或缺的部分。本文详细介绍了在Python环境下如何设计并实现高效、可扩展的RESTful API,涵盖框架选择、资源定义、HTTP方法应用及响应格式设计等内容,并提供了基于Flask的示例代码。此外,还讨论了版本控制、文档化、安全性和性能优化等最佳实践,帮助开发者实现更流畅的数据交互体验。
37 1
|
1月前
|
Web App开发 前端开发 JavaScript
Web前端项目的跨平台桌面客户端打包方案之——CEF框架
Chromium Embedded Framework (CEF) 是一个基于 Google Chromium 项目的开源 Web 浏览器控件,旨在为第三方应用提供嵌入式浏览器支持。CEF 隔离了底层 Chromium 和 Blink 的复杂性,提供了稳定的产品级 API。它支持 Windows、Linux 和 Mac 平台,不仅限于 C/C++ 接口,还支持多种语言。CEF 功能强大,性能优异,广泛应用于桌面端开发,如 QQ、微信、网易云音乐等。CEF 开源且采用 BSD 授权,商业友好,装机量已超 1 亿。此外,GitHub 项目 CefDetector 可帮助检测电脑中使用 CEF
129 3
|
12天前
|
JSON JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的完美结合
【9月更文挑战第28天】在现代Web开发中,Node.js和Express框架的结合为创建高性能、易扩展的应用提供了强有力的支持。本文将深入探讨如何利用这两种技术构建一个简单但功能强大的Web服务,同时提供代码示例以加深理解。
|
2月前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
75 0
|
2月前
|
数据库 开发者 Java
Hibernate映射注解的魔力:实体类配置的革命,让你的代码量瞬间蒸发!
【8月更文挑战第31天】Hibernate 是一款出色的对象关系映射框架,简化了 Java 应用与数据库的交互。其映射注解让实体类配置变得直观简洁。本文深入剖析核心概念与使用技巧,通过示例展示如何简化配置。
25 0
|
2月前
|
数据库 开发者 Java
数据战争:Hibernate的乐观与悲观锁之争,谁将主宰并发控制的王座?
【8月更文挑战第31天】在软件开发中,数据一致性至关重要,尤其是在多用户并发访问环境下。Hibernate 作为 Java 社区常用的 ORM 框架,提供了乐观锁和悲观锁机制来处理并发问题。乐观锁假设数据不易冲突,通过版本号字段 (`@Version`) 实现;悲观锁则假定数据易冲突,在读取时即加锁。选择哪种锁取决于具体场景:乐观锁适合读多写少的情况,减少锁开销;悲观锁适合写操作频繁的场景,避免数据冲突。正确应用这些机制可提升应用程序的健壮性和效率。
28 0