Appearance
Process处理层——做出可靠决策
决策的逻辑结构
每一个决策,本质上都是一个推理过程。
前提(事实和价值判断)→ 推理 → 结论(决策)示例:
前提1(事实):我们需要在3个月内上线
前提2(事实):Vue团队已有5人会,React只有1人会
前提3(价值):快速上线比技术先进更重要
推理:如果快速上线最重要,应该用团队更熟悉的技术
结论:我们应该用Vue一个好的决策,需要:
- 前提可靠:事实正确,价值观明确
- 推理有效:从前提能合理推出结论
- 结论可行:决策能够执行
常见的逻辑谬误
做决策时,最容易犯逻辑谬误。
识别并避免这些谬误,是做出好决策的关键。
谬误一:稻草人谬误
歪曲对方观点,然后攻击这个歪曲后的观点。
同事:"我觉得这个功能可以延后做。"
❌ 稻草人:"你的意思是这个功能不重要,用户不需要?"
→ 歪曲了"延后"为"不重要"
✅ 正确理解:"你说延后,是因为有更紧急的事情吗?"如何避免:先确认你理解了对方的真实观点。
谬误二:诉诸权威
仅仅因为权威这么说,就认为是对的。
❌ "大厂都用这个技术,所以我们也要用。"
→ 大厂的情况和你一样吗?
❌ "技术大牛推荐这个框架,应该不会错。"
→ 他的场景和你的场景一样吗?
✅ 正确思考:"大厂为什么用这个技术?我们的情况是否类似?"如何避免:不要止步于"谁说的",要追问"为什么这么说"。
谬误三:滑坡谬误
夸大因果链条,把小事说成会导致灾难。
❌ "如果这次不加班,项目就会延期,
延期就会失去客户,失去客户公司就完了。"
→ 每一步的因果都成立吗?
✅ 正确分析:
- 不加班就一定延期吗?有没有其他办法?
- 延期就一定失去客户吗?客户的容忍度是什么?如何避免:检查因果链的每一环是否都成立。
谬误四:错误二分
把问题简化为只有两个选项,忽略其他可能。
❌ "要么用React,要么用Vue。"
→ Angular呢?Svelte呢?原生呢?
❌ "要么加班赶上,要么项目失败。"
→ 能不能砍需求?能不能加人?能不能分期?
✅ 正确思考:"除了这两个选项,还有其他可能吗?"如何避免:在决策前,主动想想"还有什么其他选项"。
谬误五:以偏概全
用个案推断整体。
❌ "上次用这个技术出了问题,这个技术不行。"
→ 一次经历能代表所有情况吗?
❌ "小明说这个方案可行,所以大家都觉得可行。"
→ 小明能代表大家吗?
✅ 正确思考:"这个案例有代表性吗?样本量够吗?"如何避免:问自己"样本量够吗?有没有反例?"
谬误六:诉诸感情
用情感替代逻辑。
❌ "这个方案是我花了一周做的,应该用这个。"
→ 花了多少时间不是判断方案好坏的标准
❌ "那个团队的人不好相处,他们的方案不好。"
→ 人和方案是两回事
✅ 正确思考:基于客观标准评估方案,不带个人情绪如何避免:把情感和逻辑分开,问自己"如果抛开情感因素呢?"
谬误七:循环论证
用结论来证明结论。
❌ "这个方案好,因为这是最佳方案。"
→ "最佳"就是"好",没有提供新的论据
✅ 正确论证:"这个方案好,因为性能最高、成本最低、风险可控。"如何避免:检查你的理由是否真的是独立的论据。
决策方法
方法一:利弊分析
最基本的决策方法。
方案A:
优点:
- 团队熟悉,上手快
- 生态完善,资源多
缺点:
- 性能相对较差
- 社区趋势在下降
方案B:
优点:
- 性能更好
- 代表未来趋势
缺点:
- 学习成本高
- 团队没有经验
比较:
- 如果时间紧,选A
- 如果长期项目,选B适用场景:选项少、维度清晰的决策
方法二:决策矩阵
当考虑因素多、需要量化比较时使用。
步骤:
第一步:确定评估维度
- 性能
- 学习成本
- 团队熟悉度
- 社区生态
- 长期发展
第二步:确定权重(总和100%)
- 性能:20%
- 学习成本:25%
- 团队熟悉度:25%
- 社区生态:15%
- 长期发展:15%
第三步:打分(1-10分)
| 维度(权重) | Vue | React |
|---------------|------|-------|
| 性能(20%) | 7 | 8 |
| 学习成本(25%) | 9 | 6 |
| 熟悉度(25%) | 9 | 4 |
| 生态(15%) | 8 | 9 |
| 长期(15%) | 7 | 9 |
第四步:计算加权得分
Vue: 7×0.2 + 9×0.25 + 9×0.25 + 8×0.15 + 7×0.15 = 8.15
React: 8×0.2 + 6×0.25 + 4×0.25 + 9×0.15 + 9×0.15 = 6.6
第五步:结论
选择Vue(得分更高)注意:
- 权重反映了你的价值判断
- 打分有主观性,尽量有数据支撑
- 如果两个选项得分接近,可能需要更深入分析
方法三:10-10-10法则
考虑长期影响。
问自己:
- 10分钟后,我会怎么看这个决定?
- 10个月后,我会怎么看这个决定?
- 10年后,我会怎么看这个决定?示例:
决定:是否接受一个加薪20%但工作强度增加很多的offer
10分钟后:很兴奋,加薪20%!
10个月后:可能很累,但收入提高了,技能也增长了
10年后:如果身体没问题,这是一个好的跳板;如果因此熬坏身体,后悔
→ 关键问题:工作强度是否会影响健康?适用场景:有长期影响的重大决策
方法四:最坏情况分析
评估风险承受能力。
问自己:
- 最坏的情况是什么?
- 这个最坏情况的概率有多大?
- 如果最坏情况发生,我能承受吗?示例:
决定:是否用一个新技术
最坏情况:技术不成熟,项目失败
概率:10%(基于技术成熟度评估)
能否承受:如果是核心项目,承受不起;如果是边缘项目,可以接受
→ 如果是核心项目,不用新技术
→ 如果是边缘项目,可以尝试适用场景:有风险的决策
方法五:反向思考
问"不选这个会怎样"。
决策:要不要用TypeScript
正向思考:用TS的好处是什么?
反向思考:如果不用TS,会有什么问题?
- 大型项目维护困难
- 重构时容易出错
- 新人上手困难
如果"不用"的代价很大,那就应该用。决策的概率思维
很多决策涉及不确定性。需要用概率思维。
基础概率
在没有额外信息时的初始判断。
问题:线上出了Bug,是前端问题还是后端问题?
没有任何信息时,基础概率各50%。
但如果历史数据显示,70%的Bug是后端问题,
那么基础概率应该是:后端70%,前端30%。贝叶斯更新
根据新证据,更新概率判断。
初始判断:这个Bug是后端问题的概率70%
新证据1:前端控制台有报错
更新:后端概率降低到40%
新证据2:后端日志显示返回数据格式正常
更新:后端概率降低到20%
新证据3:前端报错指向某个空值判断
更新:前端概率升高到90%
结论:很可能是前端问题核心思想:不要固守最初的判断,根据新证据及时更新。
检查点:决策质量检验
markdown
□ 前提检查
- 事实前提是否正确?
- 价值前提是否明确?
- 有没有遗漏的重要前提?
□ 推理检查
- 推理过程是否有逻辑谬误?
- 因果关系是否成立?
- 有没有滑坡、以偏概全等问题?
□ 选项检查
- 是否考虑了所有主要选项?
- 有没有陷入错误二分?
□ 长期检查
- 考虑了长期影响吗?
- 最坏情况能接受吗?
□ 偏见检查
- 有没有因为情感因素影响判断?
- 有没有因为沉没成本影响判断?实例演示
场景:技术选型,选Vue还是React
决策过程:
markdown
## 第一步:明确前提
事实前提:
- 团队5人:4人会Vue,1人会React
- 项目周期:3个月
- 项目类型:中后台管理系统
价值前提:
- 按时上线比技术先进更重要(业务压力)
- 团队成长也需要考虑(但优先级低于按时上线)
## 第二步:避免逻辑谬误
检查自己:
- ❌ 诉诸权威:"大厂都用React"→ 大厂情况和我们不同
- ❌ 以偏概全:"上次用Vue遇到问题"→ 那是特殊情况
- ❌ 错误二分:"只能Vue或React"→ 其实还有其他选项
## 第三步:决策矩阵
维度和权重(基于价值前提):
- 开发效率:35%(按时上线最重要)
- 团队熟悉度:30%(直接影响效率)
- 长期维护:20%
- 生态:15%
打分:
| 维度(权重) | Vue | React |
|--------------|-----|-------|
| 开发效率(35%) | 8 | 6 |
| 熟悉度(30%) | 9 | 4 |
| 长期(20%) | 7 | 8 |
| 生态(15%) | 8 | 9 |
计算:
Vue: 8×0.35 + 9×0.30 + 7×0.20 + 8×0.15 = 8.1
React: 6×0.35 + 4×0.30 + 8×0.20 + 9×0.15 = 6.25
## 第四步:长期影响(10-10-10)
10分钟后:选Vue,开始干活
10个月后:项目上线,运行稳定
10年后:如果Vue生态萎缩,可能需要重构
→ 可以接受,当前按时上线更重要
## 第五步:最坏情况
选Vue的最坏情况:Vue社区萎缩,几年后需要重构
概率:较低(Vue生态目前健康)
能否承受:可以,几年后重构也正常
## 决策结论
选择Vue。
理由:
1. 团队熟悉度高,开发效率有保证
2. 项目需求Vue完全能满足
3. 最坏情况可以接受本章小结
核心观点:
- 决策的本质是推理:前提→推理→结论
- 避免逻辑谬误是好决策的关键
- 要用概率思维处理不确定性
常见谬误:
- 稻草人、诉诸权威、滑坡、错误二分
- 以偏概全、诉诸感情、循环论证
决策工具:
- 利弊分析:简单直接
- 决策矩阵:多维度量化
- 10-10-10:考虑长期
- 最坏情况:评估风险
检查点:
□ 前提可靠
□ 推理有效
□ 选项完整
□ 长期考虑
□ 偏见排除下一章,我们进入Express表达层——如何把想清楚的事情说清楚。