根据 2019 年 Stack Overflow 开发人员调查,大约 51% 的开发人员是全栈开发人员。那么,是什么让开发人员成为全栈开发人员?全栈开发人员是负责开发过程各个方面的人,从前端到后端,再到数据库,再到测试和调试。在这里,堆栈是指有助于应用程序开发的各种组件和工具。
在这个特性中,我们将讨论JHipster ,一个全栈开发平台,它可以让你减少 70% 的编写样板代码和设置库的工作。 JHipster 帮助您专注于业务逻辑,而不是花时间集成技术。它支持广泛的现代 Web 应用程序技术。让我们看看 JHipster 支持的不同技术。
- 客户端技术
- 服务器端技术
- 其他配套工具
- 部署选项
客户端技术
近年来,客户端技术从单页应用迅速发展到MVVM( Model-View-ViewModel )框架。这种技术进步对开发人员来说变得势不可挡。好消息是 JHipster 支持广泛的客户端技术。在这里,我们将讨论 JHipster 支持的重要客户端技术。
- 用户界面技术
- MVVM 框架
- 测试框架
- 其他工具
1. 用户界面技术
JHipster 支持各种 UI 技术。让我们来看看一些 UI 技术。
- HTML5和CSS3 : HTML5 是 HTML 的最新版本,具有新的元素、属性和行为。该版本提供了对连接性(Web Sockets 和 WebRTC)、离线存储、设备访问、2D/3D 图形(Canvas、WebGL 和 SVG)等功能的支持。而 CSS3 是 CSS 的最新版本。它提供了许多功能,例如媒体查询、flexbox、动画等。
- Bootstrap : Bootstrap 是世界上最流行的 UI 框架。它具有 SaaS 变量和 Mixins,还支持强大的 JavaScript 插件。
2. MVVM 框架
模型-视图-视图-模型 (MVVM) 是一种将 UI 与服务器端分开的架构模式。 JHipster 支持 Angular 和 React 框架。
A.角
Angular 是一个基于打字稿的 MVVM 框架,用于构建移动和桌面 Web 应用程序。 Angular 的一些特性如下:
- Angular 确保高性能、离线和零步安装。
- 使用新的组件路由器,它提供了自动代码拆分和更快的应用程序加载。
- 它为 UI 视图提供简单而强大的模板语法。
- 它使用来自 Cordova、 Ionic或 NativeScript 的策略用于移动应用程序。
- 它提供了一个强大的命令行工具,称为 Angular CLI,用于开发和维护 Angular 应用程序。
- 它还引入了提前编译(AOT)、延迟加载、反应式编程等概念。
B.反应
React 是一个用于开发用户界面的 JavaScript 库,它使用类似于 XML 的称为 JSX 的语法来编写 React 组件。它不是一个完全成熟的 MVVM 框架——它只处理 UI 的渲染。但是,React 允许与其他库交互以提供类似于 Angular 的功能。这些库包括 React Router、Redux、MobX 等。通常,JHipster 使用 TypeScript 来编写 React。但它也可以使用 JavaScript 进行编码。
3. 测试框架
由于客户端框架的显着增长,也出现了对客户端测试框架的需求。 JHipster 支持用于单元测试和端到端测试的各种客户端测试框架。它们如下:
- Jasmine:它是一个 JavaScript 代码测试框架; Jasmine 是一个行为驱动的单元测试框架,具有易于阅读的语法。
- Mocha: Mocha 是一个功能丰富的 JavaScript 代码测试框架。它提供了许多功能,例如全局变量泄漏检测、简单的异步支持、测试覆盖率报告、节点原生 ES 模块支持、节点调试器支持等。
- Quint: Quint 是一个功能强大且易于使用的 JavaScript 测试框架。它只需要对基于浏览器的项目进行最少的配置设置,对 Node.js 项目进行零配置设置。该框架提供了在任何地方运行测试的灵活性,并具有用于自定义断言的灵活 API。
- Protractor:它是为 Angular 和 Angular JS 应用程序开发的端到端测试框架。 Protractor建立在 WebDriverJS 之上,它提供了与应用程序的简单用户交互。而且,它可以在完成挂起的tasks.4后自动执行下一个任务。
4. 其他工具
JHipster 支持的其他一些工具是:
- Webpack:它是一个捆绑器,具有灵活的插件来捆绑您的脚本、图像、样式等。
- BrowserSync:它是一个省时的浏览器同步测试工具。 BrowserSync 包含了诸如文件更改时自动重新加载、同步 UI 交互等功能。通过与 Webpack/GulpJS 集成,您可以体验高效的开发设置。
- Karma: Karma 是一个执行 JavaScript 测试代码的测试运行器。它通过创建一个 web 服务器提供了一个高效的测试环境,它消除了设置配置负载的需要。支持Jasmine、Mocha等测试框架。
服务器端技术
随着服务器端技术的发展,开发人员能够使用各种工具和技术提供丰富的功能集。下面我们来看看JHipster支持的重要技术。
- 应用框架
- 安全
- 测试工具
- 构建工具
- 数据库选项
一、应用框架
随着 Spring 框架的兴起,对 JavaEE 的需求显着减少。此外,Hibernate 是另一个需要考虑的核心概念。让我们在下面讨论它们。
- Spring 框架: Spring 是最流行的Java Web 应用程序框架,它使Java现代、高效、反应式和云就绪。 Spring 使用控制反转 (IoC) 原理,提供依赖注入和应用程序上下文。 Spring 的突出特性之一是它以持久的方式结合了 IoC、面向切面编程 (AOP) 和技术抽象。 Spring 框架中的一些模块有 Spring Boot、Spring Security、Spring MVC、Spring data 等。
- Hibernate: Hibernate 是最著名的Java对象关系映射 (ORM) 工具,它将面向对象的域模型映射到关系数据库方案。它使用Java注释进行映射,还实现了Java Persistence API (JPA) 的数据访问层。 Hibernate 提供的其他一些功能包括:
- 域模型的全文搜索。
- 基于注释的约束。
- NoSQL 数据存储的域模型持久性。
- 命令行工具和 IDE 插件。
2. 安全
JHipster 支持多种安全机制。它们如下:
- JWT: JSON Web 令牌是一种开放的、符合行业标准的 RFC 7519 方法,可在两方之间提供安全性。在这里,服务器在成功验证客户端凭据后向客户端提供 JWT 令牌。
- 会话:这是一种传统的身份验证机制,其中服务器为成功登录的客户端创建并维护会话。JHipster 在这种传统机制之上提供了更多插件。
- OAuth2:它为应用程序提供了特定的授权和身份验证流程。与其他身份验证机制相比,OAuth2 更为复杂。在这里,它使用范围机制,用户访问可以被限制到应用程序的某些服务。 JHipster 使用 OpenID 连接来支持 OAuth2 机制。
3. 测试工具
JHipster 支持的测试工具如下。
- JUnit: JUnit 是一个Java测试框架,主要用于单元测试。但是当与 Spring Test 框架结合时,它也可以用于集成测试。
- Gatling:它是一种为您的 Web 应用程序执行负载测试的工具。 Gatling 使用 Scala DSL 编写测试规范,它是测试关键应用程序性能的必备工具。
- Cucumber:它是一个行为驱动开发 (BDD) 测试框架。 Cucumber主要用于验收测试。
4. 构建工具
Maven 和 Gradle 是 JHipster 支持的两个服务器端构建工具。
- Maven:它是一种软件项目管理工具,用于管理项目的构建、报告和文档。 Maven 使用项目对象模型 (POM) 的概念来说明构建过程。它有丰富的插件集。
- Gradle:它是一个加速开发人员生产力的构建工具。 Gradle 有助于快速构建、自动化和交付项目。它使用 Groovy DSL 来设置构建计划和依赖项。
5. 数据库选项
JHipster 为包括 SQL 和 NoSQL 数据库在内的各种数据库提供支持。
A. SQL 数据库
JHipster 支持的 SQL 数据库有 H2、MySQL、MariaDB、PostgreSQL、MS SQL 和 Oracle。下面我们将讨论其中的一些。
- MariaDB:它是一个开源关系数据库,可提供快速、可扩展和健壮的服务。 MariaDB 拥有丰富的存储引擎和插件生态系统。最新版本的 MariaDB 具有 GIS 和 JSON 功能。
- PostgreSQL: PostgreSQL 是另一种开源对象关系数据库系统,可提供可靠性、健壮性和性能。它支持高级索引技术,例如 GiST、GIN、覆盖索引、快速过滤器等。 PostgreSQL 提供了高安全性选项,包括 GSSAPI、SSPI、LDAP、SCRAM-SHA-256。 PostgreSQL 的其他特性之一是 JSON 对象存储,这使得将其用作混合模型成为可能。
- MS SQL:它是一个企业数据库系统,需要付费许可。 MS SQL 是智能和关键任务应用程序的流行选择。
- Oracle:它提供了一种用于访问和维护数据的高性能架构。 Oracle 具有企业就绪特性,例如分片、复制、高可用性等。
B. NoSQL 数据库
JHipster 支持的 NoSQL 数据库如下:
- MongoDB: MongoDB 是一个基于文档的分布式数据库。它以 JSON 格式存储数据,使其更加强大和富有表现力。它支持聚合和其他功能,例如基于地理的搜索、图形搜索和文本搜索。
- Cassandra:Cassandra是一种流行的 NoSQL 数据库,因为它采用了基本的架构选择。其线性可扩展性和容错功能使其最适合任务关键型应用程序。
- Elasticsearch: Elasticsearch 是一个 NoSQL 数据库,但由于其索引能力和性能,它主要用作搜索引擎。
其他开发工具
1. GIT
GIT 是用于源代码管理的开源分布式版本控制系统。它具有多种功能,包括分支和合并、方便的暂存区、多个工作流等。 JHipster 使用 GIT 进行应用程序升级以及 Node.js 和 NPM 生态系统的顺利运行。
2. Node.js
Node.js 是一个 JavaScript 运行时环境,由 NPM 管理。 JHipster CLI 需要 Node.js 来运行应用程序,因为它依赖于 NodeJS 应用程序。应用程序中使用的许多工具也需要 NodeJS。
3. 码头工人
Docker 是一种开源技术,可提供操作系统级虚拟化或容器化。它有助于创建易于构建、部署、版本化和共享的容器。它包含应用程序在主机操作系统上运行所需的依赖项。因此,它比虚拟机更轻。与 VM 相比,Docker 允许在相同硬件上运行更多应用程序。
部署选项
1. Heroku
Heroku 是一个用于部署、管理和扩展应用程序的云平台。它专注于应用程序而不是容器,并支持广泛的编程语言。 JHipster 使用Heroku 子生成器将 JHipster 应用程序部署和更新到 Heroku 云平台。
2. 云铸造
Cloud Foundry 是一个多云计算平台,具有基于容器的架构。它可以运行使用任何编程语言开发的应用程序,并且不会中断您当前的工作流程。应用程序是在 JHipster 子生成器的帮助下部署的。
3. 亚马逊网络服务
AWS 是一个云计算平台,提供平台、软件和基础设施即服务。 AWS 的 Elastic Beanstalk 是一个易于使用的平台,用于部署和扩展您的应用程序。使用子生成器,JHipster 可以将应用程序部署到 AWS。
JHipster 在全栈开发人员中越来越流行。使用 JHipster,您可以更多地关注业务逻辑,并且它支持广泛的 Web 应用程序技术。它有400 多个贡献者——Google、Redhat、Heroku是一些官方贡献者。享受与 JHipster 一起编码的乐趣,并成为各行各业的高效达人。