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、浏览器等外部服务
  • 📚 知识管理:跨会话记忆,持续学习你的项目和习惯

二、核心能力全景图

Codex

代码能力

命令行执行

项目探索

文档生成

MCP 集成

读写文件

代码生成

Bug 修复

单元测试

Maven/Gradle

Git 操作

服务管理

代码搜索

架构分析

依赖追踪

API 文档

技术报告

PPT/Excel

MySQL

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 分析架构

生成代码

生成测试

运行验证

提交代码

操作步骤:

  1. 描述需求:“我要做一个用户积分系统”
  2. Codex 分析现有架构
  3. 生成实体类、Mapper、Service、Controller
  4. 生成单元测试
  5. 运行测试验证
  6. 提交代码

场景 2:Bug 修复

提供错误信息

定位问题代码

分析可能原因

给出修复方案

应用修复

运行验证

操作步骤:

  1. 提供错误信息/堆栈
  2. Codex 定位问题代码
  3. 分析可能原因
  4. 给出修复方案
  5. 应用修复
  6. 运行验证

场景 3:代码审查

Review PR

分析问题点

给出改进建议

是否应用?

直接修改

手动处理

操作步骤:

  1. “review 这个 Pull Request”
  2. Codex 分析问题点
  3. 给出改进建议
  4. 可选:直接应用建议

场景 4:技术调研

提出问题

搜索最新资料

生成对比分析

给出推荐方案

操作步骤:

  1. “对比 Redis 和 Memcached 的优劣”
  2. Codex 搜索最新资料
  3. 生成对比分析报告

九、注意事项

✅ 推荐做法

  • 直接表达需求,不用铺垫
  • 一次聚焦一个任务
  • 复杂任务让 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

推荐工作流

  1. 桌面端:日常编码、调试、文档编写
  2. CLI:服务器部署、批量操作、自动化脚本

与 IDE 配合

  • Codex 不替代 IDE,而是补充
  • 在 IDE 中写代码框架 → 用 Codex 生成细节代码
  • 用 Codex 分析问题时 → 跳转回 IDE 查看上下文
  • Codex 生成的代码 → 粘贴到 IDE 中运行测试

十三、Token 消耗与成本意识

什么情况消耗 Token

  • 每次对话请求
  • 读取文件内容
  • 执行命令并获取输出
  • 调用 MCP 资源

节省 Token 的技巧

  1. 精准提问:避免开放式问题
  2. 分批处理:大文件分块读取
  3. 复用上下文:利用对话历史
  4. 本地解决:简单问题用 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 最佳实践

  1. 小步提交:每次功能点完成就 commit
  2. 有意义的提交信息:说明改了什么、为什么改
  3. 分支隔离:新功能在独立分支开发
  4. 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 条件的批量更新

推荐的数据库工作流

  1. 让 Codex 生成 SQL 语句
  2. 人工 review SQL
  3. 在测试环境先执行
  4. 确认无误后再上生产

十九、日志分析技巧

常见日志位置

# 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 的作用"

常见优化场景

  1. N+1 查询问题:用 JOIN 或批量查询
  2. 重复计算:加缓存(Redis/本地缓存)
  3. 同步阻塞:改为异步或线程池
  4. 大对象创建:对象池复用
  5. 锁竞争:细粒度锁或无锁设计

二十一、微服务相关

常见微服务框架

  • 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 检查清单"
"根据团队规范检查这段代码"

二十六、个人效率提升

建立个人知识库

  1. 保存常用的提示词模板
  2. 记录成功的问题解决案例
  3. 整理技术决策的理由和结果

自动化重复任务

"帮我写一个脚本,自动部署到测试环境"
"生成一个每日构建的 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。记住:

  1. 多用多练:技能越用越熟
  2. 及时反馈:不满意就让 Codex 重来
  3. 保持批判:生成的代码要 review
  4. 持续学习:Codex 也在不断进化

祝你使用愉快!如有任何问题,随时问我。


三十一、详细使用指南(从零到精通)

31.1 首次启动与环境检查

通过

失败

打开 Codex

环境检查

创建/打开项目

查看错误日志

修复配置/权限

开始对话

检查清单:

  • 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 工具类,建立信任感。

操作步骤:

  1. 在 Codex 中输入:
    帮我写一个 Java 字符串工具类 StringUtils,包含:
    - isEmpty(String str) 判断空字符串
    - isBlank(String str) 判断空白字符串
    - truncate(String str, int maxLength) 截断字符串
    要求:添加 Javadoc 注释,方法不超过 20 行
    
  2. 等待 Codex 生成代码
  3. Review 生成的代码
  4. 复制到 IDE 中编译测试
  5. 如果满意,保存到项目 src/main/java/com/example/util/StringUtils.java

