【AI导师】利用Coding Agent完成AIGC编程

利用Coding Agent完成AIGC编程

  • 一、前言
  • 二、Coding Agent
  • 三、1024code
  • 四、AI导师
    • README
      • 项目初版功能定义
      • 代码结构设计方案
      • 函数方法设计方案
      • 迭代记录

一、前言

  AI产品的发展确实在过去两年年中取得了显著进展,尤其是在编程领域。一开始,ChatGPT和类似的语言模型主要用于自然语言处理和生成对话。在这个背景下,一些国内的开发者和企业开始将这些技术应用于编程领域,形成了一些Coding Agent类型的AI产品。
  这些产品的初衷是为程序员提供更便捷的编程辅助工具,帮助他们解决问题、生成代码,提高开发效率。在初始阶段,主要侧重于对话式的交互,帮助用户更轻松地与计算机交流,并获取所需的编程信息。
  然而,随着时间的推移,这些AI产品逐渐不能更全面地满足程序员的需求。这些AI产品大多都只能在命令行环境下使用,只能以问答式的方式去输出解决方式,往往结果不符合编程环境实际的操作。 究其原因是其无法获取程序的运行环境信息、报错信息。同时AI的回复往往侧重建议和一些框架。
  但市面上还是有一些产品嵌入到编程环境中,比如InsCode AI

示例:利用inscode做一个简单的备忘录
在这里插入图片描述
但所生成的内容却只是简单并且不能交互的框架。其与IDE不是深度融合的,与单纯的对话式问答AI并未有突出特点。

  既然痛点出现,必有需要供应,市面上有没有什么平台是深度嵌入编程环境的呢?答案是1024code。

二、Coding Agent

  在介绍1024code协同编程工具之前,先谈谈Coding Agent(智能编程体):与IDE(集成开发环境)深度结合、并能与环境(虚拟或者物理环境)进行交互、限定于编程领域的智能系统。
在这里插入图片描述

Coding Agent四大核心功能详细描述
从零开始构建项目 (MVP生成)1.用户友好的交互界面:提供直观、简便的用户界面,输入项目目标信息。
2.智能建议:根据用户输入提供建议和最佳实践。
3.自动化代码生成:生成基础代码框架,加速项目启动。
辅助与自动Debug1.即时错误检测:实时监测编码过程,识别潜在错误,提供即时反馈。
2.自动定位问题:迅速定位代码问题,并生成详细错误报告。
3.智能建议修复:提供修复建议,甚至自动应用修复。
优化现有项目1.代码性能分析:分析性能瓶颈,提供优化建议,改进算法等。
2.安全漏洞检测:扫描代码,识别安全漏洞,并提供修复建议。
3.用户体验建议:提供用户体验建议,改善界面设计和交互。
迭代现有项目1.智能变更管理:支持有序变更管理,包括版本控制、代码合并等。
2.复杂功能集成:处理复杂功能集成,包括第三方库、API调用等。
3.数据迁移与兼容性:协助处理数据库迁移、数据兼容性等。

三、1024code

  1024Code 是一个免费的、协作式的、基于浏览器的 IDE 环境,支持 10 多种编程语言,支持 Spring 、Vue 、React 等框架,还支持很多图形库,并集成了 AI 编程助手、编程社区。拥有无需安装环境,任何设备开箱即用的特性
在这里插入图片描述
在这里插入图片描述
主要功能

功能描述
在线多人协作类似腾讯文档等在线协作文档的协作功能体验,支持多人同时加入一个代码空间实时协作编程。
在线分享分享代码空间链接,打开可查看项目文件并运行的“副本”代码空间。
AI编程助手使用在线协同IDE和AI编程助手互动,快速解答疑问、完成重复性质的编码工作。
Git版本管理使用Git Commit,管理代码版本。
数据库免费的云端数据库,是代码空间的最佳搭档。

IDE界面及功能

