返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

阿里Qoder IDE进行AI辅助编程的简单验证

[复制链接]
链载Ai 显示全部楼层 发表于 3 天前 |阅读模式 打印 上一主题 下一主题

今天继续和验证AI辅助编程工具。这次验证的是阿里前端时间推出的Qoder编程工具,这个工具实际是没法选择外部大模型的,应该是对接的阿里本身的QWen大模型。
当然对于验证的内容,还是上一篇文章谈到的一个周报填报系统的AI辅助开发。在这里实际不算完全意义上的Vibe Coding,我们的思路仍然是参考上下文工程和Spec Coding的思路,基于AI软件工程的构建逻辑。让AI先生成相应的需求文档,数据库设计文档,接着再生成完整的界面原型。
这个界面原型不是简单的静态UI原型,而是也是Python+Flask实现的一个可运行的原型,只是不连接数据库进行实际的数据查询和存储。
对于完整的提示语大家可以参考上面那篇文章。在生成完整后的整体的代码框架目录结构如下:
对于需求,我的要求是按一级模块进行拆分,将我的原始文字描述需求转变为独立的Markdown格式的需求文章。因此AI将其拆分为了基础配置,系统收益,周报模板配置,系统管理,周报填报等独立的需求文件。
在这里我们可以看下系统首页的需求文档描述内容:
#系统首页功能需求文档##1.概述系统首页是用户登录后的主要工作界面,提供周报填报的统计分析信息、系统公告、待办事项和快捷操作入口。首页采用门户化设计,包含顶部导航栏、左侧菜单栏和中间内容展示区域。##2.整体布局设计###2.1布局结构系统首页采用经典的管理系统布局结构:```┌─────────────────────────────────────────────┐│顶部导航栏(TopBar)│├─────────────┬───────────────────────────────┤││││左侧菜单│主内容区域││(Sidebar)│(MainContent)│││││││└─────────────┴───────────────────────────────┘```###2.2顶部导航栏(TopBar)####2.2.1组件构成-**左侧区域**:系统Logo和标题"周报管理系统"-**右侧区域**:通知图标、用户信息下拉菜单####2.2.2功能要求1.**系统标识**:-显示系统Logo(文档图标)-显示系统名称"周报管理系统"-点击可返回首页2.**通知功能**:-显示通知铃铛图标-显示未读通知数量红点提示-点击展开通知列表(预留功能)3.**用户菜单**:-显示用户头像、姓名和职位-下拉菜单包含:-个人信息-系统设置-退出登录###2.3左侧菜单栏(Sidebar)####2.3.1菜单结构```📱系统首页📋周报管理├──📝待我填报├──✅我填报的周报├──👤待我审核└──📄周报查看🗂️模板管理├──📊周报模板列表└──➕新增周报模板⚙️系统管理├──👥用户管理├──🏢部门管理├──🏷️数据字典├──🎭角色管理└──📋菜单管理🔧系统设置├──📢系统公告└──📜操作日志```####2.3.2功能要求1.**菜单搜索**:顶部提供菜单搜索框,支持模糊搜索2.**分组显示**:菜单按功能模块分组,使用分组标题3.**图标标识**:每个菜单项配备图标,增强视觉识别4.**状态提示**:显示待办数量徽章(如待我填报5个)5.**响应式设计**:移动端可收缩菜单,提供切换按钮6.**权限控制**:根据用户角色动态显示可访问菜单####2.3.3交互设计-鼠标悬停时菜单项背景色变化-当前选中菜单项左侧显示蓝色边框标识-支持键盘快捷键导航-底部显示系统版本信息##3.主内容区域功能###3.1页面标题区-**主标题**:"系统首页"-**副标题**:欢迎语,如"欢迎回来,张三!这里是您的周报管理概览。"###3.2统计卡片区域####3.2.1卡片设计采用4个统计卡片横向排列,每个卡片包含:-统计指标名称-大号数字显示-对比数据(较上周变化)-相关图标-查看详情链接####3.2.2统计指标1.**待填任务**-显示当前用户待填报的周报数量-图标:时钟图标-颜色:红色(紧急)-对比:较上周的变化数量2.**已填任务**-显示当前用户已填报的周报数量-图标:对勾图标-颜色:绿色(成功)-对比:较上周的变化数量3.**总任务**-显示总的周报任务数量-图标:列表图标-颜色:蓝色(信息)-对比:本月总数4.**完成率**-显示周报完成百分比-图标:饼图图标-颜色:橙色(警告)-对比:较上周的变化百分比-包含进度条可视化###3.3图表统计区域####3.3.1部门周报统计图表**功能描述:**显示本周分部门的周报应填写总数和已填写总数的柱状图对比。**设计要求:**1.**图表类型**:分组柱状图2.**数据维度**:-X轴:部门名称(技术部、产品部、市场部、销售部、行政部、财务部、人力资源部)-Y轴:数量-分组:应填写数量(蓝色)、已填写数量(绿色)3.**功能特性**:-鼠标悬停显示具体数值-支持数据导出功能-提供时间范围筛选(本周、上周、本月、上月)-动态数据更新4.**工具栏**:-导出按钮-时间筛选下拉菜单###3.4系统公告区域####3.4.1功能描述显示系统最新公告信息,提供公告的查看和管理功能。####3.4.2显示内容1.**公告列表**:-公告标题-公告摘要(限制字数,支持展开)-发布时间-重要程度标识(重要、普通、新增等徽章)2.**公告分类**:-重要公告:红色徽章,置顶显示-普通公告:灰色徽章-新增功能:绿色徽章3.**操作功能**:-查看详情链接-更多公告链接####3.4.3样例公告1.**系统升级通知**(重要)2.**规范周报填写通知**(普通)3.**新增项目管理周报模板**(新增)###3.5待办事项区域####3.5.1功能描述显示当前用户的待办周报任务,按优先级排序。####3.5.2显示内容1.**任务信息**:-周报名称-截止日期-紧急程度标识(红色圆点表示紧急,橙色表示即将到期)2.**快捷操作**:-直接填报按钮-查看详情链接3.**状态标识**:-红色:距离截止不足1天-橙色:距离截止1-2天-灰色:距离截止超过2天###3.6最近填报区域####3.6.1功能描述以表格形式显示用户最近填报的周报记录。####3.6.2表格列设计-**周报名称**:带有状态指示器圆点-**报告周期**:开始日期~结束日期-**状态**:已审核/待审核/已提交徽章####3.6.3功能特性1.鼠标悬停行高亮2.点击行可查看详情3.状态用不同颜色徽章标识4.提供"查看全部"链接##4.响应式设计要求###4.1桌面端(≥1024px)-完整显示所有区域-统计卡片4列排列-图表和列表区域2:1比例排列-侧边栏固定显示###4.2平板端(768px-1023px)-统计卡片2列排列-图表和列表垂直排列-侧边栏可收缩-保持核心功能可用###4.3移动端(<768px)-统计卡片单列排列-所有区域垂直排列-侧边栏隐藏,提供汉堡菜单-简化显示内容,突出核心信息##5.数据刷新机制###5.1实时数据-待办任务数量:实时更新-通知提醒:实时推送-在线状态:实时显示###5.2定时刷新-统计数据:每5分钟刷新一次-图表数据:每10分钟刷新一次-公告信息:每30分钟刷新一次###5.3手动刷新-提供页面刷新按钮-支持F5快捷键刷新-局部组件刷新功能##6.性能要求###6.1加载性能-首页加载时间不超过3秒-图表渲染时间不超过2秒-数据刷新响应时间不超过1秒###6.2交互性能-菜单切换响应时间不超过0.5秒-卡片hover效果流畅无卡顿-滚动操作流畅自然###6.3资源优化-图片采用CDN加速-合理使用缓存机制-按需加载非核心内容##7.安全要求###7.1权限控制-根据用户角色显示对应菜单-统计数据按权限范围过滤-敏感操作需要权限验证###7.2数据安全-统计数据不包含敏感信息-用户信息脱敏显示-操作日志记录##8.技术实现要求###8.1前端技术-使用AdminLTE框架构建界面-Chart.js实现图表功能-TailwindCSS优化样式-JavaScript实现交互逻辑###8.2后端接口-提供统计数据API接口-支持数据缓存机制-实现权限验证中间件##9.验收标准1.页面布局美观,各区域比例协调2.响应式设计在不同设备上正常显示3.统计数据准确,实时性满足要求4.图表交互流畅,数据可视化效果良好5.菜单权限控制准确,无越权访问6.性能满足要求,用户体验良好7.通知和待办功能正常工作8.系统公告显示和管理功能完整9.移动端适配良好,核心功能可用10.代码质量良好,可维护性强


