Codex 使用指南
Codex 使用指南 - Java 后端程序员版
文档摘要:本文是一份面向 Java 后端开发工程师的 Codex 智能编程助手完整使用指南。全文共 31 章,系统介绍了 Codex 的核心能力、基础使用方法、针对 Java 后端的实用技巧、Skills(技能)详解、MCP(Model Context Protocol)资源、插件生态、高效工作流以及进阶技巧。文档涵盖了从基础对话到高级工作流,从代码生成到数据库操作,从团队协作到安全实践的方方面面,旨在帮助开发者快速上手并高效利用 Codex 提升开发效率。
文档版本: v3.0 | 最后更新: 2026-06-29 | 适用对象: Java 后端开发工程师
一、Codex 是什么
Codex 是 OpenAI 推出的智能编程助手,基于 GPT-5 模型,能够理解代码、执行命令、读写文件、调试问题,是你结对编程的 AI 搭档。
核心定位
- 🤖 AI 编程搭档:不是替代你,而是增强你的开发效率
- 💻 全栈能力:从后端到前端,从代码到文档
- 🔧 工具集成:通过 MCP 协议连接数据库、GitHub、浏览器等外部服务
- 📚 知识管理:跨会话记忆,持续学习你的项目和习惯
二、核心能力全景图
1. 代码相关能力
| 能力 | 说明 | 典型场景 |
|---|---|---|
| 读写文件 | 查看、创建、修改任意代码文件 | 查看现有代码、新增功能文件 |
| 代码理解 | 分析项目结构、理解业务逻辑 | 接手老项目、排查复杂问题 |
| 代码生成 | 生成 Controller/Service/Mapper/Entity | 快速搭建 CRUD 模块 |
| 代码重构 | 优化命名、提取方法、消除重复 | 改善代码质量 |
| Bug 修复 | 定位问题根源并直接修改 | 解决 NullPointerException 等 |
| 单元测试 | 生成 JUnit/Mockito 测试用例 | 提高测试覆盖率 |
2. 命令行执行能力
- ✅ 运行
mvn/gradle构建命令 - ✅ 执行数据库查询、日志分析
- ✅ 启动/停止服务,查看进程状态
- ✅ Git 操作:commit、push、merge、rebase
- ✅ Docker/K8s 部署命令
3. 项目探索能力
- 🔍 快速扫描整个代码库(使用
rg高效搜索) - 📍 查找特定功能的实现位置
- 🔗 理解模块间依赖关系
- 🛤️ 追踪接口调用链
4. 文档与知识能力
- 📄 生成技术文档、API 文档
- 📖 解释框架原理(Spring/SpringBoot/MyBatis 等)
- 💡 提供最佳实践建议
- 🎨 生成 PPT、Excel、PDF 等办公文档
三、基础使用方法
对话方式
直接说需求,不用客气:
"帮我写一个用户登录接口"
"这个 NullPointerException 怎么解决"
"分析一下这个项目的架构"
"生成 OrderService 的单元测试"
常用指令格式
| 类型 | 示例 |
|---|---|
| 代码生成 | “创建一个 UserController,包含 CRUD 接口” |
| 问题排查 | “为什么这个接口返回 500” |
| 代码解释 | “解释一下这段代码的逻辑” |
| 重构优化 | “把这个方法拆分成更小的函数” |
| 搜索查找 | “找到所有使用 Redis 的地方” |
| 文档生成 | “为这个模块写一份 API 文档” |
| 测试编写 | “给 UserService 生成 Mockito 测试” |
提示词公式
[动作] + [对象] + [约束条件]
示例:
✅ "生成 一个用户登录接口 需要 JWT 认证和验证码"
✅ "修复 这个空指针异常 保留原有逻辑"
✅ "优化 这个 SQL 查询 提升性能"
❌ "帮我看看这个代码" (太模糊)
四、针对 Java 后端的实用技巧
1. Spring Boot 开发
常用提示词:
- "生成一个 RESTful API,包含 GET/POST/PUT/DELETE"
- "添加全局异常处理器 @ControllerAdvice"
- "配置 Swagger/Knife4j 文档"
- "集成 Redis 缓存"
- "添加 JWT 认证拦截器"
- "实现分页查询,使用 MyBatis-Plus PageHelper"
2. MyBatis/MyBatis-Plus
- "根据这张表结构生成 Entity、Mapper、XML"
- "写一个分页查询,带多条件筛选"
- "生成批量插入的代码"
- "优化这个慢 SQL"
- "实现动态 SQL,支持可选查询条件"
3. 数据库操作
- "帮我写一个存储过程"
- "生成数据迁移脚本"
- "分析这个查询的性能"
- "设计一个订单表的索引方案"
4. 测试相关
- "为这个 Service 生成 Mockito 单元测试"
- "生成集成测试,需要启动真实数据库"
- "添加参数化测试覆盖边界情况"
- "生成测试数据构造器"
5. 调试技巧
- "在这个方法入口添加日志"
- "生成一个复现这个问题的测试用例"
- "分析堆栈信息,找出根本原因"
- "对比两个版本的代码差异"
五、Skills(技能)详解
什么是 Skills?
Skills 是 Codex 的能力扩展包,类似于 IDE 的插件。每个 Skill 都有特定的触发条件和执行流程。
系统内置 Skills
| Skill | 用途 | 触发方式 |
|---|---|---|
frontend-design |
前端页面设计 | 自动识别前端相关任务 |
superpowers:* |
系统化工作流 | 自动加载,无需手动触发 |
web-access |
联网搜索 | 需要时自动调用 |
Superpowers 系列(核心工作流)
这是 Codex 最核心的技能集,强烈建议掌握:
流程控制类
| Skill | 用途 | 何时使用 |
|---|---|---|
brainstorming |
需求分析和方案设计 | 开始任何创造性工作前 |
writing-plans |
制定多步骤实施计划 | 复杂任务开始前 |
executing-plans |
执行已制定的计划 | 计划完成后 |
subagent-driven-development |
并行子代理开发 | 多个独立任务可并行时 |
质量保证类
| Skill | 用途 | 何时使用 |
|---|---|---|
test-driven-development |
TDD 开发模式 | 实现新功能前 |
systematic-debugging |
系统化调试 | 遇到 bug 时 |
verification-before-completion |
完成前验证 | 声称任务完成前 |
requesting-code-review |
请求代码审查 | 主要功能完成后 |
receiving-code-review |
接收和处理审查意见 | 收到 review 反馈时 |
Git 协作类
| Skill | 用途 | 何时使用 |
|---|---|---|
using-git-worktrees |
Git 工作区隔离 | 开始特性开发前 |
finishing-a-development-branch |
完成开发分支 | 准备合并/PR 时 |
Claude-Mem 系列(记忆与知识管理)
这些技能用于跨会话记忆和知识库构建:
| Skill | 用途 |
|---|---|
mem-search |
搜索历史会话记忆 |
learn-codebase |
系统性学习代码库 |
make-plan |
创建详细实施计划 |
do |
执行计划 |
knowledge-agent |
构建专业知识库 |
what-the |
技术概念解释 |
smart-explore |
基于 AST 的代码结构探索 |
pathfinder |
代码架构统一化分析 |
babysit |
监控 PR 直到可合并 |
timeline-report |
项目发展历程报告 |
实用 Skills(已安装)
| Skill | 用途 |
|---|---|
article-writer |
撰写技术文章、文档 |
pdf |
处理 PDF 文件 |
docx |
处理 Word 文档 |
xlsx |
处理 Excel 表格 |
pptx |
制作 PPT 演示文稿 |
planning-with-files-zh |
复杂任务规划跟踪 |
find-skills |
查找更多可用技能 |
codeagent |
多后端 AI 代码任务编排 |
karpathy-guidelines |
LLM 编码最佳实践指南 |
如何触发 Skill
在对话中提到 skill 名称即可:
"用 article-writer 帮我写一篇技术博客"
"用 systematic-debugging 分析这个问题"
"用 karpathy-guidelines 检查这段代码"
六、MCP(Model Context Protocol)资源
什么是 MCP?
MCP 是模型上下文协议,让 Codex 能够安全地连接外部服务和数据源。
已配置的 MCP 服务器
1. GitHub MCP
- 功能:访问 GitHub 仓库内容、Issues、PRs
- 使用示例:
"查看这个 PR 的代码变更" "搜索相关的 issue" "列出最近的 commits"
2. MySQL MCP (mysql-kkd-prod, mysql_dev, mall_prod)
- 功能:直接查询数据库表结构和数据
- 可用资源:订单表、商品表、用户表等
- 使用示例:
"查询订单表的最新 10 条记录" "分析 shop_order 表的结构" "统计今天的订单数量" - ⚠️ 安全提醒:生产环境只读操作,写入需人工确认
3. Context7 MCP
- 功能:查询最新的技术文档和 API 参考
- 使用示例:
"查一下 Spring Boot 3.2 的新特性" "MyBatis-Plus 的分页怎么用"
4. Chrome DevTools MCP
- 功能:控制 Chrome 浏览器进行自动化测试
- 使用示例:
"打开这个网页并截图" "测试登录流程"
5. Feishu MCP
- 功能:飞书文档、消息、多维表格操作
- 使用示例:
"创建一个飞书文档" "发送一条飞书消息"
6. Redis MCP (redis-local, redis-prod)
- 功能:Redis 缓存操作
- 使用示例:
"查看 Redis 中的 session 数据" "清理过期的缓存 key"
7. Utools MCP
- 功能:本地工具集成(剪贴板、OCR、待办等)
- 使用示例:
"复制这段文本到剪贴板" "创建一个待办事项"
8. WeChat MCP
- 功能:微信消息收发
- 使用示例:
"给考拉发送 hello" "查看最近的消息" - ⚠️ 注意:需要 macOS 辅助功能权限
如何使用 MCP 资源
直接描述需求,Codex 会自动选择合适的 MCP:
"查一下数据库里的订单数据" → 自动使用 MySQL MCP
"看看 GitHub 上这个仓库的最新提交" → 自动使用 GitHub MCP
七、插件生态
什么是插件?
插件是 Skills + MCP + Tools 的集合包,提供更完整的能力。
已安装的必备插件
| 插件 | 来源 | 核心功能 |
|---|---|---|
browser@openai-bundled |
OpenAI | 内置浏览器控制 |
chrome@openai-bundled |
OpenAI | Chrome 浏览器控制 |
context7@claude-plugins-official |
Anthropic | 文档/API 查询 |
playwright@claude-plugins-official |
Anthropic | 自动化测试/网页操作 |
superpowers@claude-plugins-official |
Anthropic | 系统化工作流 |
figma@openai-api-curated |
OpenAI | Figma 设计集成 |
claude-mem@claude-mem-local |
thedotmack | 跨会话记忆与知识库 |
documents@openai-primary-runtime |
OpenAI | Word 文档处理 |
pdf@openai-primary-runtime |
OpenAI | PDF 文件处理 |
spreadsheets@openai-primary-runtime |
OpenAI | Excel 表格处理 |
presentations@openai-primary-runtime |
OpenAI | PPT 演示文稿 |
template-creator@openai-primary-runtime |
OpenAI | 模板创建 |
插件版本对比
| 插件 | Claude Code 版本 | Codex 版本 | 状态 |
|---|---|---|---|
| superpowers | 5.1.0 | 6.0.3 | ✅ Codex 更新 |
| claude-mem | 12.1.5 | 13.8.1 | ✅ Codex 更新 |
| context7 | unknown | latest | ✅ 一致 |
| playwright | unknown | latest | ✅ 一致 |
插件目录结构
~/.codex/
├── plugins/
│ ├── cache/ # 插件缓存
│ │ ├── claude-plugins-official/
│ │ ├── claude-mem-local/
│ │ └── openai-bundled/
│ └── .marketplace-plugin-source-staging/
├── skills/ # 自定义 skills
│ ├── codeagent/
│ └── karpathy-guidelines/
└── memories/ # 项目经验记忆
└── java-backend-best-practices.md
八、高效工作流
场景 1:新功能开发
操作步骤:
- 描述需求:“我要做一个用户积分系统”
- Codex 分析现有架构
- 生成实体类、Mapper、Service、Controller
- 生成单元测试
- 运行测试验证
- 提交代码
场景 2:Bug 修复
操作步骤:
- 提供错误信息/堆栈
- Codex 定位问题代码
- 分析可能原因
- 给出修复方案
- 应用修复
- 运行验证
场景 3:代码审查
操作步骤:
- “review 这个 Pull Request”
- Codex 分析问题点
- 给出改进建议
- 可选:直接应用建议
场景 4:技术调研
操作步骤:
- “对比 Redis 和 Memcached 的优劣”
- Codex 搜索最新资料
- 生成对比分析报告
九、注意事项
✅ 推荐做法
- 直接表达需求,不用铺垫
- 一次聚焦一个任务
- 复杂任务让 Codex 先给计划
- 对重要修改要求验证后再应用
- 利用 Git 工作区隔离实验性改动
- 安装新工具后立即自测验证
❌ 避免做法
- 不要问"你能不能…",直接说需求
- 不要在同一个请求里塞太多不相关的任务
- 不要完全信任生成的代码,关键逻辑要 review
- 涉及生产数据的操作要格外小心
- 不要在对话中粘贴真实密码、密钥
权限说明
- 默认只能读写工作区目录
- 需要访问其他目录时会请求授权
- 网络访问受限,需要时会告知
- MCP 连接的外部服务需要单独授权
十、快捷参考
常用命令模板
# 查看当前工作区
ls -la
# 搜索代码(比 grep 快 10 倍)
rg "关键词"
# Git 状态
git status
# 构建项目
mvn clean package
# 运行测试
mvn test
# 查看依赖树
mvn dependency:tree
常用提示词模板
[动作] + [对象] + [要求]
示例:
- "生成 一个用户登录接口 需要 JWT 认证和验证码"
- "修复 这个空指针异常 保留原有逻辑"
- "优化 这个 SQL 查询 提升性能"
- "解释 这段代码 用中文"
- "为 OrderService 生成 完整的单元测试 覆盖边界情况"
十一、进阶技巧
1. 多轮对话保持上下文
Codex 会记住之前的对话内容,可以连续追问:
第一轮:"生成 User 实体类"
第二轮:"再加一个年龄字段"
第三轮:"生成对应的 Mapper XML"
第四轮:"生成 Service 层代码"
2. 让 Codex 先给方案再执行
"先给我分析一下这个项目结构,我们再讨论下一步"
"列出三种可能的解决方案,我选一个"
"这个改动有什么风险?"
3. 指定技术栈和版本
"用 Spring Boot 3.2 + MyBatis-Plus 3.5 生成代码"
"使用 JDK 17 的新特性"
"遵循阿里巴巴 Java 开发手册"
4. 代码风格约束
"使用 Lombok 简化代码"
"添加详细的中文注释"
"方法不超过 50 行"
"优先使用 Hutool 工具类"
5. 链式提示(Chain Prompting)
将复杂任务拆成多轮对话:
第 1 轮:"分析这个项目的分层架构"
第 2 轮:"基于上面的分析,设计用户模块的表结构"
第 3 轮:"生成对应的 Entity 类"
第 4 轮:"生成 Mapper 接口和 XML"
6. 提供上下文样本
"参考这个文件的风格,生成一个新的 Service:
[粘贴示例代码片段]
新 Service 需要实现的功能:..."
7. 交叉验证
对关键代码:
"生成这个功能的实现"
→ review 后
"用另一种方式实现同样的功能,对比优劣"
十二、IDE 与 Codex 的协作
Codex 桌面端 vs CLI
| 特性 | 桌面端 | CLI |
|---|---|---|
| 文件预览 | ✅ 支持图片/视频渲染 | ❌ 纯文本 |
| 浏览器集成 | ✅ 内置浏览器控制 | ❌ 需额外配置 |
| 线程管理 | ✅ 可视化线程列表 | ❌ 命令行切换 |
| 自动化 | ✅ 可视化配置 | ⚠️ 配置文件 |
| 适用场景 | 日常开发、视觉任务 | 服务器、CI/CD |
推荐工作流
- 桌面端:日常编码、调试、文档编写
- CLI:服务器部署、批量操作、自动化脚本
与 IDE 配合
- Codex 不替代 IDE,而是补充
- 在 IDE 中写代码框架 → 用 Codex 生成细节代码
- 用 Codex 分析问题时 → 跳转回 IDE 查看上下文
- Codex 生成的代码 → 粘贴到 IDE 中运行测试
十三、Token 消耗与成本意识
什么情况消耗 Token
- 每次对话请求
- 读取文件内容
- 执行命令并获取输出
- 调用 MCP 资源
节省 Token 的技巧
- 精准提问:避免开放式问题
- 分批处理:大文件分块读取
- 复用上下文:利用对话历史
- 本地解决:简单问题用 shell 命令
估算参考
| 任务类型 | Token 消耗 |
|---|---|
| 短对话 | ~500-2000 |
| 中等任务 | ~5000-20000 |
| 复杂重构 | ~50000+ |
十四、隐私与安全
数据流向
- 你的代码会发送到 OpenAI 服务器处理
- 对话历史保存在云端
- MCP 连接的外部服务(如数据库)需要授权
安全建议
1. 敏感信息脱敏
❌ "这是我的 API key: sk-xxx,帮我调用一下"
✅ "帮我写一个调用 API 的代码,key 从环境变量读取"
❌ "帮我连上生产数据库查一下用户表"
✅ "生成一个 SQL 查询语句,用于检查用户表的最新记录"
2. 生产环境谨慎
- 不要直接让 Codex 操作生产数据库
- 涉及删除/修改数据的命令先 review
- 重要变更前要求 Codex 生成预览
3. 权限最小化
- 只给必要的目录访问权限
- MCP 连接按需开启
- 定期清理不再使用的插件
十五、文件操作细节
读取文件
"查看 [文件名] 的内容"
"显示 [文件名] 的第 1-50 行"
"搜索 [关键词] 在哪些文件中出现"
注意事项:
- 大文件(>1000 行)建议分块读取
- 二进制文件需要特殊处理
- 符号链接可能需要额外权限
创建/修改文件
"创建一个新文件 [路径/文件名]"
"在 [文件名] 中添加一个方法"
"把 [旧内容] 替换成 [新内容]"
注意事项:
- 修改前 Codex 会显示 diff
- 重要文件建议先备份
- 批量修改前先小范围测试
十六、Git 操作细节
常用 Git 命令
# 查看状态
git status
# 查看差异
git diff
# 提交
git add .
git commit -m "描述"
# 推送
git push origin [分支名]
# 拉取
git pull origin [分支名]
# 切换分支
git checkout [分支名]
# 创建分支
git checkout -b [新分支名]
Codex Git 最佳实践
- 小步提交:每次功能点完成就 commit
- 有意义的提交信息:说明改了什么、为什么改
- 分支隔离:新功能在独立分支开发
- PR 前自测:确保代码能编译通过
让 Codex 帮你写提交信息
"根据当前 git diff 生成一个规范的 commit message"
十七、Maven/Gradle 项目细节
Maven 常用命令
# 清理编译
mvn clean
# 编译
mvn compile
# 测试
mvn test
# 打包
mvn package
# 跳过测试打包
mvn package -DskipTests
# 安装到本地仓库
mvn install
# 查看依赖树
mvn dependency:tree
# 分析依赖冲突
mvn dependency:analyze
Gradle 常用命令
# 清理
./gradlew clean
# 构建
./gradlew build
# 测试
./gradlew test
# 运行应用
./gradlew bootRun
让 Codex 帮忙
"帮我添加一个 Maven 依赖:[groupId:artifactId:version]"
"分析这个 pom.xml 的依赖结构"
"找出循环依赖"
"升级 Spring Boot 到最新版本"
十八、数据库操作细节
你环境中的 MCP 数据库
- mysql-kkd-prod: 生产相关数据(订单、商品、用户等)
- mysql_dev: 开发环境数据
- mall_prod: 商城相关数据
安全查询示例
"查询 shop_order 表的结构"
"列出 appointment 库的所有表"
"查看 tem_order 表的最新 5 条记录(只读)"
禁止的操作(Codex 会拒绝或警告)
- ❌ 直接 DELETE/UPDATE 生产数据
- ❌ 执行 DROP TABLE 等破坏性操作
- ❌ 无 WHERE 条件的批量更新
推荐的数据库工作流
- 让 Codex 生成 SQL 语句
- 人工 review SQL
- 在测试环境先执行
- 确认无误后再上生产
十九、日志分析技巧
常见日志位置
# Spring Boot 默认
logs/app.log
logs/error.log
# Tomcat
catalina.out
# Nginx
/var/log/nginx/access.log
/var/log/nginx/error.log
让 Codex 帮你分析日志
"分析这个错误日志,找出根本原因:
[粘贴日志内容]"
"从日志中提取所有 ERROR 级别的记录"
"统计过去 1 小时的请求量"
常用日志分析命令
# 查看最后 100 行
tail -n 100 app.log
# 实时追踪
tail -f app.log
# 搜索关键词
grep "ERROR" app.log
# 统计出现次数
grep -c "NullPointerException" app.log
二十、性能优化指导
Java 性能调优方向
| 方向 | 工具/方法 |
|---|---|
| JVM 调优 | jstat, jmap, VisualVM |
| 内存泄漏 | MAT, JProfiler |
| CPU 热点 | async-profiler, Arthas |
| SQL 慢查询 | EXPLAIN, slow query log |
| 接口响应 | Apache Bench, wrk |
让 Codex 帮你
"分析这段代码的性能瓶颈"
"给出这个接口的优化建议"
"帮我写一个性能测试用例"
"解释 JVM 参数 -Xms -Xmx 的作用"
常见优化场景
- N+1 查询问题:用 JOIN 或批量查询
- 重复计算:加缓存(Redis/本地缓存)
- 同步阻塞:改为异步或线程池
- 大对象创建:对象池复用
- 锁竞争:细粒度锁或无锁设计
二十一、微服务相关
常见微服务框架
- Spring Cloud
- Dubbo
- gRPC
让 Codex 帮你
"生成一个 Spring Cloud Feign 客户端"
"设计一个分布式事务方案"
"解释 Saga 模式和 TCC 模式的区别"
"帮我写一个熔断降级的配置"
微服务调试技巧
"追踪这个请求在各服务间的调用链"
"分析这个服务的健康检查失败原因"
"生成一个服务注册发现的排查清单"
二十二、容器化与部署
Docker 常用命令
# 构建镜像
docker build -t [镜像名] .
# 运行容器
docker run -p 8080:8080 [镜像名]
# 查看容器
docker ps
docker ps -a
# 查看日志
docker logs [容器 ID]
# 进入容器
docker exec -it [容器 ID] /bin/bash
Kubernetes 常用命令
# 查看 Pod
kubectl get pods
# 查看日志
kubectl logs [pod 名]
# 进入 Pod
kubectl exec -it [pod 名] -- /bin/bash
# 查看事件
kubectl get events
让 Codex 帮你
"生成一个 Spring Boot 应用的 Dockerfile"
"写一个 docker-compose.yml 配置"
"生成 Kubernetes Deployment 和 Service YAML"
"解释这个 Helm chart 的结构"
二十三、监控与告警
常见监控指标
| 类别 | 指标 |
|---|---|
| JVM | Heap 使用率、GC 次数、线程数 |
| 应用 | QPS、响应时间、错误率 |
| 数据库 | 连接数、慢查询、锁等待 |
| 系统 | CPU、内存、磁盘、网络 |
监控工具
- Prometheus + Grafana
- ELK Stack(日志)
- SkyWalking(链路追踪)
- Arthas(在线诊断)
让 Codex 帮你
"生成一个 Prometheus 监控配置"
"写一个 Grafana Dashboard JSON"
"设计一套告警规则"
"解释这个监控指标的含义"
二十四、安全相关
常见安全问题
| 类型 | 防护措施 |
|---|---|
| SQL 注入 | 参数化查询、ORM |
| XSS | 输入过滤、输出转义 |
| CSRF | Token 验证 |
| 敏感信息泄露 | 脱敏、加密存储 |
| 未授权访问 | 权限校验、RBAC |
安全工具
- OWASP ZAP(渗透测试)
- SonarQube(代码扫描)
- Dependency-Check(依赖漏洞)
让 Codex 帮你
"审查这段代码的安全隐患"
"生成一个 JWT 认证的实现"
"解释 OAuth2 的授权流程"
"帮我写一个密码加密的工具类"
二十五、团队协作规范
Git 分支策略
main/master - 生产分支,受保护
develop - 开发主干
feature/* - 功能分支
hotfix/* - 紧急修复分支
release/* - 发布分支
Commit 规范
feat: 新功能
fix: 修复 bug
docs: 文档更新
style: 代码格式
refactor: 重构
test: 测试相关
chore: 构建/工具变更
Code Review 清单
- 代码符合规范
- 有必要的注释
- 有单元测试
- 没有明显性能问题
- 没有安全隐患
- 考虑了边界情况
让 Codex 帮你
"review 这个 PR 的代码"
"生成一个 code review 检查清单"
"根据团队规范检查这段代码"
二十六、个人效率提升
建立个人知识库
- 保存常用的提示词模板
- 记录成功的问题解决案例
- 整理技术决策的理由和结果
自动化重复任务
"帮我写一个脚本,自动部署到测试环境"
"生成一个每日构建的 GitHub Actions 配置"
"写一个定时清理日志的 cron 任务"
持续学习
"总结 Spring Boot 3.0 的新特性"
"对比 MyBatis 和 JPA 的优劣"
"解释什么是领域驱动设计(DDD)"
二十七、常见问题 FAQ
Q: Codex 能替代程序员吗?
A: 不能。Codex 是助手,不是替代品。它擅长快速生成代码、查找问题、提供建议,但架构设计、业务理解、复杂决策仍需人类工程师。
Q: 生成的代码可以直接用吗?
A: 大部分可以,但必须 review 和测试。特别是核心业务逻辑、安全相关代码要仔细检查。
Q: 如何处理敏感数据?
A: 不要在对话中粘贴真实密码、密钥、客户数据。使用占位符或环境变量引用。
Q: Codex 会记住我的代码吗?
A: 在当前会话中会记住上下文。跨会话的记忆取决于是否启用了记忆功能(如 claude-mem)。
Q: 如何开始一个新项目?
A: 告诉 Codex 项目需求、技术栈、约束条件,让它帮你生成项目结构和初始代码。
Q: 遇到不懂的技术怎么办?
A: 直接问!“解释一下什么是 XXX”、“XXX 怎么用”、“给我个例子”。
Q: 微信自动化为什么失败?
A: 需要 macOS 辅助功能权限。前往「系统设置」→「隐私与安全性」→「辅助功能」,确保 WeChat 已勾选。添加权限后需重启微信。
二十八、术语速查
| 术语 | 含义 |
|---|---|
| Skill | Codex 的技能,扩展特定能力 |
| MCP | Model Context Protocol,模型上下文协议 |
| Plugin | 插件,包含 skills/MCP/tools |
| Worktree | Git 工作区,用于隔离开发 |
| Token | AI 处理的文本单位,影响成本 |
| Context | 上下文,对话的历史信息 |
| Prompt | 提示词,给 AI 的指令 |
| Diff | 代码差异对比 |
| PR | Pull Request,代码合并请求 |
| AST | Abstract Syntax Tree,抽象语法树 |
二十九、故障排除
问题:Codex 不响应
- 检查网络连接
- 等待片刻重试(可能有临时限流)
问题:命令执行失败
- 检查是否有权限
- 确认命令在当前环境可用
- 提供更详细的错误信息
问题:生成的代码不符合预期
- 明确说明你的具体要求
- 提供示例代码作为参考
- 让 Codex 重新生成
问题:微信自动化失败
- 检查 macOS 辅助功能权限
- 确保微信窗口在前台
- 重启微信使权限生效
- 确认联系人名称准确
问题:MCP 连接失败
- 检查 MCP 配置文件
- 确认网络连接正常
- 查看错误日志定位问题
问题:Skill 找不到或无法加载
- 用
find-skills查找可用技能 - 检查技能目录是否存在
- 重新安装技能
三十、学习路径建议
第 1 周:熟悉基础
- 尝试简单的代码生成和修改
- 练习用自然语言描述需求
- 了解可用的 commands
第 2 周:提高效率
- 学习使用 skills
- 尝试复杂任务的分解
- 利用 MCP 访问外部资源
第 3 周:深度整合
- 将 Codex 融入日常开发流程
- 探索高级功能(子代理、自动化等)
- 定制个人工作流
附录:快速索引
| 需求 | 怎么做 |
|---|---|
| 写代码 | 直接描述需求 |
| 改代码 | 指出文件和问题 |
| 查资料 | 让 Codex 搜索或查阅文档 |
| 调试 | 提供错误信息和上下文 |
| 测试 | 要求生成单元测试 |
| 部署 | 询问部署脚本或配置 |
| Review | 要求审查代码 |
| 文档 | 要求生成或更新文档 |
| 数据库查询 | 直接描述查询需求 |
| Git 操作 | 说出你想做的操作 |
| 打开应用 | “打开 [应用名]” |
| 发消息 | “给 [联系人] 发送 [内容]” |
文档版本:v3.0 - 完整版
最后更新:2026-06-29
总章节:30 章
适用对象:Java 后端开发工程师
维护者:Codex AI Assistant
结语
这份文档旨在帮助你快速上手并高效使用 Codex。记住:
- 多用多练:技能越用越熟
- 及时反馈:不满意就让 Codex 重来
- 保持批判:生成的代码要 review
- 持续学习:Codex 也在不断进化
祝你使用愉快!如有任何问题,随时问我。
三十一、详细使用指南(从零到精通)
31.1 首次启动与环境检查
检查清单:
- Codex 应用已安装并登录
- 工作区目录有读写权限
- MCP 服务器配置正确(
~/.codex/config.toml) - 插件已启用且版本最新
- 网络可访问 OpenAI API
验证命令:
# 检查 Codex 版本
codex --version
# 检查配置文件
cat ~/.codex/config.toml | grep -A 5 '\[mcp_servers\.'
# 检查插件状态
ls ~/.codex/plugins/cache/
31.2 第一个任务:Hello World 式体验
目标:让 Codex 生成一个简单的 Java 工具类,建立信任感。
操作步骤:
- 在 Codex 中输入:
帮我写一个 Java 字符串工具类 StringUtils,包含: - isEmpty(String str) 判断空字符串 - isBlank(String str) 判断空白字符串 - truncate(String str, int maxLength) 截断字符串 要求:添加 Javadoc 注释,方法不超过 20 行 - 等待 Codex 生成代码
- Review 生成的代码
- 复制到 IDE 中编译测试
- 如果满意,保存到项目
src/main/java/com/example/util/StringUtils.java
预期结果:Codex 应在 10-30 秒内生成完整代码,包含注释和边界处理。
31.3 日常开发工作流详解
场景 A:新增 CRUD 模块
完整提示词示例:
我有张订单表 order_info,字段如下:
id BIGINT PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(64) NOT NULL COMMENT '订单号',
user_id BIGINT NOT NULL COMMENT '用户ID',
amount DECIMAL(10,2) NOT NULL COMMENT '金额',
status TINYINT DEFAULT 0 COMMENT '状态: 0-待支付 1-已支付 2-已取消',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
请帮我生成完整的 MyBatis-Plus 六层代码:
1. OrderInfo Entity(Lombok + @TableName)
2. OrderInfoMapper 接口
3. OrderInfoService 接口
4. OrderInfoServiceImpl 实现类
5. OrderInfoController(RESTful API)
6. resources/mapper/OrderInfoMapper.xml
要求:
- 遵循阿里巴巴开发手册
- 添加参数校验 @Validated
- Controller 返回统一响应体 Result<T>
- Service 方法添加事务注解
- 每个方法都有 Javadoc 注释
Codex 执行流程:
- 分析表结构,识别主键、时间字段
- 生成 Entity 类(含 Lombok 注解)
- 生成 Mapper 接口(继承 BaseMapper)
- 生成 Service 接口(继承 IService)
- 生成 ServiceImpl(继承 ServiceImpl)
- 生成 Controller(含 CRUD 接口)
- 生成 Mapper XML(预留自定义 SQL 位置)
- 自动检查命名规范和注释完整性
场景 B:Bug 排查与修复
完整提示词示例:
我的 Spring Boot 应用启动报错,日志如下:
[ERROR] org.springframework.boot.SpringApplication - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'orderService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.mapper.OrderMapper' available
项目使用 MyBatis-Plus,OrderMapper 接口已经存在:
@Mapper
public interface OrderMapper extends BaseMapper<Order> {
}
请帮我:
1. 分析可能的原因(列出 3 种)
2. 给出每种原因的验证方法
3. 提供对应的修复方案
4. 告诉我如何避免类似问题
Codex 分析思路:
- 原因 1:
@MapperScan未配置或包路径错误 → 检查启动类注解 - 原因 2:OrderMapper 不在扫描路径下 → 检查 package 声明
- 原因 3:MyBatis-Plus 依赖缺失或版本冲突 → 检查 pom.xml
场景 C:代码重构与优化
完整提示词示例:
这个 UserService 类有 500 多行,方法职责不清晰,有很多重复的判空和日志代码。
请帮我:
1. 分析当前代码的问题(列出 Top 5)
2. 给出重构方案(分 3 个阶段)
3. 第一阶段先提取公共方法到 UserHelper 工具类
4. 第二阶段拆分大方法为小方法
5. 第三阶段引入设计模式优化
要求:
- 每次改动后都要有测试覆盖
- 保持原有功能不变
- 重构后的代码要符合 SOLID 原则
- 给出重构前后的对比
31.4 高级技巧实战
技巧 1:利用 claude-mem 跨会话记忆
问题:每次新会话都要重新介绍项目背景。
解决方案:
第一轮(建立记忆):
"用 claude-mem:mem-search 记录这个项目的基本信息:
- 技术栈:Spring Boot 3.2 + MyBatis-Plus 3.5 + MySQL 8.0
- 包结构:com.example.{controller,service,mapper,entity}
- 规范:阿里巴巴开发手册 + Lombok + Hutool
- 数据库:mall_dev(开发)/ mall_prod(生产)
把这个作为项目上下文保存"
后续会话:
"基于之前保存的项目上下文,帮我生成一个商品管理的 CRUD"
效果:Codex 会自动加载项目背景,无需重复说明。
技巧 2:Superpowers 系统化调试
问题:Bug 反复出现,找不到根因。
解决方案:
"用 superpowers:systematic-debugging 分析这个问题:
[粘贴错误信息和相关代码]
请按照以下步骤:
1. 复现问题(给出最小复现步骤)
2. 收集证据(日志、堆栈、变量值)
3. 提出假设(至少 3 个可能原因)
4. 验证假设(逐一排除)
5. 找到根因
6. 给出修复方案
7. 添加预防措施
效果:避免盲目试错,系统化定位问题。
技巧 3:并行子代理加速开发
问题:多个独立任务串行执行太慢。
解决方案:
"用 superpowers:subagent-driven-development 并行处理以下任务:
任务 1:生成 User 模块的 Entity/Mapper/Service/Controller
任务 2:生成 Order 模块的 Entity/Mapper/Service/Controller
任务 3:生成 Product 模块的 Entity/Mapper/Service/Controller
要求:
- 三个任务完全独立,可以并行
- 每个任务完成后自动合并
- 最后统一运行测试
效果:原本 30 分钟的任务缩短到 10 分钟。
技巧 4:MCP 数据库安全查询
问题:需要查生产数据但担心误操作。
解决方案:
"用 mysql-kkd-prod MCP 查询今天的订单统计:
SELECT DATE(create_time) as date, COUNT(*) as count, SUM(amount) as total
FROM shop_order
WHERE create_time >= CURDATE()
GROUP BY DATE(create_time)
注意:只读查询,不要执行任何写入操作。
查询前先确认表名和字段名是否正确。
Codex 安全检查:
- ✅ 检测到 SELECT 语句,允许执行
- ❌ 如果检测到 DELETE/UPDATE/DROP,会拒绝并警告
- ⚠️ 生产环境查询前会再次确认
31.5 文档编写实战
场景:生成 API 文档
提示词:
为 OrderController 生成 Swagger/OpenAPI 3.0 文档,包含:
- 所有接口的路径、方法、参数
- 请求/响应示例
- 错误码说明
- 认证方式
输出格式:Markdown + YAML
Codex 输出示例:
# 订单管理 API
## 创建订单
**POST** `/api/v1/orders`
### 请求参数
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| userId | Long | 是 | 用户ID |
| amount | BigDecimal | 是 | 订单金额 |
### 请求示例
```json
{
"userId": 1001,
"amount": 99.90
}
响应示例
{
"code": 200,
"data": {
"orderId": "ORD202606290001",
"status": "PENDING"
}
}
#### 场景:生成技术方案文档
**提示词:**
帮我写一份《分布式锁实现方案》技术文档,包含:
- 背景(为什么需要分布式锁)
- 方案对比(Redis vs ZooKeeper vs DB)
- 选型理由(为什么选 Redisson)
- 实现细节(代码示例)
- 注意事项(死锁、超时、重入)
- 监控告警
受众:团队其他后端工程师
风格:简洁专业,配流程图
### 31.6 团队协作集成
#### Git 工作流自动化
**提示词:**
帮我完成以下 Git 操作:
- 基于 develop 创建 feature/user-module 分支
- 将当前修改 commit,message 用 conventional commits 格式
- 推送到远程
- 创建一个 Draft PR,base 为 develop
- 请求 @team-lead 和 @backend-team review
PR 描述模板:
变更内容
- 功能点 1
- 功能点 2
测试情况
- 单元测试通过
- 手动测试通过
影响范围
- 涉及模块:
- 数据库变更:
- 配置变更:
#### Code Review 自动化
**提示词:**
用 superpowers:requesting-code-review review 这个 PR:
[PR URL 或 diff 内容]
重点关注:
- 安全隐患(SQL 注入、XSS、敏感信息泄露)
- 性能问题(N+1 查询、大对象、锁竞争)
- 代码规范(命名、注释、方法长度)
- 测试覆盖(边界条件、异常路径)
- 业务逻辑(是否符合需求)
输出格式:
- 严重问题(必须修复)
- 建议改进(可选)
- 做得好的地方(表扬)
### 31.7 个人知识库建设
#### 建立提示词库
在 `~/.codex/memories/prompt-library.md` 中保存常用提示词:
```markdown
# 我的提示词库
## 代码生成
- CRUD 六层代码生成模板
- 单元测试生成模板
- DTO/VO 转换模板
## Bug 排查
- NullPointerException 排查清单
- 内存泄漏排查步骤
- 慢 SQL 分析模板
## 文档编写
- API 文档模板
- 技术方案模板
- 会议纪要模板
## 代码审查
- 安全检查清单
- 性能检查清单
- 规范检查清单
记录成功/失败案例
在 ~/.codex/memories/case-study.md 中记录:
# 案例研究
## 成功案例
### 2026-06-29:订单模块快速开发
- 任务:生成订单 CRUD + 单元测试
- 耗时:15 分钟(传统方式需 2 小时)
- 关键提示词:[粘贴]
- 经验:提供表结构 + 明确规范要求,一次生成可用代码
## 失败案例
### 2026-06-28:复杂 SQL 生成错误
- 任务:生成多表关联查询
- 问题:Codex 生成的 SQL 缺少 JOIN 条件
- 原因:未提供表关系图
- 改进:下次先让 Codex 理解 ER 图再生成 SQL
31.8 故障排除进阶
问题诊断流程
常见问题速查表
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Codex 长时间无响应 | 网络延迟/API 限流 | 等待 30 秒重试;检查网络 |
| 命令执行权限不足 | 沙箱限制 | 使用 require_escalated 请求授权 |
| 生成代码编译失败 | 缺少依赖/版本不匹配 | 提供 pom.xml 或指定版本 |
| MCP 连接超时 | 服务未启动/配置错误 | 检查 config.toml;重启服务 |
| 微信自动化失败 | 辅助功能权限未生效 | 系统设置→隐私→辅助功能→重启微信 |
| 文件读取被拒绝 | 路径超出工作区 | 移动到工作区或请求授权 |
| Token 消耗过快 | 提示词过长/文件过大 | 精简提示词;分批读取文件 |
| 记忆未生效 | claude-mem 未初始化 | 运行 npx claude-mem@latest install |
31.9 性能调优指南
Codex 响应速度优化
- 精简提示词:去掉冗余描述,保留核心信息
- 分批处理:大任务拆成小任务,避免单次请求过长
- 复用上下文:利用对话历史,避免重复说明
- 本地预处理:简单搜索用
rg,复杂分析再用 Codex
Token 消耗优化
❌ 浪费 Token 的提示词:
"你好,我是一个 Java 后端程序员,现在有一个需求需要你帮忙。这个需求是关于用户管理的,具体来说是要做一个用户登录的功能。你能不能帮我写一下代码?谢谢!"
✅ 节省 Token 的提示词:
"生成用户登录接口:POST /api/login,参数 username/password,返回 JWT token"
Token 估算公式:
- 输入 Token ≈ 提示词字符数 / 4
- 输出 Token ≈ 生成代码行数 × 15
- 总消耗 = 输入 + 输出 + 上下文历史
31.10 安全最佳实践
代码安全自查清单
每次 Codex 生成代码后,手动检查:
- 输入校验:所有外部输入是否做了校验?
- SQL 注入:是否使用参数化查询?
- XSS 防护:输出是否做了转义?
- 敏感信息:密码/密钥是否硬编码?
- 异常处理:是否吞掉了异常?
- 并发安全:共享变量是否线程安全?
- 资源释放:IO/DB 连接是否正确关闭?
MCP 安全配置
# ~/.codex/config.toml 中的安全配置
[mcp_servers.mysql-kkd-prod.env]
ALLOW_INSERT_OPERATION = "false" # 生产环境禁止插入
ALLOW_UPDATE_OPERATION = "false" # 生产环境禁止更新
ALLOW_DELETE_OPERATION = "false" # 生产环境禁止删除
[mcp_servers.github.http_headers]
Authorization = "Bearer ${GITHUB_TOKEN}" # 使用环境变量,不要硬编码
文档版本:v4.0 - 终极完整版
最后更新:2026-06-29
总章节:31 章
适用对象:Java 后端开发工程师(初级到高级)
维护者:Codex AI Assistant
更多推荐



所有评论(0)