AI-Code代码智能化生成框架 ai代码怎么写
liebian365 2024-10-28 17:17 9 浏览 0 评论
代码智能化生成框架,平台化管理生产模板,模板根据需要可以上传,并在生成时自己选择,项目提供webUI方式,根据框架模块化管理,需要那些选择后自动生成;提供模板开发接口自由定义自己的模板,最终完成AI+模板=70%的代码量,平台默认携带Spring为核心的各种框架整合细节请看readme介绍。根据需要可以选择性生成,支持docker 启动 。
模板分享地址: https://gitee.com/helixin/aicode_template sql脚本中板焊了模板,会在你构建项目时自动拉取到本地,构建代码完毕后将会删除,你可以开源你的模板到这个连接中,也可以自己建立私库自己用都可以,目的就是让重复的 代码写一次后用模板技术和抽象思维服务更多的项目
以上框架为基本常用的框架,目前只需要准备好你的sql脚本在此项目页上进行创建即可,然后aicode 会自动帮你把数据库创建出来用于反向生成代码使用, 自动从你的模板仓库中下载框架,当然也可以是用我们已经开发好的,代码会从dao->service->ctrl->frontend 一条龙生成,接口自动根据规则对接完 毕,也就是说你可以生成后直接运行你的项目代码,另外项目代码将会根据你的需要配置上git svn 地址后自动提交到对应的仓库中省去手工拷贝的麻烦,只 需要在开发工具中 git clone git://xxxxx.git即可,如果模板比较优秀可以节省代码50%左右无需再开发,比如包含了:增,删,查,改,分页,条 件查询,关联查询,关联分页查询等等,你需要关心的只是你的逻辑关系是否设置完整,模型关系是否设置完整用于生成时系统进行自动化,我们提供了web-ui管理界面,只需要登录账户即可 完成对代码的生成管理,你可以通过页面来完成模型关系的设置,以及对显示属性的设置,快速完成从数据库层到页面的定制化开发。
特点
ai-code 与其他开源的完整项目不同点在于技术整合框架的抽象,mvc的模型抽象,我们有这样的场景,有新的业务需求,用同样的技术框架,通常做法可能就是找一个项目然后删删改改提取 出来一个较为干净的框架,然后把新的业务模型,实体类,接口等等重新声明,创建在此基础上再做很多CRUD的编码,有时候我们很反感重复这些,但是又不得不做,通常做这些毫无意义又无聊 同意请举手,于是乎有没有办法做一个工具出来让新的业务模型设计好后拿到sql脚本 通过工具可以选择各种不同的技术框架组合,就像spring boot一样整合技术在一起,但是又 可以自动把mybatis mapper,dao/dto,service,ctrl,ui等等通用功能自动开发好呢?把常用的工具,加密算法等等通用的自动集成进去呢?比如swagger,gradle,maven等等 答案是肯定的ai-code就是这个思路,整合有给你定制的可能,业务随意变化,只要拿到sql脚本一切就是动动手指,点击生成,再也不用搞来搞去那些重复的不能再重复的无聊工作了。 这就是ai-code的基本思路和思想;
再来看下通常的开源思路是什么呢? 完整项目,比如RBAC模型下的管理系统,有权限,区域,部门,日志等等,这些无可厚非确实通用,但毕竟如果要和自己的项目融合是要调整的,而且编码习惯不同, 设计规则可能不满意,维护过慢等等问题,但是也是可以使用的,于是乎就有了各种 商城开源,权限管理开源,区域管理开源,可以关注学习没问题,非常棒,甚至直接用。
两种思路从不同的角度来看待重用问题,ai-code 只希望抛砖引玉,让抽象思维,整合思维,服务未来思维体现出来,期待更好地项目出现,基于ai-code,期待大家贡献 技术模板,让那个更多人从中受益,感谢大家的贡献。
使用方法
连接数据库:
-首先要做的就是建立ai_code的数据库(推荐数据库格式:编码为utf8mb4 排序为 utf8mb4_general_ci),建议使用mysql,脚本请用最新的版本日期,你可以在项目根目录下sql/aicodexxxxx.sql中找到合适的 sql脚本,比如创建数据库名为ai_code,数据库的ip为192.168.1.220,账户密码为username=root,password=xxxxx;
-找到项目下 AI/src/main/resources/jdbc.properties 文件将数据库链接修改成刚才初始化的数据库ip
jdbc.url=jdbc:mysql://192.168.1.220:3306/ai_code?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=round&allowMultiQueries=true jdbc.username=root jdbc.password=xxxxx
修改完毕后可以直接启动,启动默认为8080端口 浏览器中打开输入:http://127.0.0.1:8080/index.html 默认账户:admin 888888尝试登录,你可以在数据库中修改次账户数据表明为account
参考已有项目的效果
模板仓库添加
在你登陆后你可以添加自己的模板仓库
创建项目
有了模板之后可以创业见一个项目,然后按照下一步的指引操作下去即可完成操作 (此处为gif动画需要你登录账户才能看,osc的限制)
构建项目
构建很简单,点击即可自动完成对项目的生成,下载模板,生成代码,提交到git仓库,这个地方的日志输出是websocket,存储文档log可以反复查看 十分方便 (此处为gif动画需要你登录账户才能看,osc的限制)
之后点击构建项目 按钮就开始进行想的自动构建了
启动项目
当你生成项目代码后你可以在你的git svn仓库中找到源码,也可以直接下载源码自行导入到开发工具中,然后运行,这里需要注意的是配置文件和 数据库的连接一定要修改,否则默认的将无法使用,一下为测试演示的界面图供参考 代码界面和运行启动项目 我用的是Idea 最好用的java开发工具,没有之一,开发用就用最好的工具,不将就
swagger界面如下,我只用了一个简单的表来演示,你的要有多复杂就有多复杂均可以实现
如果你体验了高效的代码生成和抽象思维把规律的重复的代码进行模板化后可以服务你未来更久的时间,那时候就体验到,编程除了用coding还可以用设计 来编码,所谓武功至高境界就是无招胜有招 就是这个意思,让代码服务你更久才有时间学习更多的技术和知识,让今天的一行代码在未来体现出更大价 值才是我们要思考和做的,期待大家的分享和模板的壮大,目前正在整理rabbitmq, kafka, rocketmq的分布式,微服务框架模板整合,后面将会 更好玩哦,模板链接再次推荐可以参考:https://gitee.com/helixin/aicode_template 祝你和你的团队编程愉快,coding让世界更美好。
docker 启动方式(推荐)
docker 依赖dockerhub 镜像(意思是你的网络要支持访问哦,大家明白哈,搞不定的加群),大家可以通过docker的常规命令pullrun 即可,注意:docker镜像 中不包含数据库,数据库脚本请从项目中下载进行初始化,数据库名称请使用ai_code命名,以下docker命令操作 dockerhub 详细操作说明 https://hub.docker.com/r/hegaoye/aicode
直接使用下面的命令即可搞定,数据库与程序自动link在一起,方便简单
#检出数据库 docker pull hegaoye/mysql:1.0-beta #启动数据库 设置 --hostname=aicode-db 用于link方式连接 docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=aicode --hostname=aicode-db --name aicode-db --restart always -d hegaoye/mysql:1.0-beta --lower_case_table_names=1 #搜索查看aicode的镜像是否存在 docker search aicode #拉取aicode的镜像 hegaoye/aicode:1.0-beta docker pull hegaoye/aicode:1.0-beta #启动容器,注意 host,username,passowrd 要进行修改成自己的mysql主机 使用link 连接aicode-db docker run --link aicode-db:aicode-db -e host=aicode-db:3306 -e username=root -e password=aicode -p 8080:8080 --name aicode --restart always -d hegaoye/aicode:1.0-beta #查看日志 docker logs --tail 1000 -f aicode #重启,关闭,启动容器命令 docker restart|stop|start aicode
编写模板说明:
模板语法采用freemarker编写,定义了一个实体类可以在项目io.aicode.base.core.TemplateData 下找到此类,大致的内置变量可以如下图
如果你需要编写自己的模板按照这里面的规则即可完成编写,如果需要参考已有模板请看顶部的连接分享你可以根据自己的需求修改一个出来然后也分享出来让大家 享受你的技术带来的便捷。
UML参考
uml信息可以自己打开vpp文件查看详细,仅仅放两张用于参考
模板长啥样?
模块化模板样貌
Ctrl模板类
mybatis sql 模板注意观察有关联关系哦
前端模板抽离样貌
项目技术点
- spring mvc
- mybatis
- freemarker
- websocket
- java reflection
- angular framework
- git,svn client
- jwt
- gradle
注意
关于自己的sql脚本比如如下
/*==============================================================*/ /* Table: goods */ /*==============================================================*/ create table goods ( id bigint not null auto_increment, code varchar(64) not null comment '编码', name varchar(32) comment '商品名', stock bigint comment '库存', status varchar(32) comment '状态', primary key (id, code) ); alter table goods comment '产品'; /*==============================================================*/ /* Table: "order" */ /*==============================================================*/ create table "order" ( id bigint not null auto_increment, code varchar(64) not null comment '编码', order_no varchar(32) not null comment '订单号', primary key (id, code, order_no) ); alter table "order" comment '订单';
这个sql在执行中失败,失败的原因在于 "order" 双引号不合法将无法执行,所以请检查后修改为order 的合法sql语句,最好在生成前执行验证sql 脚本的正确性,比如下面的
/*==============================================================*/ /* Table: order */ /*==============================================================*/ create table `order` ( id bigint not null auto_increment, code varchar(64) not null comment '编码', order_no varchar(32) not null comment '订单号', primary key (id, code, order_no) ); alter table `order` comment '订单';
去处后即可合法使用,一定要保障sql可以正常执行再用来跑代码,否则会失败
子项目
前端参考地址 https://gitee.com/helixin/ai-code-frontend
设计文档地址 https://gitee.com/helixin/AI-Code-Doc
模板仓库地址 https://gitee.com/helixin/aicode_template
docker教程 https://hub.docker.com/r/hegaoye/aicode
git地址:https://gitee.com/helixin/AI-Code
相关推荐
- 快递查询教程,批量查询物流,一键管理快递
-
作为商家,每天需要查询许许多多的快递单号,面对不同的快递公司,有没有简单一点的物流查询方法呢?小编的回答当然是有的,下面随小编一起来试试这个新技巧。需要哪些工具?安装一个快递批量查询高手快递单号怎么快...
- 一键自动查询所有快递的物流信息 支持圆通、韵达等多家快递
-
对于各位商家来说拥有一个好的快递软件,能够有效的提高自己的工作效率,在管理快递单号的时候都需要对单号进行表格整理,那怎么样能够快速的查询所有单号信息,并自动生成表格呢?1、其实方法很简单,我们不需要一...
- 快递查询单号查询,怎么查物流到哪了
-
输入单号怎么查快递到哪里去了呢?今天小编给大家分享一个新的技巧,它支持多家快递,一次能查询多个单号物流,还可对查询到的物流进行分析、筛选以及导出,下面一起来试试。需要哪些工具?安装一个快递批量查询高手...
- 3分钟查询物流,教你一键批量查询全部物流信息
-
很多朋友在问,如何在短时间内把单号的物流信息查询出来,查询完成后筛选已签收件、筛选未签收件,今天小编就分享一款物流查询神器,感兴趣的朋友接着往下看。第一步,运行【快递批量查询高手】在主界面中点击【添...
- 快递单号查询,一次性查询全部物流信息
-
现在各种快递的查询方式,各有各的好,各有各的劣,总的来说,还是有比较方便的。今天小编就给大家分享一个新的技巧,支持多家快递,一次能查询多个单号的物流,还能对查询到的物流进行分析、筛选以及导出,下面一起...
- 快递查询工具,批量查询多个快递快递单号的物流状态、签收时间
-
最近有朋友在问,怎么快速查询单号的物流信息呢?除了官网,还有没有更简单的方法呢?小编的回答当然是有的,下面一起来看看。需要哪些工具?安装一个快递批量查询高手多个京东的快递单号怎么快速查询?进入快递批量...
- 快递查询软件,自动识别查询快递单号查询方法
-
当你拥有多个快递单号的时候,该如何快速查询物流信息?比如单号没有快递公司时,又该如何自动识别再去查询呢?不知道如何操作的宝贝们,下面随小编一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号若干...
- 教你怎样查询快递查询单号并保存物流信息
-
商家发货,快递揽收后,一般会直接手动复制到官网上一个个查询物流,那么久而久之,就会觉得查询变得特别繁琐,今天小编给大家分享一个新的技巧,下面一起来试试。教程之前,我们来预览一下用快递批量查询高手...
- 简单几步骤查询所有快递物流信息
-
在高峰期订单量大的时候,可能需要一双手当十双手去查询快递物流,但是由于逐一去查询,效率极低,追踪困难。那么今天小编给大家分享一个新的技巧,一次能查询多个快递单号的物流,下面一起来学习一下,希望能给大家...
- 物流单号查询,如何查询快递信息,按最后更新时间搜索需要的单号
-
最近有很多朋友在问,如何通过快递单号查询物流信息,并按最后更新时间搜索出需要的单号呢?下面随小编一起来试试吧。需要哪些工具?安装一个快递批量查询高手快递单号若干怎么快速查询?运行【快递批量查询高手】...
- 连续保存新单号功能解析,导入单号查询并自动识别批量查快递信息
-
快递查询已经成为我们日常生活中不可或缺的一部分。然而,面对海量的快递单号,如何高效、准确地查询每一个快递的物流信息,成为了许多人头疼的问题。幸运的是,随着科技的进步,一款名为“快递批量查询高手”的软件...
- 快递查询教程,快递单号查询,筛选更新量为1的单号
-
最近有很多朋友在问,怎么快速查询快递单号的物流,并筛选出更新量为1的单号呢?今天小编给大家分享一个新方法,一起来试试吧。需要哪些工具?安装一个快递批量查询高手多个快递单号怎么快速查询?运行【快递批量查...
- 掌握批量查询快递动态的技巧,一键查找无信息记录的两种方法解析
-
在快节奏的商业环境中,高效的物流查询是确保业务顺畅运行的关键。作为快递查询达人,我深知时间的宝贵,因此,今天我将向大家介绍一款强大的工具——快递批量查询高手软件。这款软件能够帮助你批量查询快递动态,一...
- 从复杂到简单的单号查询,一键清除单号中的符号并批量查快递信息
-
在繁忙的商务与日常生活中,快递查询已成为不可或缺的一环。然而,面对海量的单号,逐一查询不仅耗时费力,还容易出错。现在,有了快递批量查询高手软件,一切变得简单明了。只需一键,即可搞定单号查询,一键处理单...
- 物流单号查询,在哪里查询快递
-
如果在快递单号多的情况,你还在一个个复制粘贴到官网上手动查询,是一件非常麻烦的事情。于是乎今天小编给大家分享一个新的技巧,下面一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号怎么快速查询?...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)