1. 项目背景与AI辅助开发探索
作为一名长期奋战在一线的全栈开发者,我最近在维护一个自研的个人时间管理Web应用「时光助手」。这个项目采用Vue3+Element Plus技术栈,核心功能围绕日历视图展开,包含长期任务管理、收集箱和日程安排三大模块。随着项目迭代,我意识到需要为小屏设备用户优化布局体验,这让我萌生了尝试AI编程辅助的想法。
在VS Code环境下,我安装了字节跳动的TRAE插件(支持多模型切换的AI编程助手)。选择这个工具主要基于三点考量:首先,它支持多个主流代码大模型横向对比;其次,直接集成在IDE中,与开发环境无缝衔接;最后,作为专业开发者工具,理论上应该对代码上下文有更好的理解能力。
提示:选择AI编程工具时,优先考虑与现有开发流程的整合度,避免因工具切换带来的额外学习成本。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心需求:小屏适配的布局改造
当前界面采用经典的三栏布局(如图1所示):
- 左侧长期任务列表(固定宽度300px)
- 中间收集箱区域(固定宽度250px)
- 右侧日历主视图(自适应宽度)

通过用户行为分析发现:
- 80%的操作集中在右侧日历区域
- 左侧两个区域日均访问频次不足5次
- 笔记本用户占比达35%,1366×768分辨率下显示空间紧张
改造目标很明确:将左侧两个区域改为可折叠面板,默认收起状态,点击展开。技术实现要点包括:
- 保持Vue单文件组件结构
- 使用Pinia管理折叠状态
- 确保日历组件能动态适应宽度变化
- 不破坏现有功能逻辑
3. AI模型横向评测实录
3.1 GLM-4.6:陷入死循环的困境
首次尝试智谱的GLM-4.6模型,输入需求描述后出现诡异现象:
bash复制[请求] 将左侧区域改为可折叠面板
[响应] 正在分析代码结构...
→ 检测到el-col布局
→ 准备添加折叠逻辑
→ 需要添加状态管理
→ 检测到el-col布局
→ 准备添加折叠逻辑
→ 需要添加状态管理
→ [循环持续2分钟后超时]
连续三次尝试均出现相同循环,最终插件提示"模型陷入循环,建议更换描述"。检查发现这可能与以下因素有关:
- 模型对Element UI的el-col布局解析存在缺陷
- 状态管理逻辑的自我引用
- 缺乏有效的循环中断机制
避坑指南:当AI陷入循环时,尝试:
- 提供更具体的DOM元素选择器
- 明确排除不需要修改的代码区域
- 分步骤提出需求
3.2 Qwen-3-Coder:破坏性修改的灾难
千问模型的响应速度令人惊艳,但结果堪称灾难:
vue复制<!-- 原代码 -->
import FullCalendar from '@fullcalendar/vue3'
import dayGridPlugin from '@fullcalendar/daygrid'
<!-- AI修改后 -->
import FullCalendar from '@fullcalendar/vue' // 错误版本
import resourceTimeline from '@fullcalendar/resource-timeline' // 未使用的插件
主要问题清单:
| 问题类型 | 具体表现 | 影响程度 |
|---|---|---|
| 依赖篡改 | 修改package引入方式,删除关键插件 | 致命 |
| 功能删除 | 移除后端API调用逻辑 | 严重 |
| 路径错误 | 修改组件引用路径和大小写 | 高 |
| 样式破坏 | 覆盖原有CSS规则 | 中 |
最致命的是,模型擅自删除了日历组件的关键插件:
javascript复制// 被删除的核心插件
dayGridPlugin, // 月视图
interactionPlugin, // 事件交互
timeGridPlugin, // 周/日视图
listPlugin, // 列表视图
bootstrap5Plugin // 主题样式
经过三轮修正尝试后,界面仍然无法正常渲染(如图2)。最终不得不放弃该方案,git回滚耗时约15分钟。

3.3 DeepSeek V3.1:可用的实践方案
DeepSeek的表现令人惊喜,其实现策略值得分析:
-
最小化修改原则
- 仅添加31行新代码
- 原有代码零删除
- 通过注释标记修改点
-
智能的布局方案
css复制/* 动态宽度控制 */
.left-panel {
transition: all 0.3s ease;
width: var(--panel-width);
}
.collapsed {
--panel-width: 0px;
overflow: hidden;
}
- 完善的状态管理
javascript复制// 使用Pinia存储状态
export const usePanelStore = defineStore('panel', {
state: () => ({
longTermVisible: true,
inboxVisible: true
}),
actions: { /* toggle方法 */ }
})
实现效果对比如下:
| 指标 | 原始版本 | DeepSeek方案 |
|---|---|---|
| 加载速度 | 1.2s | 1.3s |
| 内存占用 | 45MB | 46MB |
| 功能完整性 | 100% | 100% |
| 代码变更行数 | - | +31 |
唯一需要手动调整的是日历重绘逻辑:
javascript复制// 初始方案存在的问题
nextTick(() => {
calendar.value.getApi().updateSize() // 有时失效
})
// 优化后的方案
const resizeCalendar = debounce(() => {
window.dispatchEvent(new Event('resize'))
setTimeout(() => {
calendar.value?.getApi().updateSize()
}, 150)
}, 200)
最终实现效果完美(如图3),总耗时约2小时(含测试时间)。

