写点什么

他来了!她来了!CodeBuddy IDE 首发!首批限时内测开启,速来尝鲜!

  • 2025-07-23
    北京
  • 本文字数:21114 字

    阅读完需:约 69 分钟

期待已久的 CodeBuddy IDE 上线啦,感兴趣的小伙伴快来一起参与吧!本文会详细介绍 CodeBuddy IDE 从下载安装、初始化设置到核心功能体验全部内容,为了让大家更好的了解,文章内容可能会比较长,还请谅解!

CodeBuddy IDE

在正式测评 CodeBuddy IDE 开发工具之前,我们先来简单介绍一下,什么是 CodeBuddy IDE?

CodeBuddy IDE 官网地址:https://www.codebuddy.ai/

CodeBuddy IDE 是全球首个产设研一体 AI 全栈高级工程师。致力于构建一个产品、设计、研发无缝协作的共生环境。通过将 AI 深度融入从需求规划、产品设计到代码开发的全流程,实现从一个从想法到产品发布的一站式高效交付平台。成为 打破产品、设计与研发职能壁垒的下一代 AI 全栈高级工程师。

IDE 安装

由于是内测,这里就不再提供下载链接,我们直接进入安装步骤。CodeBuddy IDE 的安装比较简单,这里我的电脑是 Windows 版本,那么直接双击 CodeBuddy-win32-x64-user-0.1.5.1438024-02b2a45e.exe 文件,在弹出的许可协议页面选择【我同意此协议】后进入【下一步】,安装位置默认是 C 盘,这里我指定 D 盘安装

其他选择默认,继续【下一步】,在 选择附加任务 弹框,这里我勾选 【创建桌面快捷方式】,其他选项默认

在最后安装信息确认页面,确认安装信息后点击【安装】完成 CodeBuddy IDE 安装操作

安装完成后运行 CodeBuddy

在上面选择了添加桌面快捷方式之后,就可以在桌面看到如下的 CodeBuddy IDE 开发工具图标


初始化设置

双击运行 CodeBuddy IDE 之后,在 CodeBuddy IDE 初始化设置页面,如果你本地有自己的 VSCode 个性化设置,那么你可以选择【Import from VS Code】导入设置,如果有 Cursor 的话,你可以选择【Import from Cursor】,都没有的话,则可以直接点击【Skip】 跳过导入设置页面

在 【Add command line】设置页面,这里建议是点击安装 buddy 命令行【Install the ‘buddy‘ command】,安装之后可以直接在 CodeBuddy IDE 开发工具的 Terminal 窗口运行命令,操作上多了一种选择。当然,选择【Skip】也是可以的。需要说明的是,目前 CodeBuddy IDE 暂时不能安装 command 命令行

在登录账号页面,如果你有 Google 账号的话,你可以选择登录账号【Log in】,点击登录按钮后会跳转到浏览器登录账号

如果没有 Google 账号的话,那么需要你先注册 Google 账号,然后才可以登录,这里的登录是强制的,不登录的话,点击【Skip】会提示你登录账号。

希望后期可以支持微信登录或者手机号登录,目前仅支持通过 Google 账号授权登录,且国内的网络环境不支持打开 Google 账号页面,需要通过 VPN 切换到海外网络节点才可以登录,(这里说明一下,当你第一次通过 VPN 登录 Google 账号之后,后续进入到 CodeBuddy IDE 操作页面就不用再使用 VPN 也可以,亲测 OK),也就是说,只是在登录账号的那一次需要 VPN,后面就不需要了

这里我们下载了 VPN ,同时也登录了 VPN 账号,开启了系统代理,再次点击【Log in】跳转到 Google 账号登录页面,勾选协议登录账号

在选择账号页面选择想要使用的 Google 账号,选择账号后

选择账号后,在登录 codebuddy.ai 页面,选择【继续】完成 google 账号登录

登录成功后如图

回到我们的 CodeBuddy IDE 开发工具,在输入邀请码页面输入我们的内测邀请码后,点击【Next】

到这里,我们的 CodeBuddy IDE 初始化设置已经全部完成,在完成了初始化设置之后,就可以看到我们的开发工具操作页面了,整个操作页面风格及操作按钮相关位置,和我们日常用的开发工具 VSCode 、IntelliJ IDEA、PyCharm 等都差不多,下面是 CodeBuddy IDE 开发工具的页面

下面是 PyCharm 2024.3.5 (Community Edition) 的开发页面

核心功能体验

那么既然 CodeBuddy IDE 是一个致力于构建一个产品、设计、研发无缝协作的共生环境的开发工具,那么下面我们就通过一个小需求来全流程体验一下 CodeBuddy IDE 在整个产品生命周期中所起到的重要作用。大家都知道,正常的需求需要先经过产品经理将模糊的想法转化成详细的需求文档,然后再将需求文档转化成高清产品原型或者说设计稿,最后是研发人员基于产品原型及设计稿将具体的功能实现并部署到服务器环境进行测试验证。

想法→需求

我这里收到一个需求,需要实现一个会议室预约系统,需要有基础的登录功能,预约功能,会议室预约结果查询以及可预约会议室列表等功能。那么有了这个想法,下面我们就可以将我们的想法告诉 CodeBuddy IDE ,借助 AI 来生成结构化需求文档(PRD)

这里我们看到在 AI 对话区 有三个选项可以选择【Coding】、【Design】、【Chat】,这里我理解这三个选项对应的就是【代码】、【设计】、【需求文档】 那么目前还处在想法转化成需求文档阶段,这里我们选择【Chat】,输入我们的需求内容

我这里收到一个需求,需要实现一个会议室预约系统,需要有基础的登录功能,预约功能,会议室预约结果查询以及可预约会议室列表等功能,现在生成需求文档
复制代码

当然,如果你觉得你的需求内容描述的过于简单,可能不利于 AI 理解你内心的想法,那么 CodeBuddy IDE 为我们提供了 prompt 润色功能,我们可以点击【Boost Prompt】按钮来让 AI 帮助我们润色我们的需求

润色后的需求内容如下