区域描述
文件窗口支持多层级的文件夹,支持上传/拖拽上传本地文件。
编辑器窗口支持代码高亮、补全。在协作模式下,支持以不同颜色光标体现不同用户的代码操作。
Console窗口显示应用启动及运行过程中的日志。
Shell窗口以runner权限控制容器,在协作模式下,用户间共享同一session。
运行按钮支持点击运行按钮编译及运行程序,编译/运行命令支持手动配置,启动及运行过程中的日志将在console中显示。
浏览器输出窗口支持HTTP服务的浏览(监听8080端口),检测到用户对网址的访问后立即启动应用服务,无访问情况下持续3分14秒后关闭。
图形输出窗口选择C++、Python、Java模版的GUI版本创建代码空间,使用相关图形库编写和运行图形程序。

四、AI导师

视频:AI导师,做甲方的乐趣

  项目建立的一开始,AI导师会根据MVP原则生成解决方案,以下是一个示例:

README

项目初版功能定义

依据MVP(最小可行性产品)的思想和的原则,在第一个版本中我们将会选择以下核心模块进行优先开发:

  • 创建HTML结构:创建一个包含任务列表、输入框和添加任务按钮的
    本HTML结构,为添加、显示任务提供基础界面。
  • 添加任务:实现一个JavaScript函数,允许用户通过输入框和按钮添加新任务,并在任务列表中显示。
  • 存储任务:使用浏览器的本地存储功能(如localStorage),实现任务的持久化存储,以便用户在关闭浏览器后再次打开时仍能看到之前的任务。

代码结构设计方案

主入口文件:

  • index.html
    需要编写的其他源码文件:
  • styles.css
  • script.js

  • 函数方法设计方案

  • index.html
  • 核心结构:
  • <header>: 包含标题和可能的应用介绍。
  • <main>: 主体部分,包含任务列表和添加任务的表单。
  • <footer>: 可能包含版权和其他信息。
    styles.css
  • 核心样式:
  • .task-list: 任务列表样式,用于美化任务显示。
  • .task-item: 单个任务的样式,用于美化任务项。
  • .add-task-form: 添加任务表单样式,用于布局输入框和按钮。
    script.js
  • 核心常量和变量:
  • localStorageKey: 用于localStorage中的键名,保持数据的一致性。
  • 核心函数:
  • addTask(): 用于添加新任务到任务列表和本地存储。
  • loadTasks(): 从本地存储加载任务到任务列表。
  • initializeApp(): 应用初始化函数,页面加载完成后调用。

  AI导师完成对应框架代码的编写后,可向其提出迭代方向或者功能,AI导师将生成第一次迭代方案,下面是一个例子:

迭代记录

第1次迭代
新增功能概述:
实现在添加任务时能够设置截止日期,并在任务列表中标注任务的紧急状态。
核心子功能详述:

  1. 扩展添加任务表单
    在“add-task-form”中添加一个日期输入字段,允许用户选择或输入任务的截止日期。该输入框应明确标识为“截止日期”,并默认显示当前日期,用户可以选择当前或未来的日期。
  2. 修改任务数据结构
    任务对象应扩展以包含截止日期属性。在“addTask”函数中,收集截止日期输入并存储为任务对象的一部分。确保“saveTask”函数将包含截止日期的任务对象保存到本地存储。
  3. 展示任务截止日期状态
    在任务列表中,每个任务旁展示其截止日期。通过“createTaskElement”函数实现,如果任务即将到期(比如,剩余时间少于48小时),则高亮显示;若已过期,则以不同颜色标注。

  1. 扩展添加任务表单模块:
  • 函数名: addDeadlineField
    目的: 在添加任务的表单中添加一个日期输入字段,用于用户设置任务的截止日期。
  1. 修改任务数据结构模块:
  • 函数名: updateTaskObject
    目的: 扩展任务对象的结构,使其包含截止日期属性。
  1. 保存任务模块:
  • 修改函数: saveTask
    目的: 更新该函数以确保能够处理和保存包含截止日期的任务对象到本地存储。
  1. 展示任务截止日期状态模块:
  • 函数名: displayDeadlineStatus
    目的: 在任务列表中展示每个任务的截止日期,并根据截止日期的紧迫性高亮显示或标注任务。
  1. 任务元素创建模块:
  • 修改函数: createTaskElement
    目的: 更新该函数以在创建任务元素时包含截止日期的展示逻辑,并根据任务是否即将到期或已过期来调整显示样式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/282318.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Zookeeper-Zookeeper应用场景实战(二)