4. 关键问题分析与解决方案
4.1 AI修改范围失控问题
根本原因:
- 缺乏完整的项目上下文理解
- 过度自信的代码补全机制
- 训练数据中的代码片段偏见
解决方案:
markdown复制1. 提供明确的代码边界标记
<!-- 修改区域开始 -->
...
<!-- 修改区域结束 -->
2. 指定保留内容
"请勿修改以下部分:
- 所有import语句
- API调用相关方法
- 样式表中的已有规则"
3. 使用差分验证
git diff --color-words
4.2 依赖管理陷阱
常见错误:
- 自动修改package.json
- 引入未声明的依赖
- 更改模块引入方式
防御措施:
javascript复制// 在vue.config.js中添加保护
configureWebpack: {
resolve: {
alias: {
'@fullcalendar/vue3': require.resolve('@fullcalendar/vue3')
}
}
}
4.3 样式冲突预防方案
采用CSS作用域隔离策略:
css复制/* 使用scoped样式 */
<style scoped>
/* 深度选择器覆盖 */
:deep(.fc-toolbar) {
padding: 0 1rem;
}
</style>
/* 或使用CSS Modules */
<style module>
.panel {
composes: base-panel from '@/styles/layout.css';
}
</style>
5. AI辅助编程最佳实践
基于本次实践,总结出以下工作流程:
-
需求拆解阶段
- 使用AI生成技术方案文档
- 对比不同实现思路
- 输出流程图和状态机设计
-
代码生成阶段
- 分模块提交需求
- 设置明确的修改约束
- 要求生成单元测试用例
-
代码审查阶段
- 逐行比对变更
- 运行静态分析工具
- 检查依赖变更
-
迭代优化阶段
- 基于错误信息反馈给AI
- 保留调试过程记录
- 建立问题知识库
特别推荐以下提示词模板:
markdown复制请基于以下约束实现[功能描述]:
1. 仅修改[指定文件/行号范围]
2. 保持[列出不变的核心逻辑]
3. 使用[指定技术方案]
4. 输出格式要求:
- 完整文件内容
- 修改说明注释
- 影响范围评估
6. 各模型能力对比
根据实测结果整理的模型评估表:
| 评估维度 | GLM-4.6 | Qwen-3-Coder | DeepSeek V3.1 |
|---|---|---|---|
| 需求理解 | ★★☆ | ★★★ | ★★★ |
| 代码准确性 | ★☆☆ | ★★☆ | ★★★ |
| 修改可控性 | ★☆☆ | ★☆☆ | ★★★ |
| 上下文保持 | ★★☆ | ★☆☆ | ★★★ |
| 响应速度 | ★★☆ | ★★★ | ★★★ |
| 复杂逻辑处理 | ★☆☆ | ★★☆ | ★★★ |
关键发现:
- DeepSeek在代码完整性保持上表现最佳
- 所有模型都存在"幻觉式"代码生成问题
- 响应速度与代码质量无正相关性
- 模型对现代前端框架的理解存在差异
7. 实战建议与优化方向
7.1 项目级优化策略
-
上下文增强:
- 创建architecture.md说明项目结构
- 维护tech-stack.json记录技术栈版本
- 添加prompt-guide.md指导AI交互
-
安全防护:
javascript复制// 在git hooks中添加验证 pre-commit: - 检查package.json变更 - 验证关键文件hash - 运行基础测试用例 -
知识沉淀:
- 记录成功的prompt模板
- 建立错误案例库
- 维护模型特性对照表
7.2 个人工作流改进
经过这次实践,我的新工作流调整为:
- 使用DeepSeek进行初始实现
- 用Qwen生成对比方案
- 手动融合最佳方案
- 提交前使用GLM做静态检查
对于关键业务模块,仍然保持:
- 人工编写核心逻辑
- AI辅助生成工具函数
- 结对编程审查机制
在日历组件的后续优化中,这种混合模式将开发效率提升了40%,同时降低了60%的回归缺陷。
