91 Star 718 Fork 230

GVPcanonical-entropy / nop-entropy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
index.md 5.42 KB
一键复制 编辑 原始数据 按行查看 历史
欧雷 提交于 2024-04-02 15:54 . 修复部分文档标题

概览

Nop平台包含大量创新设计,一开始接触可能会感觉内容过多。但实际上,Nop平台内部设计全部遵循可逆计算原理,它的一致性非常高,只要掌握了可逆计算的基本理论,即可通过查看XDef元模型来直接获知关于模型的大部分知识。

B站视频: Nop平台开发,可以按照合集中的顺序观看

初次接触时建议按照以下顺序浏览一遍文档:

快速入门

介绍了基于数据模型进行系统开发的整体流程。 可以参考视频 使用Nop平台开发商品列表页面的完整示例

关于Nop平台的定位和发展规划,参见why-nop.md

XLang语言

XLang语言是Nop平台实现可逆计算的核心技术,它包含XDef, XScript, Xpl等一系列子语言,需要有一个整体认知才容易理解Nop平台的其他部分。 特别是 XDSL: 通用的领域特定语言设计中介绍了Nop平台中XDSL领域特定语言的共性语法特征,是理解Nop平台定制化开发的关键。

代码生成器

如何使用以及扩展Nop平台的代码生成器。Nop平台的代码生成器可以在Nop平台之外使用,可以定制生成模板,用于生成其他框架以及其他语言的代码。

架构设计

介绍了Nop平台内部众多模块之间的依赖关系,实现可逆计算原理的最核心模块只有nop-commons、nop-core以及nop-xlang等少数几个模块

系统内部模型文件的路径模式和自动加载顺序说明,参见std-resource-path.md

核心代码导引

介绍每个模块中的核心代码所在的Java类,以及每个类大致的功能

Excel模型

除了使用平台内置的数据模型,API模型等,我们还可以利用Nop平台的机制定制实现专属于自己的Excel模型。比如我们可以用Excel模型来实现网络协议包的格式定义等。

IoC容器

AOP相关原理,参见aop.md

Config配置管理

GraphQL

Nop平台采用GraphQL引擎来实现后台服务,对外同时暴露GraphQL接口以及传统的REST接口。所有的REST服务都能够支持GraphQL的结果字段选择能力。 类似于SpringCloud以及Dubbo框架的分布式RPC服务的实现参见rpc.md,它的设计原理参见rpc-design.md

NopGraphQL可以暴露为Grpc接口,参见grpc.md

ORM框架

前端界面开发

前端我们的做法是根据XView视图模型生成百度AMIS框架的JSON描述。我们在AMIS的基础上也为它增加了一些扩展,可以在AMIS页面中直接使用Vue组件。 AMIS的文档参见 AMIS Docs

权限配置

可以控制到按钮级别的操作权限,也可以实现列级别的数据权限控制,可以针对不同的角色应用不同的过滤条件。 Nop平台内置了sso支持,可以集成keycloak单点认证服务。

开发调试

出错的时候如何进行错误诊断,如何打印调试信息。

常见开发任务

汇集一些常见的开发任务的实现方式,例如如何增加一个字段,如何为列表增加过滤条件等。 常见的一些问题解决可以参见faq.md

自动化测试

Nop平台内置了一个自动化测试框架,可以通过录制回放机制自动实现测试用例,无需手工编写数据初始化和结果验证代码。

报表引擎

采用Excel作为设计器配置中国式报表: report.md 采用Word作为设计器配置导出报表: word-template.md

无代码开发

Nop平台支持无代码开发,无需通过编码、打包的过程,在线就可以设计数据模型,并编写后台服务函数。 当无代码开发复杂到一定程度,我们可以还可以平滑的迁移到代码生成方案,使用高代码开发的方式。

与其他低代码平台的对比

Nop平台的设计与传统的低代码平台有着非常大的差异,可以做到传统低代码平台无法做到的灵活性和可扩展性。

Nop平台如果不作为低代码平台来使用,也可以作为类似于SpringCloud的开发框架来使用。Nop平台与Spring框架的对比参见nop-vs-spring

定制化开发

基于Nop平台开发的产品,无需做任何特殊的设计,即可实现Delta差量化定制。例如基于Nop平台开发的银行核心应用产品在各个银行部署实施的时候,可以做到完全不修改基础产品的源码, 对数据库结构、业务逻辑、前端界面等进行全方位的定制化开发,满足客户最特异性的需求。交付给客户的基础产品就是一系列Jar包,无论调整后台还是前台逻辑都不需要修改Jar包中的源码。

Java
1
https://gitee.com/canonical-entropy/nop-entropy.git
git@gitee.com:canonical-entropy/nop-entropy.git
canonical-entropy
nop-entropy
nop-entropy
master

搜索帮助