1. Zookeeper 分布式锁实战 1.1 什么是分布式锁 在单体的应用开发场景中涉及并发同步的时候&#xff0c;大家往往采用Synchronized&#xff08;同步&#xff09;或者其他同一个 JVM内Lock机制来解决多线程间的同步问题。在分布式集群工作的开发场景中&#xff0c;就需要 一种…

前端大屏适配几种方案

记录一下前端大屏的几种适配方案。 我们是1920*1080的设计稿。 目录 目录 一、方案一&#xff1a;remfont-size 二、方案二&#xff1a;vw&#xff08;单位&#xff09; 三、方案三&#xff1a;scale&#xff08;缩放&#xff09;强烈推荐 1、根据宽度比率进行缩放 2、动…

十大排序算法归纳

目录 排序算法的分类 插入排序算法模板 选择排序算法模板 冒泡排序算法模板 希尔排序算法模板 快速排序算法模板 归并排序算法模板 堆排序算法模板 基数排序算法模板 计算排序算法模板 桶排序算法模板 排序算法的分类 插入&#xff1a;插入&#xff0c;折半插入&am…

Springcloud Alibaba使用Canal将Mysql数据实时同步到Redis保证缓存的一致性

目录 1. 背景 2. Windows系统安装canal 3.Mysql准备工作 4. 公共依赖包 5. Redis缓存设计 6. mall-canal-service 1. 背景 canal [kənl] &#xff0c;译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费。其诞…

八个理由:从java8升级到Java17

目录 前言 1. 局部变量类型推断 2.switch表达式 3.文本块 4.Records 5.模式匹配instanceof 6. 密封类 7. HttpClient 8.性能和内存管理能力提高 前言 从Java 8 到 Java 20&#xff0c;Java 已经走过了漫长的道路&#xff0c;自 Java 8 以来&#xff0c;Java 生态系统…

软件工程PPT 笔记摘录(2)

分析软件需求 UML 提供了用例图来分析和描述用例视角的软件需求模型 UML 提供了交互图和状态图来描述行为视角的软件需求模型 UML 提供了类图来描述和分析业务领域的概念模型 顺序图&#xff1a;强调消息传递的时间序 通信图&#xff1a;突出对象间的合作 类图&#xff0…

vscode调试 反汇编c/c++ 查看汇编代码gdb/lldb

先看下流程&#xff01; 先看下流程&#xff01; 有问题请留言&#xff01; 文章目录 必备F5开启调试左侧侧边栏->确保打开回调栈右键函数栈->查看反汇编 方法二&#xff1a;手动输入命令查看 必备 使用c/c 插件&#xff0c;这应该是必备的。 F5开启调试 左侧侧边栏-&…

【Leetcode】1154. 一年中的第几天

文章目录 题目思路代码 题目 1154. 一年中的第几天链接 思路 题目要求是给定一个字符串 date&#xff0c;它代表一个日期&#xff0c;采用标准的 YYYY-MM-DD 格式。需要计算这个日期是当年的第几天。 首先&#xff0c;我们可以通过字符串的索引来提取年、月和日的数值&…

C语言实验5:结构体

目录 一、实验要求 二、实验原理 1. 普通结构体 1.1 显示声明结构体变量 1.2 直接声明结构体变量 ​编辑 1.3 typedef在结构体中的作用 2. 结构体的嵌套 3. 结构体数组 4. 指向结构体的指针 4.1 静态分配 4.2 动态分配 三、实验内容 1. 学生数据库 代码 截图 …

穿越时光的镜头:2023回顾与2024展望

