文章

AI Coding:程序员的底层思维

Skill

# AI-Assisted Architectural Thinking (AIAT) / AI 辅助架构思维

## 📖 技能定义

**AI-Assisted Architectural Thinking (AIAT)​** 是在 AI 编程时代,开发者从"代码编写者"转型为"系统架构师 + AI 协作指挥官 + 代码质量守护者"所需的核心能力。

> **核心理念**:AI 让代码生成变得廉价,但**系统思考**变得前所未有的珍贵。真正的稀缺能力是定义边界、明确不变量、引导分解和维护一致性的能力。

---

## 🎯 五大核心原则

### 原则一:第一性原理驱动
**来源**:《程序员的底层思维》之第一性原理思维

**核心要求**:
- 不依赖 AI 的默认模式或经验类比
- 从零开始思考问题本质,追溯事物本源
- 跳出惯性思维,找到更根本的解决方案

**实践方法**:
1. 在向 AI 提问前,先问自己:"这个问题的本质是什么?"
2. 识别并挑战隐含假设:"这个约束是真实的还是人为的?"
3. 要求 AI 解释其方案的基本原理,而非直接接受结论

---

### 原则二:系统化抽象思维
**来源**:《程序员的底层思维》之抽象思维、结构化思维、复杂性管理策略

**核心要求**:
- 在 AI 生成代码前,构建完整的系统模型
- 明确核心抽象、组件边界和交互方式
- 通过模块化/组件化、分层与抽象降低复杂度

**实践方法**:
1. **定义核心抽象**:确定系统中的关键实体、它们的属性和关系
2. **划定组件边界**:明确每个模块/组件的职责范围和接口契约
3. **建立分层架构**:设计清晰的分层(如表现层、业务层、数据层),确保低耦合高内聚
4. **声明不变量**:明确系统中必须永远为真的条件和约束

---

### 原则三:工匠精神质量观
**来源**:《码农和工匠》之工匠精神三要素、职业精神内涵

**核心要求**:
- 对技术细节精益求精,拒绝"差不多就行"
- 不断追求更高的代码质量,关注执行效率、安全性和可读性
- 极度注重细节,追求完美和极致

**实践方法**:
1. **代码审查标准**:建立严格的审查清单,不因代码能运行就停止优化
2. **持续重构**:定期审视和改进现有代码,消除技术债
3. **单元测试覆盖**:编写全面的单元测试,确保代码质量和可维护性
4. **文档完整性**:保持代码注释和技术文档的准确性和及时性

---

### 原则四:批判性思维与独立判断
**来源**:《程序员的底层思维》之批判性思维

**核心要求**:
- 质疑 AI 生成的方案,不盲目接受
- 独立思考是否有更好的方法
- 识别潜在的技术债、逻辑错误和安全风险

**实践方法**:
1. **多方案对比**:要求 AI 提供多个解决方案,分析各自的优缺点
2. **边界测试**:主动思考极端情况和边界条件,验证 AI 方案的健壮性
3. **安全审计**:检查 AI 生成代码中的安全漏洞(如 SQL 注入、XSS 等)
4. **性能评估**:分析算法复杂度,评估在大规模数据下的表现

---

### 原则五:模式识别与泛化能力
**来源**:《程序员的底层思维》之模式思维 & 《码农和工匠》之 SOLID 设计原则

**核心要求**:
- 识别重复问题,运用通用解决方案
- 构建个人"模式库"和"工具箱"
- 正确应用设计模式,避免反模式

**实践方法**:
1. **SOLID 原则应用**:
   - **单一职责 (SRP)​**:每个类/函数只做一件事
   - **开闭原则 (OCP)​**:对扩展开放,对修改关闭
   - **里氏替换 (LSP)​**:子类可以替换父类而不破坏程序
   - **接口隔离 (ISP)​**:使用多个专门接口优于单个通用接口
   - **依赖倒置 (DIP)​**:依赖抽象而非具体实现

2. **模式库建设**:积累常见问题的最佳实践模板
3. **反模式识别**:学会识别并避免常见的错误模式

---

## 🛠️ 四项具体实践

### 实践一:AI 协作工作流

┌─────────────────────────────────────────────────────────────┐
│                    AI 协作四阶段流程                          │
├─────────────────────────────────────────────────────────────┤
│  阶段 1: 人类主导架构设计                                     │
│  - 定义问题边界和核心抽象                                     │
│  - 设计系统架构和组件划分                                     │
│  - 明确技术选型和约束条件                                     │
├─────────────────────────────────────────────────────────────┤
│  阶段 2: 人机协作代码生成                                     │
│  - 使用结构化 Prompt 指导 AI 生成                              │
│  - 分模块迭代生成,及时验证                                   │
│  - 记录关键决策和假设                                         │
├─────────────────────────────────────────────────────────────┤
│  阶段 3: 人类主导审查重构                                     │
│  - 按照审查清单逐项检查                                       │
│  - 识别并修复技术债                                           │
│  - 优化代码结构和性能                                         │
├─────────────────────────────────────────────────────────────┤
│  阶段 4: 知识沉淀                                             │
│  - 更新团队模式库                                             │
│  - 记录架构决策 (ADR)                                          │
│  - 分享经验教训                                               │
└─────────────────────────────────────────────────────────────┘

---

### 实践二:结构化 Prompt 工程

**Prompt 五要素模板**:

## 1. 上下文背景
【项目类型】:[Web 应用/移动应用/微服务/数据处理等]
【业务领域】:[电商/金融/医疗/教育等]
【技术栈】:[语言、框架、数据库等]
【当前阶段】:[需求分析/架构设计/编码/重构等]

## 2. 核心抽象定义
【关键实体】:[列出系统中的核心对象及其关系]
【主要流程】:[描述关键业务流程或数据流]
【约束条件】:[性能要求、安全要求、合规要求等]

## 3. 设计约束
【架构原则】:[如:分层架构、事件驱动、CQRS 等]
【设计模式】:[期望使用或避免的模式]
【SOLID 要求】:[特别强调的原则]

## 4. 输出要求
【代码结构】:[期望的文件组织和模块划分]
【命名规范】:[变量、函数、类的命名约定]
【注释标准】:[注释详细程度和格式要求]
【测试要求】:[单元测试、集成测试的覆盖范围]

## 5. 审查标准
【质量指标】:[可维护性、可扩展性、性能等]
【风险点】:[需要特别注意的潜在问题]
【验收条件】:[完成的具体标准]