从会写代码到懂项目:AI 编程真正的难点在哪里?
从“会聊天的 AI”到“理解你代码的 AI”很多程序员第一次使用 AI 编程工具时会有一种错觉AI 这么聪明只要告诉它需求它应该能直接帮我完成开发。于是输入“帮我开发一个用户管理模块。”几秒钟后AI 输出ControllerServiceMapper数据库表前端页面。代码看起来非常完整。但是复制到真实项目后很快发现问题为什么生成的代码和现有架构不一致为什么 AI 又创建了一套用户体系为什么用了项目不存在的技术为什么业务逻辑和实际流程不一样为什么修改一个地方影响了一堆功能很多人开始怀疑AI 编程是不是没有想象中那么好用其实问题不在 AI。而在于你没有让 AI 真正理解你的项目。一、AI 为什么“不懂”你的项目1. AI 看到的是代码不是系统很多开发者认为我把代码给 AI它就能理解项目。实际上并不是。一个企业项目包含的信息远远超过代码。例如一个医院系统。代码里面可能只有SampleService.java SampleController.java SampleMapper.java但是隐藏的业务规则标本必须签到 ↓ 生成条码 ↓ 采集确认 ↓ 传输LIS ↓ 结果回传这些流程可能存在于产品文档会议记录老员工经验历史需求数据库设计。代码只是结果。不是全部知识。2. AI 不知道你的“为什么”软件项目里面最重要的问题不是“怎么写代码”。而是“为什么这么设计。”例如数据库有一个字段sample_stateAI看到0 1 2 3它不知道为什么不能0 → 3因为真实业务必须经过未采集 ↓ 已采集 ↓ 已送检 ↓ 已接收这种规则不写在代码里的时候AI无法知道。二、什么是上下文工程很多人关注Prompt Engineering提示词工程。例如优化你的提问方式。但是在复杂项目中Prompt 只是很小的一部分。真正重要的是Context Engineering上下文工程简单理解给 AI 提供完成任务所需要的全部背景信息。包括项目架构技术规范数据模型业务规则历史决策当前代码。普通 AI 使用需求 ↓ AI ↓ 代码上下文工程项目知识 代码 规范 业务规则 需求 ↓ AI ↓ 符合项目要求的代码三、如何给 AI 构建项目上下文一个成熟项目可以建立专门目录.ai/ ├── project-context.md ├── architecture.md ├── coding-rule.md ├── database-rule.md ├── business-rule.md └── api-standard.md这些文件就是AI 的项目知识库。四、architecture.md告诉 AI 系统怎么设计例如# 系统架构 技术栈 Spring Boot 3 MyBatis Plus MySQL 8 Redis 项目结构 Controller ↓ Service ↓ Mapper 架构规则 1. Controller禁止处理业务逻辑 2. Service负责业务编排 3. 数据访问必须经过Mapper 4. 公共代码统一放common模块这样 AI 在生成代码时不会随意创建结构。五、coding-rule.md告诉 AI 如何写代码很多项目最大的问题不是功能错误。而是代码风格混乱。例如团队要求接口统一返回ResultT异常BusinessException日志Slf4j那么告诉 AI编码规范 1. 所有接口返回ResultT 2. 禁止直接抛RuntimeException 3. 禁止System.out.println 4. Service方法必须考虑事务AI生成代码质量会明显提升。六、database-rule.md让 AI 理解数据库设计数据库是 AI 最容易犯错的地方。例如AI喜欢select * from user但是企业项目可能要求禁止select *大表必须分页查询必须走索引。可以定义数据库规范 1. 禁止select * 2. 新增字段必须兼容历史数据 3. 超过百万数据表必须考虑索引 4. SQL必须说明索引设计原因七、business-rule.md最容易被忽略的部分技术人员容易关注代码。但是 AI 最缺的是业务。例如订单系统订单规则 订单状态 CREATE PAYED SHIPPED FINISHED CANCEL 规则 支付完成后不能直接取消。 必须经过退款流程。否则 AI 很可能生成order.setStatus(CANCEL);但是实际业务这是错误操作。八、上下文工程的核心不要一次喂全部代码很多人还有一个误区把整个项目压缩上传给 AI。这也不是最佳方案。原因项目太大。信息噪声太多。更好的方式分层提供上下文。第一层项目级上下文告诉 AI整个系统是什么。例如技术栈架构业务范围。第二层模块级上下文例如订单模块提供表结构接口服务关系。第三层任务级上下文例如当前需求增加订单取消功能。只提供相关代码。这种方式类似新人入职。不是第一天给他整个公司的所有资料。而是先了解公司再了解部门最后处理任务。九、如何让 AI 参与真实开发推荐流程第一步让 AI 阅读不要修改。提示分析当前模块。 说明 1. 模块职责 2. 类之间关系 3. 数据流转 4. 业务规则 不要生成代码。第二步让 AI 设计根据当前项目。 设计实现方案。 不要编码。第三步人工确认检查是否符合架构是否影响旧功能是否存在风险。第四步让 AI 实现限制只修改order模块。 禁止新增框架。 禁止修改公共代码。 遵循项目规范。十、上下文工程带来的变化过去程序员问 AI帮我写代码。现在高级开发者我建立项目知识体系让 AI 按照我的工程规则开发。普通使用AI 只是聊天工具工程化使用AI 是项目成员十一、未来开发竞争力在哪里未来程序员之间的差距不会只是谁写代码快。而是谁能让 AI 更好理解自己的系统。核心能力1. 架构能力知道系统应该怎么设计。2. 业务抽象能力知道业务规则如何表达。3. 上下文管理能力知道什么信息应该提供给 AI。总结AI 写不好代码很多时候不是 AI 能力不足。而是我们没有告诉它这个项目是什么它为什么这样设计哪些事情不能做。真正高效的 AI 开发方式不是提高 Prompt 技巧让 AI 多写代码。而是建立上下文工程让 AI 在你的项目规则内工作。最懂如何让 AI 理解项目、遵守规则、稳定交付的人。

