陈小涛的技术学习笔记

技术的选型

做一个东西,可选的路线永远不止一条:用现成的还是自己写、追新还是用稳的、一步到位还是先凑合、顺手还是"更正确"。我在选型上栽过跟头,也见过别人栽——绝大多数翻车不是因为选错了技术,而是因为在选这件事上花了太久,或者选完了又反复横跳。这篇把我的判断方式整理成一套可复用的流程,不讲道理,只讲我实际怎么下决定。

取舍四问别横跳留退路

一、先接受一件事:选型是取舍,不是找最优

我刚做技术选择的时候有个执念:一定存在一个"最正确"的方案,我要把它找出来。结果每次都在比较中耗掉大量时间,最后往往还是选了最熟的那个——而且过程中什么产出都没有。

后来想明白了:选型是取舍,不是求解。任何方案都是"在这个维度上得到,在那个维度上付出"。你不可能同时要上手快、性能高、生态全、部署简单——这四样凑不齐,因为它们本身互相冲突。

上手快高
性能强低
生态全高
部署易低

示意:同一个方案,四个维度不可能全是高分

所以选型真正要回答的问题不是"哪个最好",而是"在我这件事里、在这个阶段,哪个维度的损失我能接受"。这个问题一旦问对,答案往往几分钟就出来了。

二、我下决定前会问的四个问题

遇到一个选择 ① 它影响的是这件事的成败吗? ② 现在非做决定不可吗? ③ 出事了我知道怎么救吗? 三个都答"是"才值得认真比;有一个"不是"就先用最熟的那个 否 → 别纠结 否 → 先拖着 否 → 别用
大部分选择,问完第一条就不用往下问了
  1. 这个决定影响的是"这件事的成败",还是只是"我写得舒不舒服"?九成的技术选择属于后者。而后者不值得花超过十分钟。把精力留给真正决定成败的那 10%。
  2. 现在就必须定下来吗?很多选择可以推迟。先用最熟的方式把东西做出来,等真的有反馈、真的知道瓶颈在哪,那时候再定也不迟——而且那时候你掌握的信息比现在多得多。
  3. 如果它出问题了,我知道怎么救吗?这是我最在意的一条。陌生的东西不是不能用,而是别在不能出错的位置上第一次用它。第一次上手新东西,最好是在一个"搞砸了也无所谓"的地方。
  4. 万一这条路走不通,我能退回哪?这个问题决定了你要不要在第一版就把它做死。如果退路清楚,那可以大胆试;如果退不回去,那就保守一点。

三、几类常见取舍,我是怎么站的

抽象的原则说多了没用,我挑几类每次都遇到的,直接给结论:

选择我的结论理由
自己写 vs 用现成的默认用现成的只在"现成的都不合我这块需求"时,才自己补一小段。造轮子很爽,但很贵
追新 vs 用稳的关键位置用稳的,边角才试新新东西文档少、坑多、网上还没有沉淀答案,出事时孤立无援
一步到位 vs 先凑合先凑合,但要留着以后能换先动起来才能拿到真实反馈,而真实反馈比纸面推演值钱得多
更优解 vs 我更熟的我更熟的熟悉意味着出事时你知道去哪查、怎么救。这个价值被普遍低估
复杂方案 vs 简单方案简单方案越简单越可靠,这是真的。复杂度是负债,不是资产
坑点:别为了"显得厉害"选复杂方案。选型的终点是一个稳稳跑着的东西,不是一份让人看不懂的技术清单。我见过太多项目死在第 90 行配置文件上。

四、反过来:什么时候不要换

这部分其实比"怎么选"更重要,因为"反复换"是最常见、也最昂贵的错误。

我给自己定过一条很实用的纪律:任何"要不要换"的决定,至少放三天再下。三天之后如果还是觉得必须换,那就换;大多数情况下,三天之后你会发现问题已经绕过去了,或者发现真正该改的是别处。

五、"留退路"具体怎么做

"留退路"听起来虚,其实有几个很具体的操作,我基本每次都做:


我的尺子

选型没有标准答案,但有一把不变的尺子:它最后得让你把事做成,而不是让你陷在"选哪个"里出不来。

我现在的做法就三步:先判断这个选择重不重要(不重要就十分钟内定)、不重要就选最熟的、重要就按四问走一遍并留好退路。做完之后,就不再回头反复怀疑——把纠结的时间省下来,多做成一件事,比什么都实在。