对于数据库设计文档生成如下:

#周报管理系统数据库设计文档##1.概述本文档描述周报管理系统的完整数据库设计,包括所有数据表的结构定义、关系设计和约束条件。数据库采用SQLite,所有表都包含统一的审计字段。##2.设计原则###2.1命名规范-所有数据库表名、字段名采用大写英文字母-多个单词之间用下划线"_"分隔-表名使用复数形式或描述性名称-主键统一命名为"ID"-外键命名为"{关联表名}_ID"###2.2审计字段所有业务表必须包含以下5个审计字段:-**CREATE_USER**:创建人-**CREATE_TIME**:创建时间-**UPDATE_USER**:最后更新人-**UPDATE_TIME**:最后更新时间-**FLAG**:标志位(0-删除,1-正常)###2.3数据类型约定-主键:INTEGERPRIMARYKEYAUTOINCREMENT-字符串:TEXT(SQLite中推荐使用TEXT)-数字:INTEGER或REAL-日期时间:TEXT(存储ISO8601格式)-布尔:INTEGER(0-false,1-true)##3.核心数据表设计###3.1部门管理表####DEPARTMENTS-部门信息表|字段名|数据类型|是否空|默认值|说明||--------|----------|--------|--------|------||ID|INTEGER|NOTNULL|-|主键,自增||DEPT_CODE|TEXT|NOTNULL|-|部门编码,唯一||DEPT_NAME|TEXT|NOTNULL|-|部门名称||DEPT_DESC|TEXT|NULL|-|部门描述||DEPT_STATUS|INTEGER|NOTNULL|1|部门状态(0-禁用,1-启用)||DEPT_MANAGER_ID|INTEGER|NULL|-|部门负责人用户ID||CREATE_USER|TEXT|NOTNULL|-|创建人||CREATE_TIME|TEXT|NOTNULL|-|创建时间||UPDATE_USER|TEXT|NOTNULL|-|最后更新人||UPDATE_TIME|TEXT|NOTNULL|-|最后更新时间||FLAG|INTEGER|NOTNULL|1|标志位(0-删除,1-正常)|###3.2用户管理表####USERS-用户信息表|字段名|数据类型|是否空|默认值|说明||--------|----------|--------|--------|------||ID|INTEGER|NOTNULL|-|主键,自增||USER_CODE|TEXT|NOTNULL|-|用户工号,唯一||LOGIN_NAME|TEXT|NOTNULL|-|登录用户名,唯一||PASSWORD|TEXT|NOTNULL|-|加密密码||USER_NAME|TEXT|NOTNULL|-|中文姓名||DEPT_ID|INTEGER|NOTNULL|-|所属部门ID||USER_STATUS|INTEGER|NOTNULL|1|用户状态(0-禁用,1-启用)||DIRECT_LEADER_ID|INTEGER|NULL|-|直属领导用户ID||EMAIL|TEXT|NULL|-|邮箱地址||PHONE|TEXT|NULL|-|手机号码||CREATE_USER|TEXT|NOTNULL|-|创建人||CREATE_TIME|TEXT|NOTNULL|-|创建时间||UPDATE_USER|TEXT|NOTNULL|-|最后更新人||UPDATE_TIME|TEXT|NOTNULL|-|最后更新时间||FLAG|INTEGER|NOTNULL|1|标志位(0-删除,1-正常)|###3.3角色权限管理表####ROLES-角色信息表|字段名|数据类型|是否空|默认值|说明||--------|----------|--------|--------|------||ID|INTEGER|NOTNULL|-|主键,自增||ROLE_CODE|TEXT|NOTNULL|-|角色编码,唯一||ROLE_NAME|TEXT|NOTNULL|-|角色名称||ROLE_DESC|TEXT|NULL|-|角色描述||ROLE_STATUS|INTEGER|NOTNULL|1|角色状态(0-禁用,1-启用)||CREATE_USER|TEXT|NOTNULL|-|创建人||CREATE_TIME|TEXT|NOTNULL|-|创建时间||UPDATE_USER|TEXT|NOTNULL|-|最后更新人||UPDATE_TIME|TEXT|NOTNULL|-|最后更新时间||FLAG|INTEGER|NOTNULL|1|标志位(0-删除,1-正常)|####USER_ROLES-用户角色关联表|字段名|数据类型|是否空|默认值|说明||--------|----------|--------|--------|------||ID|INTEGER|NOTNULL|-|主键,自增||USER_ID|INTEGER|NOTNULL|-|用户ID||ROLE_ID|INTEGER|NOTNULL|-|角色ID||CREATE_USER|TEXT|NOTNULL|-|创建人||CREATE_TIME|TEXT|NOTNULL|-|创建时间||UPDATE_USER|TEXT|NOTNULL|-|最后更新人||UPDATE_TIME|TEXT|NOTNULL|-|最后更新时间||FLAG|INTEGER|NOTNULL|1|标志位(0-删除,1-正常)|###3.4周报模板管理表####REPORT_TEMPLATES-周报模板表|字段名|数据类型|是否空|默认值|说明||--------|----------|--------|--------|------||ID|INTEGER|NOTNULL|-|主键,自增||TEMPLATE_CODE|TEXT|NOTNULL|-|模板编码,唯一||TEMPLATE_NAME|TEXT|NOTNULL|-|模板名称||TEMPLATE_DESC|TEXT|NULL|-|模板描述||TEMPLATE_TYPE|TEXT|NOTNULL|-|模板类型(关联数据字典)||TEMPLATE_STATUS|INTEGER|NOTNULL|1|模板状态(0-禁用,1-启用,2-草稿)||TEMPLATE_CONFIG|TEXT|NOTNULL|-|模板配置JSON||CREATE_USER|TEXT|NOTNULL|-|创建人||CREATE_TIME|TEXT|NOTNULL|-|创建时间||UPDATE_USER|TEXT|NOTNULL|-|最后更新人||UPDATE_TIME|TEXT|NOTNULL|-|最后更新时间||FLAG|INTEGER|NOTNULL|1|标志位(0-删除,1-正常)|####TEMPLATE_OBJECTS-模板数据对象表|字段名|数据类型|是否空|默认值|说明||--------|----------|--------|--------|------||ID|INTEGER|NOTNULL|-|主键,自增||TEMPLATE_ID|INTEGER|NOTNULL|-|模板ID||OBJECT_CODE|TEXT|NOTNULL|-|对象编码||OBJECT_NAME|TEXT|NOTNULL|-|对象名称||OBJECT_DESC|TEXT|NULL|-|对象描述||OBJECT_TYPE|TEXT|NOTNULL|TABLE|对象类型(TABLE-表格型,TEXT-文本型)||OBJECT_ORDER|INTEGER|NOTNULL|0|显示顺序||IS_REQUIRED|INTEGER|NOTNULL|0|是否必填(0-否,1-是)||CREATE_USER|TEXT|NOTNULL|-|创建人||CREATE_TIME|TEXT|NOTNULL|-|创建时间||UPDATE_USER|TEXT|NOTNULL|-|最后更新人||UPDATE_TIME|TEXT|NOTNULL|-|最后更新时间||FLAG|INTEGER|NOTNULL|1|标志位(0-删除,1-正常)|####TEMPLATE_FIELDS-模板数据项表|字段名|数据类型|是否空|默认值|说明||--------|----------|--------|--------|------||ID|INTEGER|NOTNULL|-|主键,自增||OBJECT_ID|INTEGER|NOTNULL|-|数据对象ID||FIELD_CODE|TEXT|NOTNULL|-|数据项编码||FIELD_NAME|TEXT|NOTNULL|-|数据项名称||FIELD_DESC|TEXT|NULL|-|数据项描述||DATA_TYPE|TEXT|NOTNULL|TEXT|数据类型(TEXT-字符,NUMBER-数字,DATE-日期)||CONTROL_TYPE|TEXT|NOTNULL|INPUT|控件类型(INPUT-文本框,TEXTAREA-多行文本框,SELECT-下拉选择框)||IS_REQUIRED|INTEGER|NOTNULL|0|是否必填(0-否,1-是)||DEFAULT_VALUE|TEXT|NULL|-|默认值||VALIDATE_RULE|TEXT|NULL|-|验证规则||FIELD_ORDER|INTEGER|NOTNULL|0|显示顺序||DICT_TYPE|TEXT|NULL|-|关联数据字典类型||CREATE_USER|TEXT|NOTNULL|-|创建人||CREATE_TIME|TEXT|NOTNULL|-|创建时间||UPDATE_USER|TEXT|NOTNULL|-|最后更新人||UPDATE_TIME|TEXT|NOTNULL|-|最后更新时间||FLAG|INTEGER|NOTNULL|1|标志位(0-删除,1-正常)|###3.5周报业务表####WEEKLY_REPORTS-周报主表|字段名|数据类型|是否空|默认值|说明||--------|----------|--------|--------|------||ID|INTEGER|NOTNULL|-|主键,自增||REPORT_CODE|TEXT|NOTNULL|-|周报编码,唯一||TEMPLATE_ID|INTEGER|NOTNULL|-|模板ID||REPORTER_ID|INTEGER|NOTNULL|-|填报人ID||REPORT_TITLE|TEXT|NOTNULL|-|周报标题||START_DATE|TEXT|NOTNULL|-|开始日期||END_DATE|TEXT|NOTNULL|-|结束日期||CREATE_DATE|TEXT|NOTNULL|-|编制日期||SUBMIT_DATE|TEXT|NULL|-|提交日期||REPORT_STATUS|TEXT|NOTNULL|DRAFT|周报状态(DRAFT-草稿,SUBMITTED-已提交,REVIEWING-待审核,REVIEWED-已审核)||REVIEWER_ID|INTEGER|NULL|-|审核人ID||REVIEW_DATE|TEXT|NULL|-|审核日期||REVIEW_COMMENT|TEXT|NULL|-|审核意见||CREATE_USER|TEXT|NOTNULL|-|创建人||CREATE_TIME|TEXT|NOTNULL|-|创建时间||UPDATE_USER|TEXT|NOTNULL|-|最后更新人||UPDATE_TIME|TEXT|NOTNULL|-|最后更新时间||FLAG|INTEGER|NOTNULL|1|标志位(0-删除,1-正常)|##4.数据关系和约束###4.1主要外键关系-USERS.DEPT_ID→DEPARTMENTS.ID-USERS.DIRECT_LEADER_ID→USERS.ID-USER_ROLES.USER_ID→USERS.ID-USER_ROLES.ROLE_ID→ROLES.ID-WEEKLY_REPORTS.TEMPLATE_ID→REPORT_TEMPLATES.ID-WEEKLY_REPORTS.REPORTER_ID→USERS.ID-WEEKLY_REPORTS.REVIEWER_ID→USERS.ID###4.2索引设计-唯一索引:用户工号、登录名、部门编码、角色编码、模板编码-复合索引:用户角色关联、模板字段关联-查询索引:状态字段、时间字段、外键字段##5.预置数据示例###5.1默认角色```sqlINSERTINTOROLESVALUES(1,'ADMIN','系统管理员','拥有所有权限',1,'SYSTEM','2023-01-01T00:00:00','SYSTEM','2023-01-01T00:00:00',1),(2,'DEPT_MANAGER','部门经理','可审核下属周报',1,'SYSTEM','2023-01-01T00:00:00','SYSTEM','2023-01-01T00:00:00',1),(3,'ROJECT_MANAGER','项目经理','可填报项目周报',1,'SYSTEM','2023-01-01T00:00:00','SYSTEM','2023-01-01T00:00:00',1),(4,'EMPLOYEE','普通员工','可填报个人周报',1,'SYSTEM','2023-01-01T00:00:00','SYSTEM','2023-01-01T00:00:00',1);```###5.2默认部门```sqlINSERTINTODEPARTMENTSVALUES(1,'TECH','技术部','负责系统开发和维护',1,NULL,'SYSTEM','2023-01-01T00:00:00','SYSTEM','2023-01-01T00:00:00',1),(2,'RODUCT','产品部','负责产品规划和设计',1,NULL,'SYSTEM','2023-01-01T00:00:00','SYSTEM','2023-01-01T00:00:00',1),(3,'MARKET','市场部','负责市场推广和销售',1,NULL,'SYSTEM','2023-01-01T00:00:00','SYSTEM','2023-01-01T00:00:00',1);```##6.性能优化和维护###6.1查询优化建议-合理使用索引,避免全表扫描-分页查询处理大数据集-定期清理历史数据###6.2备份和恢复-定期备份数据库文件-制定数据恢复策略-测试备份数据完整性这份数据库设计文档为周报管理系统提供了完整的数据存储方案,支持系统的所有功能需求。