相关新闻

第二讲:浮点型数据存储可能带来的问题(for循环中)

第二讲:浮点型数据存储可能带来的问题(for循环中)

#include<stdio.h>int main(void) {float sum 0;for (int i 1;i<100;i)//为什么这里不推荐或者说不允许使用float i&#xff1b;{sum (1 /(float) i) sum;}printf ("sum %f",sum); }因为浮点数在计算机里是不精确的&#xff0c;0.1 0.2 在计算机里不等…

2026/10/27 3:20:17 阅读更多 →
SpringBoot在线考试系统:一小时部署与核心功能实战指南

SpringBoot在线考试系统:一小时部署与核心功能实战指南

这次我们来看一个基于SpringBoot的在线考试管理系统。这是一个前后端分离的Java Web项目&#xff0c;源码完整&#xff0c;功能涵盖用户管理、题库管理、在线考试、自动阅卷和成绩统计等核心模块。对于正在寻找毕业设计、课程设计或简历项目的Java学习者来说&#xff0c;这是一…

2026/10/21 21:41:12 阅读更多 →
硬件缺陷排查实战:从个体诊断到批次风险验证的技术框架

硬件缺陷排查实战:从个体诊断到批次风险验证的技术框架

在实际硬件维护和供应链透明度讨论中&#xff0c;戴尔等大型OEM厂商的硬件缺陷披露机制是一个常被提及的话题。虽然我们无法核实“1100万台电脑缺陷”这一具体传闻的真实性&#xff0c;但围绕硬件缺陷的发现、厂商响应、用户应对以及技术排查&#xff0c;有一套成熟的工程实践。…

2026/10/24 6:22:19 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年&#xff0c;我大部分时间都在跟浏览器标签页打交道&#xff0c;直到第一次把桌面应用跑起来&#xff0c;才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词&#xff0c;最开始是在某段时间频繁出现在同事的讨论里&#xff0c;一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档&#xff0c;主要面向智能锁安装人员、终端用户及售后维护者&#xff0c;帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件&#xff0c;大小4.37MB&#xff0c;内容结构清晰&#xff…

2026/10/25 22:36:10 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统&#xff0c;整车要求空载跑到8m/s&#xff0c;电机转速已经拉到额定点&#xff0c;驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令&#xff0c;转速纹丝不动&#xff0c;三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/26 4:52:12 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年&#xff0c;用它写过嵌入式驱动、做过游戏服务端&#xff0c;也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词&#xff0c;我其实挺感慨的——这门语言的难点从来不是语法多&#xff0c;而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书以PDF格式发布&#xff0c;适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开&#xff0c;先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能&#xff0c;再给出完整安装步骤&…

2026/10/26 5:00:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历&#xff1a;翻开源码注释、论文摘要或者一份专业报告&#xff0c;每个字都认识&#xff0c;连在一起却像天书。想找人聊聊&#xff0c;身边要么没人懂&#xff0c;要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型&#xff0c;几秒钟之后&a…

2026/10/26 3:16:46 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 12:00:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 13:21:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →