# 介绍

BizMDA是一个基于模型驱动架构的商业应用开发平台，支持多种技术开发框架，通过数据建模、视图建模、服务建模、菜单建模等针对商业应用的建模，来快速支持WEB应用、APP应用和小程序的开发，并且让商业应用建模模型与采用的开发语言、技术架构无关，支持业务代码和技术代码分离，将具体技术隔离出去，做到随时与技术发展与时共进，支持未来的平滑升级，。

## 为什么要做？

* 软件架构的快速变迁：软件架构从前端到后端的系统架构和技术能力一直在不断演化和迭代，前端从JSP、AJAX、jQuery到VUE，后端从Servlet、JSP、Struts、Spring MVC、Spring Boot到Spring Cloud，今天的新技术到明天就过时了。这导致很多系统在开发完成后，只能在原有体系上进行重构，维护成本高居不降，同时也无法使用最新的技术能力和技术架构。
* 软件建模的不变应万变：和软件架构的快速变迁不同，针对软件的E-R、UML等建模体系，反而比较稳定，十几年都没有太多的改变。但是软件建模只是在软件设计阶段的产物，在编码形成代码交付测试后，建模只体现在设计文档中，很难真正交付到后期的维护人员手中。
* 软件脚手架技术呼之欲出：软件脚手架的出现，就是为了让开发人员直接开始做开发，专注业务，而不用再花时间去选择架构、学习架构和重复造轮子。后端的Spring Boot，前端的Ant Design，就是为开发人员提供脚手架。
* 不断严谨的开发规范：大型项目的多人协作，导致在开发框架、代码规范、界面规范都有了更多更严谨的要求，没有工具只靠制度，并不能实现各类开发规范的落地执行。

## 功能

* 根据数据模型，生成数据操作服务、建库脚本等相关代码和配置文件。
* 根据服务模型，生成服务接口代码及相关配置文件。
* 根据视图模型，生成用户界面代码以及访问后端的数据操作接口和服务接口。
* 根据菜单模型，生成功能入口的呈现代码和相关配置文件。
* 支持WEB应用、APP应用和小程序的开发。
* 支持多种开发语言、开发框架和开发脚手架，并且能方便扩展到新的开发让不让、开发框架和开发脚手架。

![image](https://3030884131-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LdaOdujSuMaJObQcgyE%2F-LedCw8fML0EYJ7xGTdZ%2F-LdcJJWRaki2ev37qvR8%2Freadme-1.jpg?generation=1557617166841434\&alt=media)

## 安装

1. 从[BizMDA](https://github.com/szhengye/BizMDA)中Clone下载项目源码；
2. 在Eclipse或IDEA中作为MAVEN项目导入；
3. 设置`modal/mda.yml`中代码和资源文件输出目录：

   ```yaml
   sourcePath: tmp/src
   resourcePath: tmp/resource
   ```
4. 运行`src/com/bizmda/CodeGen.java`；
5. 你可以在你所设置的代码和资源文档输出目录中，看到生成的代码和资源文档。
6. 把生成的代码和资源文件，按要求放到对应应用框架的指定目录中，启动应用框架即可。

## 支持开发框架（脚手架）

1. [JeeCG-Boot快速开发框架](https://github.com/zhangdaiscott/jeecg-boot)：Jeecg-boot 是一款基于代码生成器的智能开发平台! 采用前后端分离技术:SpringBoot，Mybatis-plus，Shiro，JWT，Vue & Ant Design。

不断更新中...