接着Qoder会完全参考我们在Demo-ref目录下给出的原型界面的参考,帮我们生成整个系统完整的系统操作原型。

我在使用过程中还是给我不小的惊喜。因此整个AI基本是一次就完全生成了整个原型,而且直接通过Python app.py就可以启动运行和访问。对于该原型系统完全满足我们的界面原型参考样式,也符合我们前面需求文档定义的各个需求的内容。

点击待我填报的功能可以进入到填报功能界面:

注意,AI还很好的实现了周报模板配置功能。而且实现的界面原型和我的原始需求基本一致。我当时的原始需求为:

注意周报模板是本系统的一个核心功能,即管理员可以配置多个周报模板,然后将周报模板分配给不同的角色。那么相关人员就可以填报,查看和审核该周报。周报模板是类似于一个填报的excel表格,需要做到灵活配置。具体要求如下:

1. 管理员可以创建周报模板,对应创建好的周报模板,应该有一个列表可以查看。在这个界面对周报模板进行角色分配。注意这里分配两类角色。第一个是填报角色,第二个是查看角色。对应填报角色的人员则需要填写该周报,对于查看角色的人员可以查看该周报。

2. 注意周报填报完成提交后,没有专门的审核角色,在这里规则是我们在维护用户的时候维护了用户的直接领导,那么该周报默认由该领导进行审核。

