技术选型,我是怎么做决定的

上周有人在我博客评论区问:「你为什么选 Hexo 而不是 Hugo?」

我想了半天,给了个不太令人满意的答案——「因为当时这个我更熟悉」。

但事后我想,这其实是个挺值得认真回答的问题。技术选型是每个程序员都要反复面对的事,但我们却很少把「怎么做决定」这件事本身想清楚。

我最近用 AI 回顾了自己过去几年的几十个技术决策,发现确实有一些思维模式在里面——有些是主动选择的,有些是踩坑之后总结出来的。这篇文章就是把这些东西写出来。

不保证适用于所有人,也不是最优解,就是我自己用着顺手的那套。

先搞清楚「选型的成本」

很多人做技术选型时,会先问:这个技术好不好?功能够不够?但我觉得更重要的前置问题是:这个选型的切换成本有多高?

切换成本低的技术,可以稍微大胆一点,可以试错,可以随时换。切换成本高的技术,就要保守得多,要把方案想得更清楚再下手。

比如我选博客框架:Hexo 换 Hugo 的成本其实不算高,Markdown 文件可以复用,主题配置重来一遍,最多折腾一周。但如果当年给公司选了某个特别定制化的 ORM 框架,三年后想换,基本是重写。

所以决策谨慎程度要和切换成本成正比,这是我的第一个原则。

「我熟悉」不是理由,但也没那么糟

回到刚才那个问题:为什么选 Hexo 而不是 Hugo?

「因为我熟悉」确实不是一个体面的技术理由。但我现在不觉得这个答案完全错了。

有一条经验是:在个人项目和时间有限的情况下,降低学习成本是完全合理的权衡。 选一个你 70% 熟悉的技术,和选一个「理论上更好」但你需要花两周学的技术,哪个能让你更快把东西做出来、做出来之后维护起来更顺,这才是个人开发者需要权衡的核心。

这跟团队项目不一样。团队项目要考虑招聘、传承、协作,「我熟悉」就显得太自私了。但对于个人项目,这是一个合理的理由。

当然,「我熟悉」的前提是:你熟悉的那个技术至少不会是个坑。如果你只熟悉一个早就没人维护的 2014 年框架,那可能要逼自己跨出舒适区了。

三个我真正在用的过滤维度

真正到做选型的时候,我会过三关:

第一关:这个技术的社区还活跃吗?

不需要看什么 GitHub Star 数,就看两件事:最近三个月有没有提交?官方文档有没有在更新?如果一个技术的最后一次 commit 是两年前,那无论它当年有多好,我都不会在新项目里用它。

以前用过一个很好用的 Python 异步库,结果后来作者消失了,碰到问题只能靠自己 fork 修。那种感觉很糟糕,就像租了一栋房子,房东跑路了,水管坏了没人修。

第二关:有没有「正常人」在生产环境用?

这不是在说要等别人踩完坑。而是说,如果一个技术只有一两家公司在用,那遇到边界案例的时候,文档里不会有答案,StackOverflow 上不会有回复,你就是那个最孤独的人。

我看「生产环境实践」的方式很简单:搜这个技术名 + “production” 或者 “in production”,看看有没有真实案例,规模大不大,踩的坑是不是我能接受的。

第三关:它的核心抽象和我的问题匹配吗?

这是最考验判断力的一关。

每个框架和工具都有它的核心抽象——它认为「世界应该是这样运转的」。如果你的问题符合这个抽象,用起来会顺水推舟;如果你的问题和这个抽象天然冲突,你会发现自己在不断「打破框架」。

比如 React 的核心抽象是「UI 是状态的函数」。如果你的界面主要是数据展示、状态驱动,React 是顺手的。但如果你的界面充满了命令式的动画、DOM 操作,React 用起来就会有种拿锤子拧螺丝的感觉。

这一关没有捷径,只能靠写几个 demo 感受,或者找真正在生产环境用过它的人聊。

AI 改变了选型过程的哪些部分

用了一年多 AI 辅助工作,回头看我自己的选型流程,有几个地方变了:

调研速度快了很多。 以前「快速调研一个框架」可能需要半天时间,现在用 AI 把关键维度列出来、把常见 tradeoff 梳理清楚,通常一小时内可以有个比较清晰的轮廓。

但有一个地方我用 AI 用得很谨慎:让它帮我做最终判断。

AI 给的建议很理性,条条有理,但它不知道你们团队的具体情况,不知道你上一个项目踩的是什么坑,不知道你的老板对新技术的接受度。它可以帮你看得更全,但最后那个「我选这个」的按钮,还得你自己按。

我现在的用法是:让 AI 帮我列出我没想到的维度,帮我检查有没有明显的盲点,但判断权我自己留着。

一个我后来改变主意的决策

2024 年初我在做一个内部工具,需要选 UI 框架。当时我选了一个「设计很好看、组件很丰富」的选项,但用了三个月之后,维护起来越来越痛苦——因为它的定制化能力很弱,我需要实现的一些特殊交互,要绕很多弯路。

最后我们把这套 UI 层推翻重做了,代价是差不多两周的工时。

事后复盘,我发现我在那次选型里犯了一个典型错误:被 demo 体验迷住了,忽视了「实际项目中的定制需求会有多少」这个问题。 Demo 永远是最好看的,所有文档示例都是把框架用在最擅长的场景里。

现在我做选型,会专门问自己:「这个技术在它最不擅长的地方会怎样?」


技术选型没有标准答案。同样的项目,在不同的团队、不同的时间点,最优解可能是完全不一样的东西。

我这套框架说白了就是:控制切换成本 → 过三关筛选 → 用 AI 查漏补缺 → 但最终判断自己负责

不够体面,但用着踏实。

如果你有不同的选型思路,欢迎在评论区分享——我现在还在 Hexo,但随时准备被说服。


技术选型,我是怎么做决定的
https://www.ohtudou.top/2026/04/11/2026-04-11-tech-stack-decision-framework/
作者
Tudo
发布于
2026年4月11日
许可协议