一个人一台键盘不是写代码的唯一姿势:结对(两人一机)、Mob(全组一机)、一对一(老带新)——看似效率减半,实则少返工、少藏雷,是把【经验】变成【团队资产】的方法。
1-5 讲了职业分工,本节讲同一批人【怎么坐在一起干活】。它来自敏捷开发的工程实践(1-8 的 XP 家族),也是你未来入职后最可能先撞上的团队文化冲击。
一、三种方法一张表
| 结对编程 | Mob 编程(群智编程) | 一对一编程 | |
|---|---|---|---|
| 形态 | 两人一机 | 全组一机(3~8 人轮流) | 老手带新人,一天到几天 |
| 角色分工 | 司机(握键盘写码)+领航员(看方向提问题) | 司机+全体领航,定时换司机 | 老手演示+新人实操,角色常互换 |
| 适用 | 核心复杂逻辑、疑难 bug | 关键架构决策、新人融入 | 入职培训、传帮带 |
| 副产品 | 代码评审当场完成 | 全组对系统认知同步 | 隐性知识(历史包袱、潜规则)传承 |
一句话记:结对是双保险,Mob 是全员对齐,一对一传手艺。
二、为什么【两个人干一个人的活】不亏
直觉算账:2 人 1 机=效率减半。实际账要算全:
- 缺陷成本:结对写出的代码当场被同伴审视,低级 bug 大幅减少—— bug 越晚发现越贵(1-7 的五步成本曲线);
- 知识不押宝:单人写的核心模块,人一离职就成【黑箱】;结对写过的模块至少两个人懂;
- 少走弯路:领航员盯着整体,司机埋头细节——走偏了当场拉回,不用等代码评审。
它不适用于所有活:纯体力型、一个人十分钟的活,拉人结对纯属浪费。团队的成熟用法是:难活结对,杂活单干。
三、防坑段:远程时代的做法
教材写的是围着一台机器。2026 年的团队大量远程协作,做法随环境进化:
- 屏幕共享 + 权限移交:结对双方各自在自己的电脑上,司机写码、领航员看着,说一声【你来】就把编辑权限递过去(VS Code 的 Live Share 一类工具是标配);
- Mob 走线上白板:任务板+共享编辑器+常开语音,换司机=换权限;
- AI 也进了驾驶舱:AI 助手可以当【第三位领航员】——实时提示潜在错误;但领航的主判断仍然在人(1-3 的结论)。
四、动手 Demo:和 AI 来一场五分钟结对
你一个人也能体验结对的角色分工——让 AI 当司机,你当领航员:
步骤: 1. 出题:【写一个 Python 函数,输入一批日期字符串(如 2026-09-27),返回其中最新的一个,处理格式错误】; 2. 让 AI 生成第一版; 3. 你以领航员身份只提问题不动手:【空列表进来怎么办?】【2026/9/7 和 2026-09-07 两种格式都认吗?】【用字符串比较日期对吗?】
看到什么算成功:至少问出一个让 AI 修改方案的问题(典型如【字符串比较在跨年日期上会翻车,应该先解析成日期对象】)。
读结果:整个过程中写码的是 AI,把关的是你——这就是结对里领航员的工作方式:不握键盘,但握着方向。这个手感,就是未来和真人结对的能力底座。
30 秒实验
回看你 C++ 或 Java 课里写得最痛苦的一次 bug,问一句:如果当时有人坐在旁边看,几分钟后会被提醒?
看到什么算成功:能定位出【写完十分钟后就注定要返工】的那一行。
读结果:结对的真正价值不在【有人陪着】,而在【错误在最小成本点被拦住】——你现在独自踩的每个坑,都是未来给新人做一对一编程时的教材。
常见误区
- 【结对=一个人干活一个人看】——看的人不是观众,是导航:负责盯整体逻辑、记问题清单、实时提问;分工明确才有价值。
- 【Mob 编程=人多的结对,效率更低】——Mob 适合【决策类】工作:八个人吵一小时达成一致,胜过八个人各写各的再返工两周。
- 【内向的人不适合结对】——结对的沟通是结构化的(说屏幕上的事),不是闲聊;很多不擅社交的工程师是极好的领航员。
- 【结对要全天绑在一起】——实务里常见节奏是【难段结对+独立段单干】,按任务性质切换,而不是全有或全无。
自测三问(点开对答案)
1. **结对编程的两个角色分别管什么?** 司机握键盘写代码;领航员盯整体方向、实时提问与纠偏——后者不出手,但出主意。 2. **结对的账为什么不是【效率减半】?** 把缺陷返工成本、知识单人化风险、走弯路成本都算进来,总账常比单人划算;且难活才结对。 3. **远程结对用什么替代【同一台机器】?** 屏幕共享+可移交的编辑权限(Live Share 一类);换司机=移交权限,其余规则不变。- ☐ 下一节(1-11 发布开发好的程序)
相关笔记
- 程序是谁编写的 —— AI 当领航员的能力边界
- 软件开发的流程 —— 结对编程出自敏捷的 XP 工程实践
- ⌨️ 编程原理 · 索引 —— 全课路线图