3. 可以新增加周报模板,一个周报模板可以由多个数据对象,每个数据对象又可以有多个数据项,这些都需要灵活定义。比如项目经理周报,这个模板可以有当前项目信息对象,售前项目对象,团队管理项目对象。对于当前项目对象又可以维护项目名称,项目状态,项目参与人员,项目进展等数据项。

4. 周报模板中的每个数据对象相互独立,每个数据对象里面的数据项支持字符,数字,日期三种类型。但是要注意对于字符型的时候可以选择具体的控件类型。其中包括了文本框架,多行文本框和下拉选择框。注意如果是下拉选择框的话我可以配置选择某个数据字典项作为具体的选择列表显示。

周报详情查看界面也完全满足要求:

同时周报模板支撑角色分配,不同的周报模板可以分配给不同的角色。具体参考原型界面如下:

具体的角色维护功能如下:

从整体的界面原型输出来看,完成度相当高。

为何没有一开始就直接基于需求生成整个系统的源代码,在前面我也专门讲过,通过软件工程阶段分解。我们可以提前对需求,设计,Demo原型进行调整和确认。在没有问题后再进行后面的整个系统的代码生成。而且系统代码生成,我们完全可以安装大模块的思路分开生成,以减少AI上下文长度的一些限制,也方便问题的修改。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