设计一个完整的会议室预约系统,包含以下核心功能模块:
1. 用户认证系统 - 实现用户注册、登录和密码重置功能 - 支持不同权限级别(普通用户、部门管理员、系统管理员) - 集成单点登录选项,支持企业现有认证系统
2. 会议室管理模块 - 创建和维护会议室信息(位置、容量、设备配置) - 会议室状态实时显示(可用、已预约、维护中) - 会议室分类和筛选功能(按容量、位置、设备等)
3. 预约功能 - 直观的日历界面显示会议室可用时段 - 支持单次和周期性预约(每日、每周、每月) - 预约冲突检测和提醒 - 预约确认和取消流程,包含邮件通知
4. 查询与报表功能 - 个人预约历史和未来预约查询 - 会议室使用率统计和分析 - 可定制报表导出(Excel、PDF格式)
5. 管理功能 - 预约审批流程(可选) - 会议室资源优化建议 - 异常使用情况监控
请提供系统的技术架构建议、数据模型设计、用户界面原型以及实现计划时间表。系统应确保良好的用户体验,同时满足企业级应用的安全性和可扩展性要求。
复制代码

此时我们觉得内容已经够详细了,就可以直接点击【Send】来发起对话了,这时会弹出弹框询问你是否信任当前文件夹的操作,选择【Yes】

那么 CodeBuddy 在接收到我们的需求之后,会基于我们的需求内容设计一个完整的解决方案,包括技术架构、数据模型、用户界面原型和实现计划。在 AI 对话内容最后,会询问我们是否进一步调整和完善这个方案,如果觉得方案不错,那么我就按照这个方案来生成需求文档

以下是 CodeBuddy 生成的详细的需求文档的内容


会议室预约系统需求文档
1. 文档概述1.1 目的本文档旨在详细描述会议室预约系统的功能需求、技术规格和实现计划,为开发团队提供明确的指导方针。
1.2 适用范围本文档适用于项目的所有相关人员,包括产品经理、开发人员、测试人员、运维人员以及最终用户。
1.3 系统概述会议室预约系统是一个企业级应用,旨在简化和优化组织内会议室资源的管理和预约流程。系统提供直观的用户界面,支持多种预约方式,并具备完善的管理功能。
2. 系统架构2.1 总体架构系统采用现代化的三层架构设计:
前端层:负责用户交互界面应用服务层:处理业务逻辑数据层:负责数据存储和检索2.2 技术栈前端技术Web应用:React + TypeScript + Material UI移动应用:React Native(可选)日历组件:FullCalendar.js数据可视化:Chart.js后端技术主框架:Spring Boot (Java) 或 Django (Python)API设计:RESTful API实时通信:WebSocket认证:JWT + OAuth 2.0数据存储主数据库:PostgreSQL缓存系统:Redis搜索引擎:Elasticsearch部署与运维容器化:Docker + KubernetesCI/CD:Jenkins 或 GitHub Actions监控:Prometheus + Grafana3. 功能需求3.1 用户认证系统3.1.1 用户注册支持邮箱注册用户信息收集(姓名、部门、职位等)邮箱验证流程初始密码设置(符合安全策略)3.1.2 用户登录用户名/邮箱 + 密码登录记住登录状态选项登录失败处理(错误提示、账户锁定机制)双因素认证支持(可选)3.1.3 密码管理自助密码重置功能定期密码更新提醒密码强度要求实施3.1.4 权限管理角色定义:普通用户:预约会议室、管理个人预约部门管理员:管理部门会议室、查看部门预约统计系统管理员:全系统配置、用户管理、报表访问权限分配与继承机制权限动态调整功能3.1.5 单点登录集成支持SAML 2.0协议OAuth 2.0集成与企业Active Directory/LDAP集成3.2 会议室管理模块3.2.1 会议室信息管理会议室基本信息(名称、位置、容量)详细描述(楼层、区域、房间号等)会议室照片上传与展示会议室状态管理(可用、已预约、维护中)3.2.2 设备管理会议室设备清单(投影仪、视频会议系统、白板等)设备状态跟踪设备维护记录3.2.3 会议室分类与搜索按位置分类(大楼、楼层)按容量分类(小型、中型、大型)按设备配置筛选高级搜索功能(多条件组合)3.2.4 会议室状态显示实时状态更新可视化日历视图状态变更通知3.3 预约功能3.3.1 预约界面日历视图(日/周/月切换)时间段选择器拖拽式预约创建会议室比较视图3.3.2 预约类型单次预约周期性预约:每日重复每周重复(指定星期几)每月重复(指定日期或模式)自定义重复模式结束日期设置3.3.3 预约流程会议信息填写(标题、描述、参与者)时间段选择会议室选择设备需求指定预约确认预约成功通知3.3.4 冲突处理实时冲突检测冲突提醒与建议替代会议室推荐3.3.5 预约管理预约修改功能预约取消流程预约延长请求预约历史记录3.3.6 通知系统预约确认邮件预约提醒(开始前15分钟)变更通知取消通知通知偏好设置3.4 查询与报表功能3.4.1 个人预约管理当前预约列表历史预约记录预约详情查看快速操作(修改、取消)3.4.2 统计分析会议室使用率统计高峰时段分析部门使用情况对比趋势分析(日/周/月/季度)3.4.3 报表生成预定义报表模板自定义报表配置数据筛选条件图表可视化选项3.4.4 数据导出Excel格式导出PDF格式导出报表计划任务(定期生成)报表共享功能3.5 管理功能3.5.1 预约审批流程审批规则配置审批流程定义审批通知与提醒审批历史记录3.5.2 资源优化使用模式分析资源优化建议自动调整建议3.5.3 异常监控未使用预约检测频繁取消监控资源滥用识别异常报告生成3.5.4 系统配置全局参数设置邮件模板配置工作时间定义假期日历管理4. 非功能需求4.1 性能需求页面加载时间:<2秒并发用户支持:>=500用户数据库响应时间:<100ms系统可用性:99.9%4.2 安全需求数据传输加密(HTTPS)敏感数据存储加密密码策略实施访问控制审计防SQL注入和XSS攻击CSRF保护4.3 可用性需求响应式设计(支持桌面/平板/手机)浏览器兼容性(Chrome, Firefox, Safari, Edge)无障碍设计(WCAG 2.1 AA级)多语言支持(至少英文和中文)4.4 可扩展性需求模块化设计水平扩展能力API版本控制第三方系统集成接口5. 数据模型5.1 核心实体用户(User)id: 整型, 主键username: 字符串, 唯一email: 字符串, 唯一password_hash: 字符串role: 枚举(普通用户, 部门管理员, 系统管理员)department_id: 外键created_at: 日期时间last_login: 日期时间is_active: 布尔值部门(Department)id: 整型, 主键name: 字符串description: 文本manager_id: 外键(User)会议室(Room)id: 整型, 主键
name: 字符串location: 字符串capacity: 整型status: 枚举(可用, 已预约, 维护中)description: 文本floor: 字符串building: 字符串photo_url: 字符串created_at: 日期时间updated_at: 日期时间预约(Reservation)id: 整型, 主键user_id: 外键(User)room_id: 外键(Room)title: 字符串description: 文本start_time: 日期时间end_time: 日期时间status: 枚举(待确认, 已确认, 已取消, 已完成)is_recurring: 布尔值recurrence_pattern: JSONcreated_at: 日期时间updated_at: 日期时间设备(Equipment)id: 整型, 主键name: 字符串type: 字符串description: 文本status: 枚举(正常, 维护中, 故障)会议室设备(RoomEquipment)id: 整型, 主键room_id: 外键(Room)equipment_id: 外键(Equipment)quantity: 整型通知(Notification)id: 整型, 主键user_id: 外键(User)reservation_id: 外键(Reservation)message: 文本type: 枚举(预约确认, 提醒, 变更, 取消)is_read: 布尔值created_at: 日期时间6. 用户界面设计6.1 总体设计原则简洁直观的用户界面一致的设计语言响应式布局高对比度配色方案清晰的视觉层次6.2 主要界面6.2.1 登录与注册界面简洁的登录表单注册入口忘记密码链接企业SSO登录选项6.2.2 主控制台/仪表板个人预约概览快速预约入口通知中心会议室状态概览快捷功能区6.2.3 会议室浏览界面列表/网格视图切换筛选面板排序选项会议室卡片(包含基本信息和状态)详情查看入口6.2.4 预约界面日历视图(日/周/月切换)时间选择器会议室选择区预约表单冲突提示区6.2.5 管理控制台侧边导航菜单数据概览仪表板用户管理表格会议室管理界面系统设置面板7. 实现计划7.1 开发阶段阶段1:需求分析与设计(4周)详细需求收集与分析系统架构设计数据库设计UI/UX设计技术选型确认阶段2:核心功能开发(8周)用户认证系统(2周)会议室管理模块(2周)基础预约功能(3周)通知系统(1周)阶段3:高级功能开发(6周)高级预约功能(周期性预约、冲突检测)(2周)报表与分析功能(2周)管理功能(2周)阶段4:测试与优化(4周)单元测试与集成测试性能优化安全审计用户体验优化阶段5:部署与上线(2周)生产环境配置数据迁移用户培训系统监控设置7.2 里程碑需求确认:项目启动后2周设计完成:项目启动后4周核心功能完成:项目启动后12周全部功能完成:项目启动后18周测试完成:项目启动后22周系统上线:项目启动后24周7.3 资源需求人力资源项目经理:1名前端开发:2名后端开发:3名UI/UX设计师:1名测试工程师:2名DevOps工程师:1名硬件资源开发服务器:4台测试服务器:2台生产服务器:根据负载需求确定(最低4台)数据库服务器:2台(主从架构)缓存服务器:2台(集群)8. 风险评估与缓解策略8.1 潜在风险技术风险:新技术栈学习曲线进度风险:需求变更导致延期资源风险:关键人员流失集成风险:与现有系统集成困难性能风险:高并发场景下性能问题8.2 缓解策略技术风险:提前培训,建立技术支持渠道进度风险:采用敏捷开发,控制变更范围资源风险:知识共享,文档完善集成风险:提前进行集成测试,预留缓冲时间性能风险:性能测试,架构优化9. 验收标准9.1 功能验收所有核心功能按需求规格实现用户角色权限正确实施预约流程完整可用报表功能准确无误9.2 性能验收满足性能需求指标压力测试通过并发用户支持达标9.3 安全验收安全审计无高危漏洞数据加密正确实施权限控制有效9.4 用户体验验收用户界面符合设计规范操作流程直观简便响应式设计在各设备上正常显示10. 维护与支持计划10.1 系统维护定期安全更新性能监控与优化数据库维护功能迭代计划10.2 用户支持在线帮助文档用户培训计划技术支持响应流程问题跟踪系统11. 附录11.1 术语表RBAC:基于角色的访问控制SSO:单点登录JWT:JSON Web TokenAPI:应用程序接口UI/UX:用户界面/用户体验11.2 参考文档企业IT架构标准安全合规要求UI/UX设计规范API设计最佳实践
复制代码

到这里的话,我们就实现了第一步,也是过去产品经理的工作,通过自然语言,借助 AI 辅助进行深度需求分析,最终生成详细需求文档的操作。完成了第一步,下面我们就可以进入第二步,从需求文档到设计稿。

需求→设计稿

当我们拿到需求文档之后,我们就可以基于我们的需求文档来生成详细高清的设计稿,这里我们切换到【Design】设计界面,在 AI 对话框中输入我们的要求【基于上面的需求文档生成设计稿】

在接收到我们新的需求之后,CodeBuddy 会自动结合上下文,读取我们上面对话生成的需求文档并生成设计稿页面,由于我们的功能不仅仅只涉及到一个页面,因此这里会自动生成需求文档中涉及的每一个页面

这里我有点疑惑的是,我在 AI 对话框中输入的需求是中文,生成的需求文档也是中文,在 AI 接收到生成设计稿命令后,后面关于 AI 对话内容需求的分析变成了英文。不过没关系,我们这里主要关注的是设计稿页面的生成,对于需求本身,需求文档已经了然于胸了。另外需要注意,由于我们的需求文档涉及到会议室系统的用户认证系统、会议室管理模块、预约功能、查询及报表功能、管理功能等多个和会议室系统相关的内容,涉及的页面?(个人理解,Design 应该是生成设计稿文件,而不是当下生成的 html 页面)比较多,因此在生成 UI 设计稿的耗时可能会比较长,这里需要耐心等待…待所有设计页面全部生成之后,CodeBuddy IDE 会自动调用 node.js 命令部署本地页面,并生成预览页面供我们体验

我们也可以直接在本地浏览器输入 node.js 部署后生成的会议室预约系统设计稿页面,在浏览器中输入:http://localhost:3000/ 下面我们来看一下我们的会议室预约系统的页面吧(到这里,我其实不太理解 Design 的功能,我理解的是生成设计稿,但是目前生成的是 html 代码页面),不过没关系,反正后面 Coding 也是要生成 html 代码页面的,这里算是提前进入了代码阶段

如果是过去的话,不管是前端开发者还是后端开发者,有这样的可以交互的原型图(设计稿),那开发过程简直不要太爽,拿过来只需要修改,无需再写交互或者样式。这里我又尝试点击了其他菜单,页面没有切换,那么个人理解是其他菜单页面还没有生成,那么我们继续让 CodeBuddy IDE 帮助我们生成其他菜单页面,输入我们的需求

此时我们可以看到,在我们指定了分析语言用中文展示之后,再次生成页面时,AI 对话响应区域的需求分析内容就展示为了中文,这样可以更方便我们了解当前生成页面的功能

在 AI 生成设计稿页面的过程中,AI 会自动检测页面的生成进度,当遇到问题时,会自动根据遇到的问题进行分析处理,就像下面的情况,在 AI 生成 equipment.html 页面内容时,页面内容被截断了,CodeBuddy 会自动分析并调用工具来完成截断页面内容的补足

等待所有页面生成完成之后,CodeBuddy IDE 依旧会自动部署页面到本地并生成访问链接,复制访问链接到浏览器:http://localhost:3000/notifications.html 可以看到本次生成的页面内容信息

到这里我其实想说,我上面的需求【继续生成其他菜单页面,AI 分析语言中文展示】其实是想生成红框中菜单的页面,目前是红框中菜单没有对应的页面跳转,上面 AI 可能没有太理解我的问题

那么我换个问题,告诉 AI 我在会议室预约系统页面点击【预约管理】菜单没反应,那么我们的需求就来了【在会议室预约系统,点击菜单 预约管理 没反应,分析处理】,

在 AI 对话框输入我们的需求之后,我们就可以通过自然语言的方式,让 AI 帮助我们检测并修复我们遇到的问题

这里我们看到,其实我们刚才提到的四个菜单对应的页面已经生成了,只是因为在 index.html 页面中,其他导航菜单的链接不对的问题

在 index.html 和其他页面中,导航菜单的链接都是 href="#" 或者不正确的链接,这就是为什么点击"预约管理"没有反应的原因。我需要更新所有页面的导航菜单,确保链接正确指向对应的 HTML 文件。
复制代码

那么经过 AI 自动修复后的 index.html 页面,我们可以看到我们的【预约管理】菜单已经可以正常点击跳转了

并且,除了【预约管理】 菜单外的其他菜单也可以正常跳转,同时补充了相关的【用户管理】和【设备管理】菜单。到这里,我们的 UI 设计稿基本上就算完成了,但是在点击各个菜单查看功能的时候,我发现左侧菜单会出现丢失的情况,下面用一段小视频展示一下

播放

这里其实对于前端开发者来说,一眼就知道问题,每一个页面左侧的菜单栏目不完全一样导致的,其实也不是什么大问题,我们直接让 AI 接着帮我们修复就可以了,继续输入我们的需求【点击左侧菜单时,切换不同菜单页面,看到的菜单位置及菜单数不一致】

在接收到我们新的命令之后,CodeBuddy IDE AI 辅助会自动分析并对比当点击左侧菜单切换到不同页面时,菜单的位置和数量是否一致。如果不一致则自动检查所有页面的导航菜单,并确保它们完全一致

当分析请求的文件数过多时,可能会触发以下告警信息,这里我们无需担心,直接点击【Continue】继续执行上面的指令即可

等待所有的菜单对应的文件都检查修复之后,我们回到我们的本地访问地址,刷新页面后切换菜单,可以发现所有的操作菜单页面都可以正常切换操作,且不会存在切换到不同菜单页面时,菜单丢失的情况了

到这里,我们已经达到了我们的目前,实现了从需求文档到设计稿的转化,且我们的设计稿是可以点击,有交互的高清动态设计稿。我们来看一下我们借助 AI 生成的设计稿页面,对应 8 个菜单以及其他辅助页面

设计稿→代码

现在既然我们已经有了完整的设计稿页面,那么下一步就是基于现有的设计稿页面转化成真正可以操作的会议室预约系统了。在 AI 对话框中输入我们的需求指令【基于上面的设计稿,生成代码】同时选择【Coding】

这里我们其实也看到,在上面的通过需求文档转化为设计稿的操作中,我们选择的【Design】,但是通过 AI 辅助对话生成的是正经的 html 页面,也就是其实可以算是前端代码的【Coding】已经完成了。对于 AI 来说,当再次收到我们基于上面设计稿生成代码的指令时,就疑惑了

其实通常来说,设计稿的定义范围应该是高清页面图片,或者是原型图什么的,我们这里 AI 已经通过需求文档直接跳转到了前端页面代码开发,如果我们的需求文档不是 CodeBuddy IDE AI 辅助编写的,那么我们也可以通过选择设计稿或者是直接截图的方式让 CodeBuddy IDE 帮助我们生成代码。

由于上面我们通过 CodeBuddy IDE AI 辅助工具开发的会议室预约系统,页面已经部署在本地验证过,那么对于会议室预约系统的话,我们的操作就算告一段落了。那么到这里,既然是产品经理提出的需求,那么让产品经理或者业务来本地看具体的效果页面,是不是不太方便。那么 CodeBuddy IDE 同样为开发者提供了一键部署功能,一键部署至沙箱环境,生成分享链接,方便团队其他成员快速验证反馈。

这里我们直接点击 AI 对话框上面的【Deploy】,CodeBuddy IDE 会自动触发 【Deploy current project to remote】命令部署本地会议室预约系统到远程服务器

等待部署完成之后,可以看到 CodeBuddy 已经为我们生成了访问会议室预约系统的 URL 以及其他各个子菜单的页面请求地址

这里我们点击会议室预约系统的请求 URL,但是打开的页面并不是我们期望的会议室预约系统的样子,而是这样

那么我们直接让 AI 辅助工具帮助我们再次重新部署一次,这里我尝试了几次,通过自然语言的方式部署触发还是不能解决部署后页面不展示的问题,那么我们将问题页面截图后粘贴在 AI 对话框,并输入我们的需求指令【会议室预约系统部署后打开如截图,分析并处理后重新部署】

对于这个一键部署至沙箱环境的操作,可能不是一次两次可以部署成功,比如我经历了第三次部署失败之后,根据 AI 响应的问题,再次尝试部署

再次部署至沙箱环境之后,我们点击生成的链接发现,部署后的请求地址,仪表盘可以正常访问,

但是其他菜单对应的页面不能够正常访问

