AI 应用全栈架构师岗位
🎯 核心知识领域
一、后端开发(重点)
1.1 编程语言(至少精通一门)
- [ ] Python: FastAPI/Flask, 异步编程 (asyncio), 类型注解
- [ ] Java: Spring Boot, Spring Cloud, JPA/MyBatis
- [ ] Go: Gin/Echo, 并发模型 (goroutine/channel)
- [ ] Node.js/TypeScript: NestJS, Express, 类型系统
1.2 数据库设计
- [ ] MySQL/PostgreSQL: 索引优化、事务隔离级别、锁机制、执行计划分析
- [ ] 数据建模: ER 图设计、范式与反范式、分库分表策略
- [ ] pgvector: 向量相似度搜索 (Cosine, L2, IP)
1.3 缓存与消息队列
- [ ] Redis: 数据结构、持久化 (RDB/AOF)、缓存穿透/击穿/雪崩、分布式锁
- [ ] 消息队列: RabbitMQ/Kafka/RocketMQ - 消息可靠性、顺序消费、积压处理
1.4 API 设计
- [ ] RESTful API 设计规范 (资源命名、状态码、版本控制)
- [ ] WebSocket 实时通信
- [ ] GraphQL (加分)
- [ ] OpenAPI/Swagger 文档
二、前端开发
2.1 核心框架(至少精通一门)
- [ ] React: Hooks, Context, Redux/Zustand, React Query
- [ ] Vue: Composition API, Pinia/Vuex, Vue Router
- [ ] Next.js: SSR/SSG, App Router, Server Actions
2.2 AI 交互场景
- [ ] 流式响应渲染 (Server-Sent Events)
- [ ] Markdown 渲染与代码高亮
- [ ] 对话状态管理
- [ ] Agent 任务进度展示
三、AI 应用能力(核心差异化)
3.1 LLM 基础概念
- [ ] Token: 计算方式、不同模型的 token 限制
- [ ] Context Window: 上下文长度管理与截断策略
- [ ] Temperature/Top-P: 采样参数对输出的影响
- [ ] System/User/Assistant: 角色消息设计
3.2 Prompt Engineering
- [ ] Zero-shot / Few-shot Prompting
- [ ] Chain of Thought (CoT)
- [ ] ReAct 模式 (Reason + Act)
- [ ] Structured Output (JSON Mode, Function Calling)
3.3 AI Agent 开发
- [ ] 任务拆解: 复杂任务分解为可执行步骤
- [ ] Tool Calling: Function Calling 机制与注册
- [ ] Memory 管理: 短期记忆 vs 长期记忆
- [ ] Workflow 编排: 有向无环图 (DAG) 执行
- [ ] 异常处理: 重试机制、降级方案、人工介入
3.4 RAG (检索增强生成)
- [ ] 文档处理: PDF/Word/Markdown 解析、文本分块 (Chunking)
- [ ] Embedding: 向量模型选择 (text-embedding-3-small/large, m3e)
- [ ] 向量数据库:
- [ ] pgvector (PostgreSQL 扩展)
- [ ] Milvus (独立向量库)
- [ ] Elasticsearch (混合检索)
- [ ] Chroma/Weaviate
- [ ] 检索策略: 语义检索、关键词检索 (BM25)、混合检索
- [ ] Rerank: 重排序模型 (Cohere Rerank, bge-reranker)
- [ ] 召回优化: MMR (最大边际相关性)、过滤条件
3.5 AI 工程化问题
- [ ] 超时处理: 流式响应、长任务轮询
- [ ] 幻觉问题: 事实校验、引用溯源
- [ ] 成本控制: Token 统计、缓存层、小模型优先
- [ ] 结果不确定性: 重试、投票、一致性检查
3.6 AI 框架(加分项)
- [ ] LangChain: Chains, Agents, Retrievers
- [ ] LangGraph: 状态机、循环图、多 Agent 协作
- [ ] LlamaIndex: 数据连接器、查询引擎
- [ ] **MCP **(Model Context Protocol): Server/Client 协议
四、系统架构能力(重点考察)
4.1 架构设计原则
- [ ] SOLID 原则
- [ ] DRY / KISS / YAGNI
- [ ] 关注点分离
- [ ] 领域驱动设计 (DDD) 基础
4.2 系统分层
┌─────────────────────────────────────┐
│ 前端层 (Web/Mobile) │
├─────────────────────────────────────┤
│ API Gateway / BFF │
├─────────────────────────────────────┤
│ 业务服务层 (微服务/单体) │
├─────────────────────────────────────┤
│ AI 服务层 (LLM/RAG/Agent) │
├─────────────────────────────────────┤
│ 数据层 (MySQL/Redis/VectorDB) │
└─────────────────────────────────────┘4.3 并发与异步
- [ ] 同步 vs 异步: 何时使用异步任务队列
- [ ] Celery/Dramatiq: Python 分布式任务队列
- [ ] Bull/BullMQ: Node.js 队列
- [ ] 定时任务: Cron, APScheduler
4.4 性能优化
- [ ] 数据库查询优化 (索引、覆盖索引、避免 N+1)
- [ ] 缓存策略 (本地缓存 + 分布式缓存)
- [ ] CDN 静态资源加速
- [ ] 连接池配置
4.5 安全考虑
- [ ] JWT/OAuth2 认证
- [ ] RBAC 权限模型
- [ ] SQL 注入防护
- [ ] XSS/CSRF 防护
- [ ] 敏感数据加密存储
五、DevOps 与工程化
5.1 容器化
- [ ] Docker: Dockerfile 编写、多阶段构建
- [ ] Docker Compose: 本地环境编排
- [ ] Kubernetes: Pod/Deployment/Service (加分)
5.2 CI/CD
- [ ] GitHub Actions / GitLab CI
- [ ] 自动化测试流水线
- [ ] 蓝绿部署/金丝雀发布
5.3 监控与日志
- [ ] 日志: 结构化日志 (JSON), 日志分级
- [ ] 链路追踪: OpenTelemetry, Jaeger
- [ ] 指标监控: Prometheus + Grafana
- [ ] 告警: PagerDuty, 钉钉/飞书机器人
5.4 测试
- [ ] 单元测试 (pytest/jest/vitest)
- [ ] 集成测试
- [ ] E2E 测试 (Playwright/Cypress)
六、AI Coding 工具使用(岗位特色)
6.1 工具熟练度
- [ ] Cursor: Tab 补全、Chat 对话、整文件编辑
- [ ] Claude Code: CLI 交互、批量修改
- [ ] GitHub Copilot: 行内补全、Copilot Chat
6.2 高效使用模式
- [ ] 需求分析 → 让 AI 输出技术方案
- [ ] 架构设计 → 让 AI 画流程图/时序图
- [ ] 代码生成 → 提供清晰的上下文和约束
- [ ] 代码审查 → 让 AI 识别潜在问题
- [ ] 重构建议 → 技术债治理
- [ ] 测试生成 → 提高覆盖率
📝 项目经验准备
准备 1-2 个完整项目案例,能够清晰说明:
1. 业务背景
- 解决什么问题?
- 用户是谁?
- 业务规模如何?
2. 你的职责
- 负责哪些模块?
- 做了哪些架构决策?
- 带过多少人?
3. 技术架构
- 技术选型理由
- 系统分层设计
- 关键组件选型
4. 数据模型
- 核心表结构
- 索引设计
- 数据量级
5. 挑战与解决
- 遇到的最大技术难点
- 如何排查线上问题
- 性能瓶颈如何突破
6. 演进过程
- 需求变化如何应对
- 技术债如何治理
- 如果重做会改进什么🔥 高频面试题预测
系统设计题
- 设计一个企业知识库问答系统(RAG 架构)
- 设计一个 AI Agent 任务调度系统
- 设计一个支持多租户的 SaaS 平台
- 如何保证 AI 输出的可靠性和一致性?
技术深度题
- RAG 检索效果差,如何定位和优化?
- 向量数据库选型:pgvector vs Milvus,如何选择?
- 如何处理 LLM API 超时或失败?
- 如何设计一个可复用的 Tool Calling 框架?
- 缓存穿透/击穿/雪崩的区别和解决方案?
架构权衡题
- 单体 vs 微服务,什么时候拆分?
- 同步调用 vs 异步队列,如何选择?
- 强一致性 vs 最终一致性,业务场景如何选?
- 自研 vs 开源 vs 云服务,决策因素有哪些?
📚 推荐学习资源
AI 应用开发
系统设计
- 《设计数据密集型应用》(DDIA)
- System Design Interview
- Architecture Patterns with Python
实战项目建议
- 搭建一个带 RAG 的企业知识库系统
- 实现一个支持 Tool Calling 的 AI Agent
- 用 LangGraph 实现一个多步骤工作流
✅ 自查清单
| 领域 | 掌握程度 | 备注 |
|---|---|---|
| 后端语言 (Python/Java/Go/Node) | ⬜⬜⬜⬜⬜ | |
| 前端框架 (React/Vue/Next) | ⬜⬜⬜⬜⬜ | |
| 数据库设计与优化 | ⬜⬜⬜⬜⬜ | |
| Redis/消息队列 | ⬜⬜⬜⬜⬜ | |
| LLM API 与 Prompt | ⬜⬜⬜⬜⬜ | |
| RAG 全流程 | ⬜⬜⬜⬜⬜ | |
| Agent 开发 | ⬜⬜⬜⬜⬜ | |
| 系统架构设计 | ⬜⬜⬜⬜⬜ | |
| Docker/部署 | ⬜⬜⬜⬜⬜ | |
| AI Coding 工具 | ⬜⬜⬜⬜⬜ |
💡 技巧
- 强调工程背景: 突出传统软件开发经验,而非仅 AI Demo
- 展示架构思维: 讲清楚技术选型背后的权衡
- 准备代码作品: GitHub 项目或技术博客
- AI 工具提效案例: 具体说明 AI 如何提高你的研发效率
- 承认知识边界: 对不了解的技术诚实,但展示学习能力
