如果你是一名前端或全栈开发者最近是否感觉越来越“卷”不仅要精通 React、Vue、Node.js还要懂 DevOps、云原生、性能优化。一个完整的项目从前端界面到后端接口再到数据库设计、部署上线往往需要一个团队协作数周。但今天一种新的开发范式正在悄然改变游戏规则一个人借助 AI能否高效、高质量地跑通从前端到后端的全流程答案是肯定的而且这不再是未来幻想。以Codex和Spec Coding为代表的 AI 辅助编程模式正从“写代码的助手”演变为“理解需求、设计架构、生成完整可运行项目”的工程伙伴。这不仅仅是效率提升更是一种开发范式的重构。本文将为你拆解如何利用这套新工具链将传统的团队协作流程压缩为单人可掌控的高效闭环。我们将从一个具体的“企业级后台管理系统”需求出发实战演示如何仅凭一人之力完成从需求分析、技术选型、前后端代码生成、数据库设计到本地联调、容器化部署的全过程。你会发现AI 重构的不是代码本身而是开发者的角色定位和工程效率的极限。1. 为什么说“AISpec”正在重构全栈开发过去全栈开发者的价值在于能够贯通整个技术栈但瓶颈也很明显人的精力有限。一个开发者很难同时保持对前端框架最新特性、后端服务最佳实践、基础设施运维等所有领域的深度精通。因此企业级项目通常需要前端组、后端组、测试组、运维组的分工协作。然而AI 编程工具的出现尤其是基于大型代码模型如 Codex的智能体正在打破这种“知识壁垒”。它们就像一个拥有海量代码记忆和模式识别能力的超级副驾。但单纯的代码补全Vibe Coding还不够它依赖开发者的即时灵感Vibe和频繁的人工干预。Spec Coding规格化编码是更进一步的范式。它的核心是开发者用结构化的、近似自然语言的“规格说明书”Spec来描述需求AI 根据这份规格生成符合工程规范的、模块化的、甚至可直接运行的代码。这意味着什么从“怎么写”到“写什么”你的核心工作从敲每一行代码转变为精准地定义需求、约束和架构。降低上下文切换成本你不需要在 Vue 组件、Spring Boot 控制器、SQL 语句之间反复切换思维模式AI 帮你完成跨栈的代码生成。保证一致性AI 基于同一份 Spec 生成的代码在命名规范、接口风格、错误处理上具有天然的一致性远超不同开发者手动协作的效果。Codex作为这一领域的先驱模型其能力不仅在于补全单行代码更在于理解整个代码文件的上下文生成完整的函数、类甚至文件。当它与 Spec Coding 的理念结合就构成了“一人全栈”的技术基础你负责制定清晰的“蓝图”SpecAI 负责高效、准确地“施工”Code。接下来的实战我们将看到这套组合拳如何具体落地。2. 核心工具与环境准备工欲善其事必先利其器。要实现“一人全栈”选择合适的 AI 工具并搭建顺畅的本地环境是关键第一步。2.1 工具选型为什么是 Codex 与 Spec Coding市面上 AI 编程工具很多如 Cursor、GitHub Copilot、通义灵码等。它们底层可能接入了类似 Codex 的模型。本文聚焦于“Codex 能力”和“Spec Coding 工作流”这两个核心概念你可以用任何支持类似功能的 IDE 或编辑器来实践。Codex能力层指代的是能够理解代码上下文、生成多行代码甚至文件的大模型能力。它擅长将注释和函数名转化为代码。Spec Coding工作流层是一种方法论。它要求你为一个模块或功能编写一份详细的文本描述包括输入、输出、数据结构、API 端点、业务逻辑等然后要求 AI 根据这份描述生成完整代码。我们的实战将基于一个假设你使用的 IDE 插件如 Cursor或 AI 助手能够接收详细的自然语言指令并生成高质量、可运行的项目代码。2.2 本地开发环境搭建为了模拟企业级实战我们需要一个完整的全栈环境。以下是基础清单Node.js 环境用于前端构建和运行后端如果选用 Node 全栈。推荐使用nvm管理版本。# 使用 nvm 安装 Node.js (以 v18.x 为例) nvm install 18 nvm use 18Java 环境可选如果后端选择 Spring Boot。需要 JDK 11 或 17。# 检查Java版本 java -versionPython 环境可选如果涉及 AI 微调或脚本。推荐 Python 3.8。Docker Docker Compose用于容器化部署和运行数据库等中间件。这是现代全栈开发的标配。# 检查Docker安装 docker --version docker-compose --version数据库我们选择 PostgreSQL 作为主数据库Redis 作为缓存。使用 Docker 运行。IDE 与 AI 插件本文演示将基于VS Code及其强大的 AI 生态。你需要安装VS Code一款支持 Chat 和 Edit 模式的 AI 插件如 Cursor、或 Copilot Chat。请确保其已正确配置和授权。2.3 项目初始化与规划在开始写任何代码之前先用 AI 帮你创建项目骨架。这是 Spec Coding 的第一步规划。打开你的 AI 编程助手以下指令以自然语言形式给出你可以在 AI 插件的 Chat 界面中输入Spec 1项目初始化创建一个企业级后台管理系统的全栈项目。要求前端使用 Vue 3 TypeScript Vite Element Plus。后端使用 NestJS TypeScript Prisma ORM。数据库使用 PostgreSQL。使用 pnpm 作为包管理器。项目采用 monorepo 结构使用pnpm-workspace.yaml管理。创建packages目录包含frontend和backend两个子项目。为前后端分别生成基础的package.json、配置文件vite.config.ts, nest-cli.json和入口文件。在根目录创建docker-compose.yml文件定义 PostgreSQL 和 Redis 服务。AI 助手会根据这份 Spec生成一系列文件和目录。你可能会得到类似如下的结构ai-admin-system/ ├── docker-compose.yml ├── package.json ├── pnpm-workspace.yaml ├── packages/ │ ├── backend/ │ │ ├── src/ │ │ ├── prisma/ │ │ ├── package.json │ │ ├── nest-cli.json │ │ └── tsconfig.json │ └── frontend/ │ ├── src/ │ ├── package.json │ ├── vite.config.ts │ └── tsconfig.json └── README.md关键点你没有手动敲一个命令而是通过一份清晰的规格描述让 AI 完成了项目的“奠基仪式”。这确保了项目结构从一开始就是规范且一致的。3. 数据库设计与 Prisma Schema 生成全栈开发的核心是数据。接下来我们用 Spec Coding 来设计数据库。3.1 编写数据模型规格说明书在packages/backend/prisma/目录下我们创建一个spec.md文件非必须但有助于理清思路或者直接向 AI 助手描述Spec 2数据模型设计为后台管理系统设计数据库模型使用 Prisma Schema 语言描述。包含以下实体User用户字段包括 id (String id default(cuid()))、email (String unique)、name (String?)、password (String)、role (枚举ADMIN, EDITOR, VIEWER)、createdAt (DateTime default(now()))、updatedAt (DateTime updatedAt)。与 Post 为一对多关系。Post文章字段包括 id、title (String)、content (String?)、published (Boolean default(false))、authorId (String)、createdAt、updatedAt。与 User 为多对一关系与 Category 为多对多关系。Category分类字段包括 id、name (String unique)、description (String?)。与 Post 为多对多关系。所有模型均启用软删除添加deletedAt (DateTime?)字段。为User表的email和Post表的title字段添加数据库索引。3.2 生成并审查 Prisma Schema将上述 Spec 输入 AI 助手并指示它“根据以上描述生成完整的schema.prisma文件内容。”AI 将生成如下代码// 文件路径packages/backend/prisma/schema.prisma generator client { provider prisma-client-js } datasource db { provider postgresql url env(DATABASE_URL) } enum Role { ADMIN EDITOR VIEWER } model User { id String id default(cuid()) email String unique name String? password String role Role posts Post[] createdAt DateTime default(now()) updatedAt DateTime updatedAt deletedAt DateTime? index([email]) } model Post { id String id default(cuid()) title String content String? published Boolean default(false) author User relation(fields: [authorId], references: [id]) authorId String categories Category[] createdAt DateTime default(now()) updatedAt DateTime updatedAt deletedAt DateTime? index([title]) } model Category { id String id default(cuid()) name String unique description String? posts Post[] createdAt DateTime default(now()) updatedAt DateTime updatedAt deletedAt DateTime? }审查与修正生成后你必须仔细审查。检查关系是否正确如Post与Category的多对多关系已正确建立字段类型是否符合预期索引是否添加。这是“一人全栈”中不可省略的架构师角色。你可以继续与 AI 对话“为Post和Category的多对多关系添加一个自定义关系表PostCategory并包含assignedAt字段。” AI 会据此修改 Schema。3.3 应用迁移并生成客户端审查无误后使用 Prisma 命令完成数据库操作。# 进入后端目录 cd packages/backend # 安装依赖 (如果未安装) pnpm install # 1. 创建数据库迁移文件 npx prisma migrate dev --name init # 2. 生成 Prisma Client 类型 npx prisma generate至此数据库层设计完成。AI 根据你的“数据蓝图”Spec生成了精确的 Schema而你通过命令完成了部署。4. 后端服务从 API Spec 到完整 CRUD接下来是后端业务逻辑。我们将为Post实体实现一套完整的 CRUD API。4.1 创建模块与服务的 Spec在 NestJS 中我们通常需要 Module、Service、Controller、DTO。我们可以让 AI 批量生成。Spec 3Post 模块生成在 NestJS 项目中为Post实体生成完整的 CRUD 模块。使用 NestJS CLI 的代码结构风格。创建posts模块posts.module.ts。创建posts.service.ts包含以下方法findAll(query: PaginationQueryDto): PromisePaginatedResponsePost支持分页、过滤按标题、发布状态、软删除过滤。findOne(id: string): PromisePost。create(createPostDto: CreatePostDto, userId: string): PromisePost。update(id: string, updatePostDto: UpdatePostDto): PromisePost。remove(id: string): Promisevoid执行软删除。创建posts.controller.ts对应上述服务方法定义 RESTful 端点GET /posts, GET /posts/:id, POST /posts, PATCH /posts/:id, DELETE /posts/:id。使用适当的装饰器Get, Post 等和状态码。创建 DTO 文件create-post.dto.ts: 包含 title (必填字符串)content (可选字符串)published (可选布尔)categoryIds (可选字符串数组)。update-post.dto.ts: 所有字段可选使用PartialType。pagination-query.dto.ts: 包含 page, limit, title?, published? 等查询字段。所有方法需包含适当的错误处理如未找到记录抛出NotFoundException。在 Service 中注入PrismaService进行数据库操作。将这段详细的 Spec 发给 AI。它会生成一整套文件。以posts.service.ts为例AI 可能生成如下核心代码// 文件路径packages/backend/src/posts/posts.service.ts import { Injectable, NotFoundException } from nestjs/common; import { PrismaService } from ../prisma/prisma.service; import { CreatePostDto } from ./dto/create-post.dto; import { UpdatePostDto } from ./dto/update-post.dto; import { PaginationQueryDto } from ./dto/pagination-query.dto; Injectable() export class PostsService { constructor(private prisma: PrismaService) {} async findAll(query: PaginationQueryDto) { const { page 1, limit 10, title, published } query; const skip (page - 1) * limit; const where { deletedAt: null, // 过滤已软删除的 ...(title { title: { contains: title, mode: insensitive } }), ...(published ! undefined { published }), }; const [posts, total] await Promise.all([ this.prisma.post.findMany({ where, skip, take: limit, include: { author: { select: { id: true, name: true, email: true } }, categories: true }, orderBy: { createdAt: desc }, }), this.prisma.post.count({ where }), ]); return { data: posts, meta: { page, limit, total, totalPages: Math.ceil(total / limit), }, }; } async findOne(id: string) { const post await this.prisma.post.findUnique({ where: { id, deletedAt: null }, include: { author: true, categories: true }, }); if (!post) { throw new NotFoundException(Post with ID ${id} not found); } return post; } async create(createPostDto: CreatePostDto, userId: string) { const { categoryIds, ...postData } createPostDto; return this.prisma.post.create({ data: { ...postData, authorId: userId, ...(categoryIds { categories: { connect: categoryIds.map(id ({ id })), }, }), }, include: { categories: true }, }); } // ... update 和 remove 方法 }关键点AI 不仅生成了方法骨架还根据 Spec 填充了 Prisma 查询逻辑、分页计算、关联查询include和软删除过滤deletedAt: null。这极大地减少了手动编写样板代码的时间。4.2 生成 API 文档可选但推荐为了前后端协作即使是一个人清晰的 API 文档至关重要。我们可以让 AI 根据 Controller 生成 OpenAPI (Swagger) 装饰器。Spec 4为 PostController 添加 Swagger 装饰器为上面生成的PostsController的所有端点添加ApiTags、ApiOperation、ApiResponse等装饰器用于生成 Swagger UI 文档。使用nestjs/swagger包。AI 会修改你的 Controller 文件添加丰富的装饰器使你的 API 在http://localhost:3000/api上拥有可交互的文档。5. 前端页面基于 API Spec 生成 Vue 组件与状态管理前端部分我们将创建文章列表页和创建/编辑表单。这里需要前后端 Spec 对齐。5.1 分析后端 API 接口首先让 AI 帮你分析已生成的后端 API 接口格式以便前端调用。Spec 5生成前端 API 类型定义与客户端基于后端PostsController的 Swagger 装饰器或代码为前端生成src/types/post.ts定义Post、PaginatedResponsePost、CreatePostInput、UpdatePostInput等 TypeScript 接口。src/api/client.ts使用 axios 创建一个配置好的 HTTP 客户端实例设置基础 URL 和拦截器。src/api/post.ts定义与后端PostsController对应的所有 API 函数getPosts,getPost,createPost,updatePost,deletePost。函数参数和返回值类型必须严格匹配。AI 会生成类型安全的 API 客户端这是连接前后端的桥梁。5.2 生成文章列表页组件现在生成一个功能完整的列表页。Spec 6生成文章管理列表页在src/views/posts/PostList.vue路径下创建一个 Vue 3 组件script setup语法。 要求使用 Element Plus 的ElTable、ElButton、ElPagination、ElInput、ElSelect等组件。页面包含标题搜索框、发布状态筛选下拉框、新增文章按钮、表格、分页器。表格列包括ID、标题、作者、分类、发布状态、创建时间、操作编辑、删除。使用usePostApi(来自上一步生成的API) 获取分页数据。实现搜索和筛选功能参数变化时重新请求数据。实现删除功能点击删除时弹出确认对话框调用删除 API成功后刷新列表。使用ElMessage进行成功/错误提示。使用ref和computed管理响应式状态。样式使用 Flex 布局保持整洁。AI 将生成一个包含近百行代码的完整组件。以下是核心逻辑片段!-- 文件路径packages/frontend/src/views/posts/PostList.vue -- template div classpost-list-container div classfilter-bar el-input v-modelsearchForm.title placeholder搜索标题 keyup.enterhandleSearch stylewidth: 200px; / el-select v-modelsearchForm.published placeholder发布状态 clearable el-option label已发布 :valuetrue / el-option label未发布 :valuefalse / /el-select el-button typeprimary clickhandleSearch搜索/el-button el-button clickresetSearch重置/el-button el-button typesuccess clickhandleCreate新增文章/el-button /div el-table :datatableData border stylewidth: 100%; margin-top: 20px; el-table-column propid labelID width180 / el-table-column proptitle label标题 / el-table-column propauthor.name label作者 / el-table-column propcategories label分类 template #default{ row } el-tag v-forcat in row.categories :keycat.id sizesmall stylemargin-right: 5px;{{ cat.name }}/el-tag /template /el-table-column el-table-column proppublished label状态 template #default{ row } el-tag :typerow.published ? success : info {{ row.published ? 已发布 : 草稿 }} /el-tag /template /el-table-column el-table-column propcreatedAt label创建时间 :formatterformatDate / el-table-column label操作 width180 template #default{ row } el-button sizesmall clickhandleEdit(row)编辑/el-button el-button sizesmall typedanger clickhandleDelete(row)删除/el-button /template /el-table-column /el-table div classpagination-wrapper el-pagination v-model:current-pagepagination.page v-model:page-sizepagination.limit :totalpagination.total :page-sizes[10, 20, 50, 100] layouttotal, sizes, prev, pager, next, jumper size-changehandleSizeChange current-changehandleCurrentChange / /div /div /template script setup langts import { ref, onMounted, computed } from vue; import { ElMessage, ElMessageBox } from element-plus; import { getPosts, deletePost } from /api/post; import type { Post, PaginatedResponse } from /types/post; // ... 更多导入 const tableData refPost[]([]); const loading ref(false); const searchForm ref({ title: , published: undefined as boolean | undefined, }); const pagination ref({ page: 1, limit: 10, total: 0, }); const fetchData async () { loading.value true; try { const params { page: pagination.value.page, limit: pagination.value.limit, ...searchForm.value, }; const res: PaginatedResponsePost await getPosts(params); tableData.value res.data; pagination.value.total res.meta.total; } catch (error) { ElMessage.error(获取数据失败); } finally { loading.value false; } }; const handleDelete async (row: Post) { try { await ElMessageBox.confirm(确认删除该文章, 提示, { type: warning }); await deletePost(row.id); ElMessage.success(删除成功); fetchData(); // 刷新列表 } catch (error) { // 用户取消或删除失败 } }; // ... 其他方法handleSearch, resetSearch, handleCreate, handleEdit, 分页事件 onMounted(() { fetchData(); }); /script style scoped /* ... AI 生成的样式 */ /style关键点AI 生成了包含完整交互逻辑、API 调用、状态管理和 UI 组件的页面。你只需要关注业务规则的特殊调整而不是从零开始搭建。5.3 生成表单对话框组件类似地你可以通过 Spec 生成创建/编辑文章的弹窗表单组件包含表单验证、分类多选等复杂功能。6. 联调、容器化与部署代码生成完毕接下来是让整个系统跑起来。6.1 本地联调启动基础设施在项目根目录运行docker-compose up -d启动 PostgreSQL 和 Redis。配置环境变量在packages/backend创建.env文件配置DATABASE_URL。DATABASE_URLpostgresql://postgres:passwordlocalhost:5432/ai_admin_db启动后端cd packages/backend pnpm run start:dev启动前端cd packages/frontend pnpm run dev访问与测试打开http://localhost:5173访问前端操作列表和表单通过浏览器开发者工具的 Network 面板或 Swagger UI (http://localhost:3000/api) 观察 API 请求与响应。6.2 容器化部署 Spec最后我们让 AI 为整个应用生成生产环境的 Dockerfile 和优化后的 Docker Compose 配置。Spec 7生成生产环境 Docker 配置为前端Vite生成多阶段构建的 Dockerfile使用 nginx 作为静态服务器。为后端NestJS生成多阶段构建的 Dockerfile使用 node:18-alpine 作为运行时。修改根目录的docker-compose.prod.yml包含前端、后端、PostgreSQL、Redis 服务并配置网络、依赖关系和健康检查。后端 Dockerfile 需要能运行prisma generate和prisma migrate deploy。AI 生成的docker-compose.prod.yml可能如下version: 3.8 services: postgres: image: postgres:15-alpine environment: POSTGRES_DB: ai_admin_db POSTGRES_USER: postgres POSTGRES_PASSWORD: your_secure_password volumes: - postgres_data:/var/lib/postgresql/data networks: - app-network healthcheck: test: [CMD-SHELL, pg_isready -U postgres] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine networks: - app-network backend: build: context: ./packages/backend dockerfile: Dockerfile environment: DATABASE_URL: postgresql://postgres:your_secure_passwordpostgres:5432/ai_admin_db REDIS_URL: redis://redis:6379 NODE_ENV: production ports: - 3000:3000 depends_on: postgres: condition: service_healthy redis: condition: service_started networks: - app-network frontend: build: context: ./packages/frontend dockerfile: Dockerfile ports: - 80:80 depends_on: - backend networks: - app-network volumes: postgres_data: networks: app-network: driver: bridge运行docker-compose -f docker-compose.prod.yml up -d --build你的完整全栈应用就在容器中运行了。7. 常见问题与排查思路在“一人全栈”的 AI 辅助流程中你可能会遇到一些典型问题。问题现象可能原因排查方式解决方案AI 生成的代码无法运行语法错误多1. Spec 描述模糊或有歧义。2. AI 上下文理解偏差。3. 依赖版本不匹配。1. 检查生成的代码定位错误行。2. 回看 Spec用更精确的技术术语重写。3. 检查package.json版本。1. 将大任务拆解为更小、更精确的 Spec。2. 提供更具体的代码示例或约束如“使用 async/await”“避免使用 any 类型”。3. 明确指定框架和库的版本。前端调用 API 404 或 CORS 错误1. 后端 API 路径错误。2. 后端未启用 CORS。3. 前端代理配置错误。1. 在浏览器开发者工具 Network 面板查看请求 URL 和响应。2. 检查后端控制器路由前缀和前端请求地址。3. 检查后端是否配置了nestjs/platform-express的 CORS。1. 确保前端 API 客户端baseURL正确。2. 在后端main.ts中启用 CORSapp.enableCors()。3. 或配置 Vite 代理。数据库连接失败1..env文件未加载或配置错误。2. Docker 容器网络不通。3. PostgreSQL 服务未启动。1. 检查后端日志中的数据库连接错误。2. 运行docker ps确认容器状态。3. 尝试在容器内用psql手动连接。1. 确认.env文件存在且变量名正确。2. 在docker-compose.yml中确保服务在同一个网络。3. 检查数据库容器日志。Prisma 迁移失败1. 数据库用户权限不足。2. 迁移文件与当前数据库状态冲突。3. 模型定义有语法错误。1. 查看 Prisma 迁移命令的详细错误输出。2. 检查prisma/migrations文件夹。1. 确保数据库用户有创建表、修改表的权限。2. 在开发环境可尝试prisma migrate reset警告会清空数据。3. 仔细检查schema.prisma语法。页面样式错乱或组件未渲染1. Element Plus 组件未正确注册或引入。2. Vue 或 Vite 版本不兼容。3. AI 生成的模板标签有误。1. 检查浏览器控制台是否有 JS 错误。2. 检查组件是否在模板中正确使用。3. 对比官方文档的组件用法。1. 确认main.ts中正确引入了 Element Plus 及其样式。2. 检查 AI 生成的组件导入语句。3. 简化 Spec先让 AI 生成最小可用组件再逐步添加功能。8. 最佳实践与工程建议将 AI 用于生产级项目需要遵循一些工程原则避免陷入“快而乱”的陷阱。Spec 的编写艺术Spec 的质量直接决定输出代码的质量。原子化一个 Spec 只完成一个明确的任务如“生成 Service 类”而不是“生成整个模块”。具体化使用技术术语明确输入输出、异常处理、性能要求如“分页每页默认10条”。上下文化在对话中可以引用之前生成的文件“基于上面生成的Post模型…”让 AI 保持上下文连贯。迭代化先生成骨架再逐步补充细节。不要期望一个 Spec 生成完美无缺的最终代码。代码审查与重构AI 是高级代码生成器不是架构师。必须人工审查仔细检查生成的代码特别是业务逻辑、安全边界如权限校验、错误处理和数据库查询。遵循团队规范如果项目有现有的代码风格、目录结构、命名约定在 Spec 中明确指出。及时重构AI 可能会生成冗余代码。生成后进行必要的重构和抽象保持代码整洁。版本控制策略将 AI 视为你的结对编程伙伴。小步提交每完成一个功能点如一个 API 或一个组件就进行一次 Git 提交。提交信息可以包含使用的 Spec 摘要。分支管理可以在特性分支上使用 AI 进行大量生成和实验通过 Pull Request 合并到主分支并进行严格的代码审查。安全与隐私这是 AI 辅助编程的红线。敏感信息不上传切勿将包含密码、密钥、真实数据库连接字符串的代码提交给云端 AI。使用占位符。理解生成的代码特别是涉及身份认证、授权、数据库直接拼接 SQL虽然 Prisma 已处理的部分你必须完全理解其原理。依赖审计AI 生成的package.json可能包含不必要或过时的包。定期使用npm audit或类似工具检查安全漏洞。保持学习与掌控AI 是杠杆不是替代品。知其所以然AI 生成了一段高效的 Prisma 关联查询你应该去学习这种写法而不是仅仅复制。关注底层更新你使用的框架、库和 AI 模型本身都在快速迭代。保持关注及时更新你的知识库和 Spec 编写方式。通过以上实战可以看到“AI 重构前端全栈新标准”并非虚言。它重构的是价值创造的环节开发者从重复性的、低层次的编码劳动中解放出来将更多精力投入到需求分析、架构设计、规范制定和复杂问题解决上。Codex 提供代码生成能力而 Spec Coding 提供了驾驭这种能力的缰绳和地图。这套模式的门槛在于你能否写出清晰的“规格说明书”以及你是否具备足够的工程能力去审查、集成和优化 AI 生成的代码。这恰恰是对开发者提出了更高的要求——从“代码工人”向“解决方案架构师”和“产品工程师”演进。对于想实践这条路径的开发者建议从一个小的、边界清晰的功能模块开始严格按照“规划(Spec) - 生成 - 审查 - 集成 - 测试”的流程进行。熟练之后你会发现自己一个人能驾驭的项目复杂度和完成速度将远超传统开发模式。