预期结果:Codex 应在 10-30 秒内生成完整代码,包含注释和边界处理。

31.3 日常开发工作流详解

场景 A:新增 CRUD 模块

通过

失败

提供表结构

生成 Entity

生成 Mapper

生成 Service

生成 Controller

生成单元测试

运行测试

提交代码

修复问题

完整提示词示例:

我有张订单表 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 执行流程:

  1. 分析表结构,识别主键、时间字段
  2. 生成 Entity 类(含 Lombok 注解)
  3. 生成 Mapper 接口(继承 BaseMapper)
  4. 生成 Service 接口(继承 IService)
  5. 生成 ServiceImpl(继承 ServiceImpl)
  6. 生成 Controller(含 CRUD 接口)
  7. 生成 Mapper XML(预留自定义 SQL 位置)
  8. 自动检查命名规范和注释完整性
场景 B:Bug 排查与修复

编译错误

运行时异常

逻辑错误

通过

失败

提供错误信息

错误类型

定位语法问题

分析堆栈

Review 业务代码

给出修复方案

是否确认?

应用修复

调整方案

运行验证

完成

重新分析

完整提示词示例:

我的 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. 原因 1@MapperScan 未配置或包路径错误 → 检查启动类注解
  2. 原因 2:OrderMapper 不在扫描路径下 → 检查 package 声明
  3. 原因 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"
  }
}

#### 场景:生成技术方案文档

**提示词:**

帮我写一份《分布式锁实现方案》技术文档,包含:

  1. 背景(为什么需要分布式锁)
  2. 方案对比(Redis vs ZooKeeper vs DB)
  3. 选型理由(为什么选 Redisson)
  4. 实现细节(代码示例)
  5. 注意事项(死锁、超时、重入)
  6. 监控告警

受众:团队其他后端工程师
风格:简洁专业,配流程图


### 31.6 团队协作集成

#### Git 工作流自动化

**提示词:**

帮我完成以下 Git 操作:

  1. 基于 develop 创建 feature/user-module 分支
  2. 将当前修改 commit,message 用 conventional commits 格式
  3. 推送到远程
  4. 创建一个 Draft PR,base 为 develop
  5. 请求 @team-lead 和 @backend-team review

PR 描述模板:

变更内容

  • 功能点 1
  • 功能点 2

测试情况

  • 单元测试通过
  • 手动测试通过

影响范围

  • 涉及模块:
  • 数据库变更:
  • 配置变更:

#### Code Review 自动化

**提示词:**

用 superpowers:requesting-code-review review 这个 PR:
[PR URL 或 diff 内容]

重点关注:

  1. 安全隐患(SQL 注入、XSS、敏感信息泄露)
  2. 性能问题(N+1 查询、大对象、锁竞争)
  3. 代码规范(命名、注释、方法长度)
  4. 测试覆盖(边界条件、异常路径)
  5. 业务逻辑(是否符合需求)

输出格式:

  • 严重问题(必须修复)
  • 建议改进(可选)
  • 做得好的地方(表扬)

### 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 不响应

命令执行失败

生成代码错误

MCP 连接失败

遇到问题

问题类型

检查网络/API Key

检查权限/环境

检查提示词/上下文

检查配置/服务状态

修复后重试

优化提示词

重启 MCP 服务

解决?

记录解决方案

升级问题/寻求支持

常见问题速查表
问题 原因 解决方案
Codex 长时间无响应 网络延迟/API 限流 等待 30 秒重试;检查网络
命令执行权限不足 沙箱限制 使用 require_escalated 请求授权
生成代码编译失败 缺少依赖/版本不匹配 提供 pom.xml 或指定版本
MCP 连接超时 服务未启动/配置错误 检查 config.toml;重启服务
微信自动化失败 辅助功能权限未生效 系统设置→隐私→辅助功能→重启微信
文件读取被拒绝 路径超出工作区 移动到工作区或请求授权
Token 消耗过快 提示词过长/文件过大 精简提示词;分批读取文件
记忆未生效 claude-mem 未初始化 运行 npx claude-mem@latest install

31.9 性能调优指南

Codex 响应速度优化
  1. 精简提示词:去掉冗余描述,保留核心信息
  2. 分批处理:大任务拆成小任务,避免单次请求过长
  3. 复用上下文:利用对话历史,避免重复说明
  4. 本地预处理:简单搜索用 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

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