JHipster是一个开源平台,用于生成,开发和部署Spring Boot + Angular / React / Vue Web应用程序。Github上有超过15000个星星,它是Spring Boot最受欢迎的代码生成框架。但是,是否太过于大肆宣传?还是生成的代码太难维护?还是无法立即投入生产了?
首先要注意的是,JHipster本身并不是一个单独的框架。它使用yeoman和.jdl文件以便在Spring Boot中为后端生成代码,并在Angular或React或Vue中生成前端代码。在最初生成项目之后,您可以选择使用生成的代码而无需再次运行JHipster命令,或者使用JHipster来逐步增长项目并开发新功能。
JDL到底是什么?
JDL是特定于JHipster的域语言,您可以在其中使用用户友好的语法在一个文件(或多个文件)中描述所有应用程序,部署,实体及其关系。
您可以使用我们的在线 JDL-Studio 或 支持使用JDL文件的 JHipster IDE插件/扩展之一。
用于Blog应用程序的简单JDL文件示例:
entity Blog { |
(banq注:这些是数据库表的定义,生成的代码是一种失血模型,DTO,失去业务价值。违背DDD)
使用哪些技术?
在后端,拥有以下技术:
- Spring Boot作为主要的后端框架
- Maven或Gradle进行配置
- Spring Security作为安全框架
- Spring MVC REST + Jackson进行REST通信
- 用于对象关系映射的Spring Data JPA + Bean验证
- 用于数据库更新的Liquibase
- MySQL,PostgreSQL,Oracle,MsSQL或MariaDB作为SQL数据库
- MongoDB,Counchbase或Cassandra作为NoSQL数据库
- Thymleaf作为模板引擎
- 可选的 Elasticsearch支持,如果您想在数据库之上具有搜索功能
- 用于Web套接字通信的可选Spring WebSockets
- 可选的Kafka支持作为发布-订阅消息系统
在前端方面,使用了以下技术:
- Angular或React或Vue作为主要的前端框架
- 使用Twitter Bootstrap进行响应式Web设计
- 与现代浏览器兼容的HTML5 Boilerplate
- 全面的国际化支持
- 使用NPM安装新的JavaScript库
- 使用Webpack构建,优化和实时重新加载
- 用Jest和Protractor进行测试
- Sass对CSS设计的可选支持
如何开始?
- 前提要求:Java, Git 和 Node.js。
- 安装JHipster npm install -g generator-jhipster
- 创建一个新目录并进入 mkdir myApp && cd myApp
- 运行JHipster并按照屏幕上的说明进行操作 jhipster
- 使用JDL Studio为实体建模 并下载结果 jhipster-jdl.jh 文件
- 生成您的实体 jhipster import-jdl jhipster-jdl.jh
- 运行./mvnw以启动生成的后端
- 运行npm start以启动具有实时重新加载支持的前端
生成的代码和应用程序看起来如何?
如果您只想查看示例生成的应用程序而无需启动整个框架,则可以查看此Github官方仓库以获取最新的示例代码:https : //github.com/jhipster/jhipster-sample-app。
优缺点都有什么
要记住的重要一点是,JHipster并不是解决所有问题的“灵丹妙药”,也不是所有新项目的最佳解决方案。作为一名优秀的软件工程师,您将不得不权衡该平台的优缺点,并决定何时使用它以及何时使用另一种方法更好。将JHipster用于生产项目后,这些是我所经历过的一些利弊:
优点
- 通过许多预先配置的技术轻松引导新项目
- JHipster在后端和前端开发中几乎始终遵循最佳实践和最新趋势
- 开箱即用的登录,注册,用户管理和监视
- 用于生成项目的向导,项目中仅包含您选择的技术
- 定义自己的JDL文件后,将为您的实体生成所有模型,存储库,服务和控制器类,以及集成测试。当您希望尽快进行功能开发时,这可以节省大量的项目乞讨时间
缺点
- 如果您不熟悉所生成项目中使用的技术,那么它可能会令人不知所措,并且很容易迷失在许多不同技术的混合中
- 在最初的项目之后使用JHipster并不是一个平稳的体验。类和Liquibase脚本正在被覆盖,更改初始JDL模型时必须非常小心。或者,您可以决定在最初生成项目后不使用JHipster继续操作
- 从端点返回的REST响应并不总是与业务需求相对应,通常您必须手动修改初始的JHipster REST响应
- 并非所有可用选项都处于同一级别,JHipster正在使用和配置的某些技术比其他技术更为精炼。如果您决定使用社区模块,尤其如此
什么样的项目比较合适?
综上所述,重要的是要了解,有些项目可以从JHipster中受益匪浅,而有些项目如果不使用此平台,则会更好。
根据我的经验,一个不错的候选人是一个未开发的项目,该项目有望快速交付许多功能。从第一天开始,JHipster将极大地提高工作效率,并减少您需要编写的样板代码。这样一来,您就可以真正快速地进行功能开发。这对于期限紧迫的新项目,概念证明,内部项目,黑客马拉松和初创公司非常有用。
另一方面,不太理想的情况是,如果您已经启动并运行了一个项目,那么在这种情况下,JHipster将无能为力。如果应用程序具有很多特定的业务逻辑并且不是简单的CRUD应用程序,例如,一个AI项目,一个聊天机器人或一个不适合或不支持这些新技术的遗留生态系统,则为另一种情况。
JHipster,值得一试吗?
只有一种确定JHipster是否值得用于下一个项目的可靠方法,那就是自己尝试一下并尝试使用JHipster提供的不同功能和配置。
充其量,您将为下一个项目找到一个新的框架,并在下次启动项目时省去了很多工作。最糟糕的是,您将了解后端和前端的最新趋势,并从庞大的社区中学习一些最佳实践。