同样的操作,将我们访问失败的请求地址截图粘贴在 AI 对话框并让 AI 辅助处理,这个部署至沙箱环境的操作,通常情况一次部署并不能达到你的期望,当遇到问题时,比如上面的部署后请求 URL ,但是页面不展示,我们就可以直接将截图抛给 CodeBuddy AI ,让 AI 自动分析处理并重新部署,部署成功后如下图效果


也就是说,我们的最终效果需要经过多轮处理,最后来看下我们的会议室预约系统分享链接可以正常访问,请求地址:http://7f49af71906a4d369bee227128e112e1.ap-singapore.cloudstudio.run/ 到这里,我们就成功实现了从想法—>需求—>设计稿—>代码(含部署)的全流程操作,最终的效果页面如图

到这里,我们本次的会议室预约系统从想法到落地到系统展示就圆满完成了。

生成 API

截止到这里,我们整个会议室预约系统的操作界面是圆满完成了,但是大家点击过页面就知道,目前操作只有前端页面,对应的传输数据的接口 API 还没有。在过去,前后端分离项目,前端页面开发过程中,后端需要手工提供 API 接口文档,那么现在,我们可以无需手工编写 API 接口文档,而是可以直接让 CodeBuddy IDE 来帮助我们生成前端页面需要用到的接口。在 AI 对话框输入我们的需求【会议室预约系统,分析并设计页面用到的接口】

在接收到我们的需求之后,CodeBuddy 会根据我们的需求分析我们当前的前端页面,并整理出需要的接口 API 相关内容

在 AI 对话框,我们可以看到响应的 API 接口内容如下,接口的内容也比较详细,包含了接口请求地址、请求方式、入参、返回参数等,比较符合日常开发的接口文档格式,但是这里需要注意的是这并不是接口文档


