362 lines
10 KiB
Markdown
362 lines
10 KiB
Markdown
# 🧬 胶水编程 (Glue Coding)
|
||
|
||
> **软件工程的圣杯与银弹——终于出现了。**
|
||
|
||
---
|
||
|
||
## 🚀 颠覆性宣言
|
||
|
||
**胶水编程不是一种技术,而是一场革命。**
|
||
|
||
它可能完美解决了 Vibe Coding 的三大致命缺陷:
|
||
|
||
| 传统 Vibe Coding 的痛点 | 胶水编程的解法 |
|
||
|:---|:---|
|
||
| 🎭 **AI 幻觉** - 生成不存在的 API、错误的逻辑 | ✅ **零幻觉** - 只使用已验证的成熟代码 |
|
||
| 🧩 **复杂性爆炸** - 项目越大越失控 | ✅ **复杂性归零** - 每个模块都是久经考验的轮子 |
|
||
| 🎓 **门槛过高** - 需要深厚编程功底才能驾驭 AI | ✅ **门槛消失** - 你只需要描述"连接方式" |
|
||
|
||
---
|
||
|
||
## 💡 核心理念
|
||
|
||
```
|
||
传统编程:人写代码
|
||
Vibe Coding:AI 写代码,人审代码
|
||
胶水编程:AI 连接代码,人审连接
|
||
```
|
||
|
||
### 范式转移
|
||
|
||
**从「生成」到「连接」的根本性转变:**
|
||
|
||
- ❌ 不再让 AI 从零生成代码(幻觉的根源)
|
||
- ❌ 不再重复造轮子(复杂性的根源)
|
||
- ❌ 不再要求你理解每一行代码(门槛的根源)
|
||
|
||
- ✅ 只复用成熟的、经过生产验证的开源项目
|
||
- ✅ AI 的唯一职责:理解你的意图,将模块连接起来
|
||
- ✅ 你的唯一职责:描述清楚「输入是什么,输出要什么」
|
||
|
||
---
|
||
|
||
## 🏗️ 架构哲学
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ 你的业务需求 │
|
||
└─────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ AI 胶水层 (Glue Layer) │
|
||
│ │
|
||
│ "我理解你要做什么,让我把这些积木连起来" │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────┘
|
||
│
|
||
┌────────────────┼────────────────┐
|
||
▼ ▼ ▼
|
||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||
│ 成熟模块 A │ │ 成熟模块 B │ │ 成熟模块 C │
|
||
│ (10万+ ⭐) │ │ (生产验证) │ │ (官方 SDK) │
|
||
└─────────────┘ └─────────────┘ └─────────────┘
|
||
```
|
||
|
||
**实体 (Entity)**:成熟的开源项目、官方 SDK、久经考验的库
|
||
**连接 (Link)**:AI 生成的胶水代码,负责数据流转和接口适配
|
||
**功能 (Function)**:你描述的业务目标
|
||
|
||
---
|
||
|
||
## 🎯 为什么这是银弹?
|
||
|
||
### 1. 幻觉问题 → 彻底消失
|
||
|
||
AI 不再需要"发明"任何东西。它只需要:
|
||
- 阅读模块 A 的文档
|
||
- 阅读模块 B 的文档
|
||
- 写出 A → B 的数据转换
|
||
|
||
**这是 AI 最擅长的事情,也是最不容易出错的事情。**
|
||
|
||
### 2. 复杂性问题 → 转嫁给社区
|
||
|
||
每个模块背后都有:
|
||
- 数千个 Issue 的讨论
|
||
- 数百个贡献者的智慧
|
||
- 数年的生产环境打磨
|
||
|
||
**你不是在管理复杂性,你是在站在巨人的肩膀上。**
|
||
|
||
### 3. 门槛问题 → 降到最低
|
||
|
||
你不需要懂:
|
||
- 底层实现原理
|
||
- 最佳实践细节
|
||
- 边界情况处理
|
||
|
||
你只需要会说人话:
|
||
> "我要把 Telegram 的消息,经过 GPT 处理,存到 PostgreSQL"
|
||
|
||
**AI 会帮你找到最合适的轮子,然后把它们粘起来。**
|
||
|
||
---
|
||
|
||
## 📋 实践流程
|
||
|
||
```
|
||
1. 明确目标
|
||
└─→ "我要实现 XXX 功能"
|
||
|
||
2. 寻找轮子
|
||
└─→ "有没有成熟的库/项目已经做过类似的事?"
|
||
└─→ 让 AI 帮你搜索、评估、推荐
|
||
|
||
3. 理解接口
|
||
└─→ 把官方文档喂给 AI
|
||
└─→ AI 总结:输入是什么,输出是什么
|
||
|
||
4. 描述连接
|
||
└─→ "A 的输出要变成 B 的输入"
|
||
└─→ AI 生成胶水代码
|
||
|
||
5. 验证运行
|
||
└─→ 跑通 → 完成
|
||
└─→ 报错 → 把错误扔给 AI,继续粘
|
||
```
|
||
|
||
---
|
||
|
||
## 🔥 经典案例
|
||
|
||
### 案例:Polymarket 数据分析 Bot
|
||
|
||
**需求**:实时获取 Polymarket 数据,分析后推送到 Telegram
|
||
|
||
**传统做法**:从零写爬虫、写分析逻辑、写 Bot → 3000 行代码,2 周时间
|
||
|
||
**胶水做法**:
|
||
```
|
||
轮子 1: polymarket-py (官方 SDK)
|
||
轮子 2: pandas (数据分析)
|
||
轮子 3: python-telegram-bot (消息推送)
|
||
|
||
胶水代码: 50 行
|
||
开发时间: 2 小时
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 延伸阅读
|
||
|
||
- [语言层要素](./语言层要素.md) - 看懂 100% 代码必须掌握的 12 层要素
|
||
- [胶水开发提示词(在线提示词库入口)](../../prompts/README.md)
|
||
- [项目实战:polymarket-dev](../03-实战/polymarket-dev/)
|
||
|
||
---
|
||
|
||
## 🎖️ 总结
|
||
|
||
> **能抄不写,能连不造,能复用不原创。**
|
||
|
||
胶水编程是 Vibe Coding 的终极进化形态。
|
||
|
||
它不是偷懒,而是**工程智慧的最高体现**——
|
||
|
||
用最少的原创代码,撬动最大的生产力。
|
||
|
||
**这就是软件工程等待了 50 年的银弹。**
|
||
|
||
---
|
||
|
||
*"The best code is no code at all. The second best is glue code."*
|
||
|
||
# 胶水编程(glue coding)方法论
|
||
|
||
## **1. 胶水编程的定义**
|
||
|
||
**胶水编程(glue coding)**是一种新型的软件构建方式,其核心理念是:
|
||
|
||
> **几乎完全复用成熟开源组件,通过最小量的“胶水代码”将它们组合成完整系统**
|
||
|
||
它强调的是“连接”而不是“创造”,在 AI 时代尤其高效
|
||
|
||
## **2. 产生背景**
|
||
|
||
传统软件工程往往需要开发者:
|
||
|
||
* 设计架构
|
||
* 自己编写逻辑
|
||
* 手动处理各种细节
|
||
* 重复造轮子
|
||
|
||
这导致开发成本高、周期长、成功率低
|
||
|
||
而当下的生态已经发生根本变化:
|
||
|
||
* GitHub 上成熟的开源库成千上万
|
||
* 框架覆盖各种场景(Web、AI、分布式、模型推理…)
|
||
* GPT / Grok 能帮助搜索、分析、组合这些项目
|
||
|
||
在这种环境中,再从零写代码已经不是最高效的方式
|
||
|
||
于是,“胶水编程”成为一种新范式
|
||
|
||
## **3. 胶水编程的核心原则**
|
||
|
||
### **3.1 凡是能不写的就不写,凡是能少写的就少写**
|
||
|
||
任何已有成熟实现的功能,都不应该重新造轮子
|
||
|
||
### **3.2 凡是能 CV 就 CV**
|
||
|
||
直接复制使用经过社区检验的代码,属于正常工程流程,而非偷懒
|
||
|
||
### **3.3 站在巨人的肩膀上,而不是试图成为巨人**
|
||
|
||
利用现成框架,而不是试图自己再写一个“更好的轮子”
|
||
|
||
### **3.4 不修改原仓库代码**
|
||
|
||
所有开源库应尽量保持不可变,作为黑盒使用
|
||
|
||
### **3.5 自定义代码越少越好**
|
||
|
||
你写的代码只承担:
|
||
|
||
* 组合
|
||
* 调用
|
||
* 封装
|
||
* 适配
|
||
|
||
也就是所谓的**胶水层**
|
||
|
||
## **4. 胶水编程的标准流程**
|
||
|
||
### **4.1 明确需求**
|
||
|
||
把系统要实现的功能拆成一个个需求点
|
||
|
||
### **4.2 使用 GPT/Grok 拆解需求**
|
||
|
||
让 AI 将需求细化为可复用模块、能力点和对应的子任务
|
||
|
||
### **4.3 搜索现成的开源实现**
|
||
|
||
利用 GPT 的联网能力(如 Grok):
|
||
|
||
* 根据每个子需求搜索对应的 GitHub 仓库
|
||
* 检查是否存在可复用组件
|
||
* 对比质量、实现方式、许可证等
|
||
|
||
#### 🔍 使用 GitHub Topics 精准找轮子
|
||
|
||
**方法**:让 AI 帮你找到需求对应的 GitHub Topic,然后浏览该主题下的热门仓库
|
||
|
||
**示例提示词**:
|
||
```
|
||
我需要实现 [你的需求],请帮我:
|
||
1. 分析这个需求可能涉及哪些技术领域
|
||
2. 推荐对应的 GitHub Topics 关键词
|
||
3. 给出 GitHub Topics 链接(格式:https://github.com/topics/xxx)
|
||
```
|
||
|
||
**常用 Topics 示例**:
|
||
| 需求 | 推荐 Topic |
|
||
|:---|:---|
|
||
| Telegram Bot | [telegram-bot](https://github.com/topics/telegram-bot) |
|
||
| 数据分析 | [data-analysis](https://github.com/topics/data-analysis) |
|
||
| AI Agent | [ai-agent](https://github.com/topics/ai-agent) |
|
||
| CLI 工具 | [cli](https://github.com/topics/cli) |
|
||
| Web 爬虫 | [web-scraping](https://github.com/topics/web-scraping) |
|
||
|
||
**进阶技巧**:
|
||
- [GitHub Topics 首页](https://github.com/topics) - 浏览所有主题
|
||
- [GitHub Trending](https://github.com/trending) - 发现热门新项目
|
||
- 组合多个 Topic 筛选:`https://github.com/topics/python?q=telegram`
|
||
|
||
### **4.4 下载并整理仓库**
|
||
|
||
将选定的仓库拉取到本地,分类整理
|
||
|
||
### **4.5 按架构体系进行组织**
|
||
|
||
把这些仓库放置到项目结构中,例如:
|
||
|
||
```
|
||
/services
|
||
/libs
|
||
/third_party
|
||
/glue
|
||
```
|
||
|
||
并强调:**开源仓库作为第三方依赖,绝对不可修改。**
|
||
|
||
### **4.6 编写胶水层代码**
|
||
|
||
胶水代码的作用包括:
|
||
|
||
* 封装接口
|
||
* 统一输入输出
|
||
* 连接不同组件
|
||
* 实现最小业务逻辑
|
||
|
||
最终系统通过多个成熟模块组合而成
|
||
|
||
## **5. 胶水编程的价值**
|
||
|
||
### **5.1 极高的成功率**
|
||
|
||
因为使用的是社区验证过的成熟代码
|
||
|
||
### **5.2 开发速度极快**
|
||
|
||
大量功能可以直接复用
|
||
|
||
### **5.3 降低成本**
|
||
|
||
时间成本、维护成本、学习成本都大幅减少
|
||
|
||
### **5.4 系统更稳定**
|
||
|
||
依赖成熟框架而非个人实现
|
||
|
||
### **5.5 易于扩展**
|
||
|
||
通过替换组件就能轻松升级能力
|
||
|
||
### **5.6 与 AI 强配**
|
||
|
||
GPT 能辅助搜索、拆解、整合,是胶水工程的天然增强器
|
||
## **6. 胶水编程 vs 传统开发**
|
||
|
||
| 项目 | 传统开发 | 胶水编程 |
|
||
| ------ | ----- | ------ |
|
||
| 功能实现方式 | 自己写 | 复用开源 |
|
||
| 工作量 | 大 | 小得多 |
|
||
| 成功率 | 不确定 | 高 |
|
||
| 速度 | 慢 | 极快 |
|
||
| 错误率 | 容易踩坑 | 使用成熟方案 |
|
||
| 重点 | “造轮子” | “组合轮子” |
|
||
|
||
## **7. 胶水编程的典型应用场景**
|
||
|
||
* 快速原型开发
|
||
* 小团队构建大系统
|
||
* AI 应用/模型推理平台
|
||
* 数据处理流水线
|
||
* 内部工具开发
|
||
* 系统集成(System Integration)
|
||
|
||
## **8. 未来:胶水工程将成为新的主流编程方式**
|
||
|
||
随着 AI 能力不断增强,未来的开发者不再需要自己写大量代码,而是:
|
||
|
||
* 找轮子
|
||
* 组合轮子
|
||
* 智能连接组件
|
||
* 以极低成本构建复杂系统
|
||
|
||
胶水编程将会成为新的软件生产力标准
|