前言 2023 年就像一本充满着惊喜和挑战的书籍&#xff0c;它的每一页都留下了我生活中不同的痕迹。回顾过去&#xff0c;我发现了许多意想不到的成长和启示&#xff0c;也体验了生活的起起伏伏。 这篇文章是对 2023 年的一个小小总结&#xff0c;也是对未来的一点期许。在这里…

PAT 乙级 1046 划拳

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为&#xff1a;每人口中喊出一个数字&#xff0c;同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和&#xff0c;谁就赢了&#xff0c;输家罚一杯酒。两人同赢或两人同输则继续下一轮&…

Unity中URP下精度修饰符real

文章目录 前言一、real是什么&#xff1f;1、我们在项目的Packages下找到如下文件&#xff1a;2、HAS_HALF(1代表有half精度&#xff0c;0代表没有half精度)3、PREFER_HALF4、REAL_IS_HALF5、如果 real is half6、否则为float 二、总结 前言 在使用雾效时&#xff0c;ComputeFo…

Git使用教程 gittutorial

该教程对该文章的翻译&#xff1a;https://git-scm.com/docs/gittutorial 本文介绍怎用使用 Git 导入新的工程、修改文件及如何其他人同步开发。 首先&#xff0c; 可以使用以下指令获取文档帮助 git help log笔者注&#xff1a;不建议看这个文档&#xff0c;标准的语法介绍…

Lesson 06 vector类(上)

C&#xff1a;渴望力量吗&#xff0c;少年&#xff1f; 文章目录 一、vector是什么&#xff1f;二、vector的使用1. 构造函数2. vector iterator3. vector 空间增长问题4. vector增删查改 三、vector实际使用 一、vector是什么&#xff1f; vector是表示可变大小数组的序列容器…

条款13:以对象管理资源

文章目录 没有管理的情况解决办法之unique_ptr智能指针解决办法之shared_ptr智能指针总结 没有管理的情况 资源是指一旦你使用完它&#xff0c;就需要返回系统的东西。 class Investment { ... }; // 投资类型层次结构的基类 Investment* createInvestment(); // 工厂函数&…

Vue学习计划-Vue3--初识Vue3,vite创建Vue3项目

1. Vue3简介 性能的提升 打包大小减少41%初次渲染快55%&#xff0c;更新渲染快133%内存减少54% 源码的升级 使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-Shaking 拥抱TypeScript Vue3可以更好的支持TypeScript 新的特性 Composition Api(组合Api) setupref…

基于CMake的大型C++工程组织

此文适合大型C工程&#xff0c;涉及到多个自定义库&#xff0c;多个第三方库&#xff0c;以及还有给第三方用户进行二次开发的需求下&#xff0c;应对这种复杂编译环境下的工程组织方式的一些经验介绍&#xff0c;希望给大型工业软件的开发者一些参考 一个大型工程&#xff0c…

python统计分析——协方差和pearson相关系数

参考资料&#xff1a;用python动手学统计学 使用数据见代码&#xff1a; dic{"x":[18.5,18.7,19.1,19.7,21.5,21.7,21.8,22.0,23.4,23.8],"y":[34,39,41,38,45,41,52,44,44,49] } cov_datapd.DataFrame(dic) 变量x、y的协方差Cov(x,y)的计算公式如下&am…

解决达梦数据库服务启动失败,错误 2: 系统找不到指定的文件

当在我们在Window环境下使用达梦数据库的过程中,可能会遇到这种错误,重启电脑后达梦数据库突然连接不上了,无法访问,但是我们打开任务管理器查看服务时,会发现DmServiceDMSERVER仍然存在,但是已停止的状态。 点击服务启动时,报错: Windows 无法启动 DmserviceDMSERVER…

类的加载顺序问题-demo展示

面试的的时候经常会被问到包含静态代码块、实例代码块和构造器等代码结构的加载顺序问题&#xff0c;下面借用一个面试题&#xff0c;回顾一下类的代码加载顺序。 public class AooTest {public static void main(String[] args) {AooTest.f1();}static AooTest test1 new Ao…