会议室预约系统 API 设计1. 用户认证 API1.1 用户注册端点: /api/auth/register方法: POST请求体:{  "firstName": "张",  "lastName": "三",  "email": "zhangsan@company.com",  "department": "it",  "password": "password123",  "confirmPassword": "password123"}响应:{  "success": true,  "message": "注册成功",  "data": {    "userId": "user123",    "email": "zhangsan@company.com",    "fullName": "张三",    "department": "信息技术",    "role": "user"  }}1.2 用户登录端点: /api/auth/login方法: POST请求体:{  "email": "zhangsan@company.com",  "password": "password123",  "rememberMe": true}响应:{  "success": true,  "message": "登录成功",  "data": {    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",    "user": {      "userId": "user123",      "email": "zhangsan@company.com",      "fullName": "张三",      "department": "信息技术",      "role": "user",      "avatar": "https://placehold.co/40x40/3B82F6/FFFFFF?text=ZS"    }  }}1.3 第三方登录(Microsoft/Google)端点: /api/auth/oauth/{provider}方法: GET参数: provider = "microsoft" 或 "google"响应: 重定向到第三方认证页面,然后回调到系统1.4 忘记密码端点: /api/auth/forgot-password方法: POST请求体:{  "email": "zhangsan@company.com"}响应:{  "success": true,  "message": "重置密码链接已发送到您的邮箱"}1.5 重置密码端点: /api/auth/reset-password方法: POST请求体:{  "token": "reset-token-123",  "password": "newPassword123",  "confirmPassword": "newPassword123"}响应:{  "success": true,  "message": "密码重置成功"}1.6 登出端点: /api/auth/logout方法: POST响应:{  "success": true,  "message": "登出成功"}2. 会议室 API2.1 获取会议室列表端点: /api/rooms方法: GET查询参数:location: 位置筛选(如 "building-a")capacity: 容量筛选(如 "small", "medium", "large")equipment: 设备筛选(如 "projector", "video-conf")search: 搜索关键词page: 页码limit: 每页数量status: 状态筛选(如 "available", "booked", "maintenance")响应:{  "success": true,  "data": {    "rooms": [      {        "id": "room101",        "name": "A101 会议室",        "location": "A栋 1楼",        "building": "A",        "floor": "1",        "capacity": 8,        "status": "available",        "equipment": ["projector", "whiteboard", "wifi"],        "image": "https://images.unsplash.com/photo-1497366754035-f200968a6e72",        "area": 25      },      {        "id": "room102",        "name": "B201 会议室",        "location": "B栋 2楼",        "building": "B",        "floor": "2",        "capacity": 15,        "status": "booked",        "equipment": ["projector", "video-conference", "wifi"],        "image": "https://images.unsplash.com/photo-1517502884422-41eaead166d4",        "area": 40      }    ],    "pagination": {      "total": 15,      "page": 1,      "limit": 10,      "pages": 2    }  }}2.2 获取会议室详情端点: /api/rooms/{roomId}方法: GET响应:{  "success": true,  "data": {    "id": "room101",    "name": "A101 会议室",    "location": "A栋 1楼",    "building": "A",    "floor": "1",    "roomNumber": "101",    "capacity": 8,    "status": "available",    "equipment": [      {        "id": "equip1",        "name": "投影仪",        "type": "projector",        "icon": "fas fa-tv"      },      {        "id": "equip2",        "name": "白板",        "type": "whiteboard",        "icon": "fas fa-chalkboard"      },      {        "id": "equip3",        "name": "高速WiFi",        "type": "wifi",        "icon": "fas fa-wifi"      },      {        "id": "equip4",        "name": "电源插座",        "type": "power",        "icon": "fas fa-plug",        "count": 8      },      {        "id": "equip5",        "name": "空调",        "type": "ac",        "icon": "fas fa-temperature-low"      }    ],    "images": [      "https://images.unsplash.com/photo-1497366754035-f200968a6e72",      "https://images.unsplash.com/photo-1497366754035-f200968a6e72"    ],    "area": 25,    "description": "这是一个适合小型团队会议的会议室,配备了基本的会议设施,包括投影仪、白板和高速WiFi。房间采光良好,环境舒适,适合进行头脑风暴、小组讨论和项目汇报等活动。"  }}2.3 获取会议室可用性端点: /api/rooms/{roomId}/availability方法: GET查询参数:year: 年份month: 月份day: 日期(可选,如果提供则返回当天的小时级别可用性)响应:{  "success": true,  "data": {    "roomId": "room101",    "roomName": "A101 会议室",    "year": 2023,    "month": 7,    "availability": [      {        "date": "2023-07-01",        "status": "available",        "bookings": []      },      {        "date": "2023-07-02",        "status": "available",        "bookings": []      },      {        "date": "2023-07-03",        "status": "booked",        "bookings": [          {            "id": "booking123",            "startTime": "10:00",            "endTime": "12:00",            "title": "团队培训"          }        ]      },      {        "date": "2023-07-14",        "status": "maintenance",        "bookings": []      }    ]  }}2.4 获取会议室当天时间段可用性端点: /api/rooms/{roomId}/availability/daily方法: GET查询参数:date: 日期 (YYYY-MM-DD)响应:{  "success": true,  "data": {    "roomId": "room101",    "roomName": "A101 会议室",    "date": "2023-07-12",    "timeSlots": [      {        "time": "08:00",        "status": "available"      },      {        "time": "09:00",        "status": "available"      },      {        "time": "10:00",        "status": "booked",        "booking": {          "id": "booking456",          "title": "产品周会",          "organizer": {            "id": "user123",            "name": "张经理",            "avatar": "https://placehold.co/20x20/3B82F6/FFFFFF?text=ZL"          },          "startTime": "10:00",          "endTime": "11:30"        }      },      {        "time": "11:00",        "status": "booked",        "booking": {          "id": "booking456",          "title": "产品周会",          "organizer": {            "id": "user123",            "name": "张经理",            "avatar": "https://placehold.co/20x20/3B82F6/FFFFFF?text=ZL"          },          "startTime": "10:00",          "endTime": "11:30"        }      },      // ... 其他时间段    ]  }}2.5 获取会议室预约历史端点: /api/rooms/{roomId}/bookings方法: GET查询参数:page: 页码limit: 每页数量status: 状态筛选(如 "confirmed", "completed", "cancelled")响应:{  "success": true,  "data": {    "bookings": [      {        "id": "booking456",        "title": "产品周会",        "date": "2023-07-12",        "startTime": "10:00",        "endTime": "11:30",        "status": "confirmed",        "organizer": {          "id": "user123",          "name": "张经理",          "department": "产品部",          "avatar": "https://placehold.co/32x32/3B82F6/FFFFFF?text=ZL"        }      },      {        "id": "booking789",        "title": "项目启动会",        "date": "2023-07-11",        "startTime": "09:00",        "endTime": "11:30",        "status": "completed",        "organizer": {          "id": "user456",          "name": "李经理",          "department": "研发部",          "avatar": "https://placehold.co/32x32/10B981/FFFFFF?text=LM"        }      }    ],    "pagination": {      "total": 12,      "page": 1,      "limit": 10,      "pages": 2    }  }}3. 预约管理 API3.1 创建预约端点: /api/bookings方法: POST请求体:{  "roomId": "room101",  "title": "产品讨论会",  "date": "2023-07-20",  "startTime": "14:00",  "endTime": "16:00",  "description": "讨论新产品功能规划",  "repeat": "none", // none, daily, weekly, monthly, custom  "repeatUntil": "2023-08-20", // 如果重复,则提供结束日期  "participants": [    "user456@company.com",    "user789@company.com"  ]}响应:{  "success": true,  "message": "预约创建成功",  "data": {    "bookingId": "booking123",    "roomId": "room101",    "roomName": "A101 会议室",    "date": "2023-07-20",    "startTime": "14:00",    "endTime": "16:00",    "status": "confirmed"  }}3.2 获取预约列表端点: /api/bookings方法: GET查询参数:date: 日期筛选 (YYYY-MM-DD)roomId: 会议室ID筛选status: 状态筛选(如 "confirmed", "completed", "cancelled")view: 视图类型("day", "week", "month")page: 页码limit: 每页数量响应:{  "success": true,  "data": {    "bookings": [      {        "id": "booking123",        "title": "产品周会",        "roomId": "room101",        "roomName": "A101 会议室",        "location": "A栋 1楼",        "date": "2023-07-12",        "startTime": "10:00",        "endTime": "11:30",        "status": "confirmed",        "organizer": {          "id": "user123",          "name": "张经理",          "avatar": "https://placehold.co/20x20/3B82F6/FFFFFF?text=ZL"        },        "participants": [          {            "id": "user456",            "name": "李四",            "avatar": "https://placehold.co/20x20/10B981/FFFFFF?text=LS"          },          {            "id": "user789",            "name": "王五",            "avatar": "https://placehold.co/20x20/F59E0B/FFFFFF?text=WW"          }        ]      },      {        "id": "booking456",        "title": "客户演示",        "roomId": "room102",        "roomName": "B201 会议室",        "location": "B栋 2楼",        "date": "2023-07-12",        "startTime": "14:00",        "endTime": "15:00",        "status": "confirmed",        "organizer": {          "id": "user456",          "name": "李经理",          "avatar": "https://placehold.co/20x20/10B981/FFFFFF?text=LJ"        },        "participants": []      }    ],    "pagination": {      "total": 3,      "page": 1,      "limit": 10,      "pages": 1    }  }}3.3 获取预约详情端点: /api/bookings/{bookingId}方法: GET响应:{  "success": true,  "data": {    "id": "booking123",    "title": "产品周会",    "roomId": "room101",    "roomName": "A101 会议室",    "location": "A栋 1楼",    "date": "2023-07-12",    "startTime": "10:00",    "endTime": "11:30",    "description": "讨论本周产品进展和下周计划",    "status": "confirmed",    "repeat": "weekly",    "repeatUntil": "2023-08-30",    "organizer": {      "id": "user123",      "name": "张经理",      "email": "zhang@company.com",      "department": "产品部",      "avatar": "https://placehold.co/32x32/3B82F6/FFFFFF?text=ZL"    },    "participants": [      {        "id": "user456",        "name": "李四",        "email": "lisi@company.com",        "department": "研发部",        "avatar": "https://placehold.co/32x32/10B981/FFFFFF?text=LS",        "status": "accepted"      },      {        "id": "user789",        "name": "王五",        "email": "wangwu@company.com",        "department": "设计部",        "avatar": "https://placehold.co/32x32/F59E0B/FFFFFF?text=WW",        "status": "pending"      }    ],    "createdAt": "2023-07-10T08:30:00Z",    "updatedAt": "2023-07-10T08:30:00Z"  }}3.4 更新预约端点: /api/bookings/{bookingId}方法: PUT请求体:{  "title": "产品讨论会(更新)",  "date": "2023-07-20",  "startTime": "14:30",  "endTime": "16:30",  "description": "讨论新产品功能规划和市场策略",  "participants": [    "user456@company.com",    "user789@company.com",    "user101@company.com"  ]}响应:{  "success": true,  "message": "预约更新成功",  "data": {    "bookingId": "booking123",    "roomId": "room101",    "roomName": "A101 会议室",    "date": "2023-07-20",    "startTime": "14:30",    "endTime": "16:30",    "status": "confirmed"  }}3.5 取消预约端点: /api/bookings/{bookingId}方法: DELETE响应:{  "success": true,  "message": "预约取消成功"}3.6 响应预约邀请端点: /api/bookings/{bookingId}/respond方法: POST请求体:{  "response": "accept" // accept, decline, tentative}响应:{  "success": true,  "message": "已接受会议邀请"}4. 设备管理 API4.1 获取设备列表端点: /api/equipment方法: GET查询参数:type: 设备类型筛选status: 状态筛选(如 "available", "in-use", "maintenance")page: 页码limit: 每页数量响应:{  "success": true,  "data": {    "equipment": [      {        "id": "equip1",        "name": "投影仪 P2000",        "type": "projector",        "status": "available",        "location": "A栋 1楼",        "roomId": "room101",        "roomName": "A101 会议室",        "model": "Epson P2000",        "serialNumber": "EP2000-123456",        "purchaseDate": "2022-05-15",        "lastMaintenance": "2023-01-10"      },      {        "id": "equip2",        "name": "视频会议系统 VC100",        "type": "video-conference",        "status": "in-use",        "location": "B栋 2楼",        "roomId": "room102",        "roomName": "B201 会议室",        "model": "Polycom VC100",        "serialNumber": "PVC100-789012",        "purchaseDate": "2022-03-20",        "lastMaintenance": "2023-02-05"      }    ],    "pagination": {      "total": 25,      "page": 1,      "limit": 10,      "pages": 3    }  }}4.2 获取设备详情端点: /api/equipment/{equipmentId}方法: GET响应:{  "success": true,  "data": {    "id": "equip1",    "name": "投影仪 P2000",    "type": "projector",    "status": "available",    "location": "A栋 1楼",    "roomId": "room101",    "roomName": "A101 会议室",    "model": "Epson P2000",    "serialNumber": "EP2000-123456",    "purchaseDate": "2022-05-15",    "lastMaintenance": "2023-01-10",    "nextMaintenance": "2023-07-10",    "specifications": {      "resolution": "1920x1080",      "brightness": "3000 lumens",      "connectivity": ["HDMI", "VGA", "USB"]    },    "maintenanceHistory": [      {        "date": "2023-01-10",        "type": "regular",        "description": "常规维护和清洁",        "technician": "李工"      },      {        "date": "2022-08-15",        "type": "repair",        "description": "更换灯泡",        "technician": "王工"      }    ]  }}4.3 报告设备问题端点: /api/equipment/{equipmentId}/report方法: POST请求体:{  "issueType": "malfunction", // malfunction, damage, missing, other  "description": "投影仪无法正常显示,画面闪烁",  "urgency": "high" // low, medium, high}响应:{  "success": true,  "message": "问题报告已提交",  "data": {    "reportId": "report123",    "status": "pending"  }}5. 用户管理 API5.1 获取用户列表(管理员)端点: /api/users方法: GET查询参数:department: 部门筛选role: 角色筛选search: 搜索关键词page: 页码limit: 每页数量响应:{  "success": true,  "data": {    "users": [      {        "id": "user123",        "email": "zhangsan@company.com",        "firstName": "张",        "lastName": "三",        "fullName": "张三",        "department": "产品部",        "role": "admin",        "avatar": "https://placehold.co/32x32/3B82F6/FFFFFF?text=ZS",        "status": "active",        "lastLogin": "2023-07-12T08:30:00Z"      },      {        "id": "user456",        "email": "lisi@company.com",        "firstName": "李",        "lastName": "四",        "fullName": "李四",        "department": "研发部",        "role": "user",        "avatar": "https://placehold.co/32x32/10B981/FFFFFF?text=LS",        "status": "active",        "lastLogin": "2023-07-11T14:20:00Z"      }    ],    "pagination": {      "total": 50,      "page": 1,      "limit": 10,      "pages": 5    }  }}5.2 获取用户详情端点: /api/users/{userId}方法: GET响应:{  "success": true,  "data": {    "id": "user123",    "email": "zhangsan@company.com",    "firstName": "张",    "lastName": "三",    "fullName": "张三",    "department": "产品部",    "role": "admin",    "avatar": "https://placehold.co/32x32/3B82F6/FFFFFF?text=ZS",    "status": "active",    "phone": "13800138000",    "position": "产品经理",    "joinDate": "2021-05-10",    "lastLogin": "2023-07-12T08:30:00Z",    "bookingStats": {      "total": 45,      "thisMonth": 5,      "upcoming": 2    }  }}5.3 获取当前用户信息端点: /api/users/me方法: GET响应:{  "success": true,  "data": {    "id": "user123",    "email": "zhangsan@company.com",    "firstName": "张",    "lastName": "三",    "fullName": "张三",    "department": "产品部",    "role": "admin",    "avatar": "https://placehold.co/32x32/3B82F6/FFFFFF?text=ZS",    "status": "active",    "phone": "13800138000",    "position": "产品经理",    "notifications": {      "unread": 3    },    "preferences": {      "language": "zh-CN",      "theme": "light",      "emailNotifications": true    }  }}5.4 更新用户信息端点: /api/users/{userId}方法: PUT请求体:{  "firstName": "张",  "lastName": "三",  "phone": "13800138001",  "avatar": "base64-encoded-image-data",  "preferences": {    "language": "zh-CN",    "theme": "dark",    "emailNotifications": true  }}响应:{  "success": true,  "message": "用户信息更新成功",  "data": {    "id": "user123",    "fullName": "张三",    "avatar": "https://placehold.co/32x32/3B82F6/FFFFFF?text=ZS"  }}5.5 更改用户角色(管理员)端点: /api/users/{userId}/role方法: PUT请求体:{  "role": "admin" // user, admin, super_admin}响应:{  "success": true,  "message": "用户角色更新成功"}6. 通知 API6.1 获取通知列表端点: /api/notifications方法: GET查询参数:status: 状态筛选(如 "read", "unread")type: 类型筛选(如 "booking", "system", "maintenance")page: 页码limit: 每页数量响应:{  "success": true,  "data": {    "notifications": [      {        "id": "notif123",        "type": "booking",        "title": "会议邀请",        "message": "您被邀请参加产品周会",        "relatedId": "booking456",        "status": "unread",        "createdAt": "2023-07-11T15:30:00Z",        "actions": [          {            "type": "accept",            "label": "接受"          },          {            "type": "decline",            "label": "拒绝"          }        ]      },      {        "id": "notif124",        "type": "system",        "title": "系统维护通知",        "message": "系统将于今晚22:00-23:00进行维护升级",        "status": "read",        "createdAt": "2023-07-10T09:15:00Z"      }    ],    "pagination": {      "total": 15,      "page": 1,      "limit": 10,      "pages": 2    },    "unreadCount": 3  }}6.2 标记通知为已读端点: /api/notifications/{notificationId}/read方法: PUT响应:{  "success": true,  "message": "通知已标记为已读"}
复制代码

作为开发者,我们可能更习惯看的是接口文档,那么我们是否可以让 CodeBuddy IDE 直接帮我们生成接口文档,方便查阅呢?答案是:肯定的。在 AI 对话框中输入我们的需求【按照上述接口生成接口文档】

可以看到,CodeBuddy IDE 会根据上面分析生成的 API 接口内容编写接口文档 meeting-room-api-docs.md 文件 ,同时除了生成接口文档之外,还会为我们生成 会议室预约系统 API 设计总结、会议室预约系统数据库设计、会议室预约系统前后端集成方案、会议室预约系统实施计划、会议室预约系统 API 测试计划、会议室预约系统安全设计方案、会议室预约系统部署指南等等文档,方便我们更高效清楚的了解我们的会议室预约系统,简直比产品经理还要产品经理,只有详尽到极致,没有忽略的需求

这里考虑到文档的英文名字不是那么直观,那么我们可以让 CodeBuddy 帮我们生成中英文文件名的对应关系,就像这样【将文件名的英文替换为对应内容标题的中文】虽然没有中英文替换,但是生成了一个中英文对照关系 .md 文件

这里我们需要注意的是,如果你在使用 CodeBuddy IDE 开发工具时,没有指定打开文件夹,那么 CodeBuddy 会自动为我们创建日期格式的文件夹,

到这里,我们的会议室预约系统,前端页面以及后端的 API 接口文档、设计文档、实施文档等也都补充完全了。会议室预约系统到这里才是真的无懈可击了。

源码地址

这里为了方便大家可以快速体验当前会议室预约系统代码,已将会议室预约系统相关代码文件及接口文档、设计文档、实施文档等上传至开源地址:https://cnb.cool/LYDY-2025/meeting-room-system


补充体验

在上面的操作中,实际上我们并没有体会到从设计稿到代码的过程,因为我们的会议室预约系统等于说是从需求文档直接生成了前端页面代码。那么为了更好的诠释 CodeBuddy IDE 的设计稿转代码的功能,我们必须要试一下设计稿是如何转代码的。为了验证,我们去去腾讯云控制台截了一张图

我直接将截图粘贴在 AI 对话框,并对 AI 输入以下内容【根据当前设计稿截图,生成腾讯云控制台页面】

在接收到我们的需求之后,CodeBuddy 会根据截图内容以及我们的需求生成我们需要的页面,在生成页面结束之后,会对相关的文件进行一个详细的说明,一下是 AI 对话返回的内容

我们通过浏览器打开生成的 index.html 页面,可以看到 CodeBuddy 根据我们的设计稿截图生成的【腾讯云控制台】页面效果


这里我们可以看到我们生成的腾讯云控制台页面是不是和官方的一样,这就是轻轻松松设计稿到代码,一键生成。一键发布我们的【腾讯云控制台】页面项目到 CloudStudio,点击生成的页面访问链接:http://8e20d1fa1e7a4759a01994ef4e6a1534.ap-singapore.cloudstudio.run 看到如下效果

好了,到这一步,我们已经完整体验了 CodeBuddy IDE 的从想法到需求、从需求到设计稿、从设计稿到代码的全流程操作,整个操作过程通过自然语言的方式快速高效实现代码编写,在当下重效率抢市场的内卷时代,真的可以让开发者在卷别人的同时还能让自己不那么累,哈哈,体验真心不错。

最后总结

对于本次 CodeBuddy IDE 的内测体验,在操作界面展示上,和我们日常使用开发工具的布局并没有什么大的差异,比如:VSCode 、IntelliJ IDEA、PyCharm 等,这样有点好处就是,我们在使用新的开发工具 CodeBuddy IDE ,从使用习惯上、心理上都能够快速适应,降低操作难度,提高心理适应度。

在功能上,又比我们现在使用的 CodeBuddy IDE 插件更强大,对于插件版本的 CodeBuddy ,我们日常工作中主要是辅助代码功能开发。而 CodeBuddy IDE 开发工具,则可以实现从想法—>需求—>设计稿—>代码 的产品、设计、研发一体化开发。AI 对话框支持对自然语言的润色,方便对于 Prompt 不熟悉的产品人员快速上手。另外可以直接对接 Figma 设计原型快速生成页面代码,或者通过原型图截图放入 AI 对话框快速生成页面代码,且可以保证生成的页面代码与原型图或者设计稿无差异。

另外,CodeBuddy IDE 还支持生成接口文档,也就是说,你交给 CodeBuddy 一份设计稿,他可以完全复原你的设计稿页面,同时为你生成相应的接口文档,帮助我们快速实现原始需求的落地,投入实际生产应用,降低从想法到落地的时间区间。当然,目前的 CodeBuddy IDE 还处于内测阶段,功能上自然有一点不完善,具体的内容在上面体验的过程中也有提及。

最后,从我最初接触 CodeBuddy IDE 的 0.1.3 版本,到现在的 0.1.8 ,不足两周的时间,已经升级了五次版本,并且还有专门的体验问题反馈群,可以说,CodeBuddy IDE 产研团队一直在不断努力,希望可以打造更好用更强大的开发者工具。那么在这里,真诚的希望 CodeBuddy IDE 越来越好,AI 越来越懂开发者。

发布于: 3 小时前阅读数: 6
用户头像

让技术不再枯燥,让每一位技术人爱上技术 2022-07-22 加入

还未添加个人简介

评论

发布
暂无评论
他来了!她来了!CodeBuddy IDE 首发!首批限时内测开启,速来尝鲜!_CodeBuddyIDE_六月的雨在InfoQ_InfoQ写作社区