想象你要装修一套房子。面对三份施工队报价,你会怎么选?不会只看谁便宜,也不会只看谁广告响。你会去他装过的房子里摸一摸墙面平不平,聊聊方案看他能不能听懂你的需求,再在业主群里打听口碑。甚至,你会让他先装一间卫生间当样板房,验收合格再谈全屋。选 AI 框架,跟选施工队是一模一样的过程——框架就是施工队,你的业务系统就是房子。性能是手艺,文档是沟通,社区是口碑,偷工减料是技术债务,开源像买现成家具、自研像找木匠定制。本文就用这条装修主线,带你走完框架对比的完整决策流程:考察、打分、防坑、试装、算账、看长远。

岗位关联

对 AI 从业者而言,这套框架对比方法能让你从“凭感觉选型”升级为“用体系决策”,避免网红框架陷阱和多年技术债务,是架构师与团队负责人最值得掌握的进阶能力。

目录
  1. 可视化演示
  2. 评估维度:先看施工队的手艺、沟通与口碑
  3. 决策矩阵:把直觉变成打分表
  4. 技术债务:今天省下的明天加倍还
  5. 开源自研:买现成家具还是找木匠打?
  6. 生态社区:施工队的“朋友圈”
  7. 落地试点:先装一间样板房
  8. 迁移成本:拆了重装的代价
  9. 长期演进:住得十年还舒服吗?
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

动态演示技术选型的核心机制,通过输入/处理/存储/输出四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

技术选型:框架评估 框架评估维度体系 开源与自研权衡决策 核心机制可视化 技术选型整体架构与关键组件

评估维度:先看施工队的手艺、沟通与口碑

你拿着三份报价单,没有立刻签字。你去了老张装过的房子:墙面平整、瓷砖对缝、开关插座位置都合理——这是手艺;你跟他聊需求,他不用你解释就明白你要的是“好打理”而不是“好看”——这是沟通;你随口在业主群里打听,“老张干活靠谱,就是工期爱拖延”——这是口碑。选 AI 框架也一样,要先看三项基本功:性能表现、学习曲线、社区活跃度。

性能表现是框架的“手艺”。同样的模型训练任务,有的框架底层优化得像老工匠,又快又稳;有的框架演示时飞快,一上生产就卡顿崩溃。评估性能不能听宣传,要拿自己的数据跑基准测试。

最常用的性能指标是吞吐率,即单位时间处理多少样本:

除了性能,还有两个维度要一起看:学习曲线是团队上手成本,新成员从零到独立开发,框架甲要两周、框架乙要两个月,差距就是隐形成本;社区活跃度是出问题时的“救援速度”,Issue 有没有人回、版本多久发一次、文档全不全。看完手艺、沟通、口碑,你心里有了第一轮印象分——但这只是考察的第一步,下一步要把各项表现填进打分表,和报价、工期摆在一起算总账。

Throughput=Ntˉ\displaystyle \text{Throughput} = \frac{N}{\bar{t}}
通俗说明:就像看施工队一天能砌多少块砖。吞吐率越高,说明这支队伍(框架)干活越快。公式很简单:用样本总数 N 除以总耗时 \bar{t}。
  1. 分子 N样本总量:N 表示基准测试中喂给框架的样本总数,比如 1 万张测试图片。
    N=10000N = 10000
  2. 分母 \bar t总耗时:字母上方加横线表示平均,\bar t 是处理完全部样本所用的总时间。
    tˉ=125 秒\bar{t} = 125\,\text{秒}
  3. 相除得吞吐率用样本总量除以总耗时,得到单位时间处理量,数值越高代表性能越强。
    10000125=80\frac{10000}{125} = 80

决策矩阵:把直觉变成打分表

三家施工队都看完了:老张手艺最好但报价最高,老李便宜但口碑一般,老赵样样都行就是工期拖。光凭印象拍板,你晚上一定睡不着。聪明的办法是拉一张表:手艺占 30 分、报价占 20 分、工期占 15 分、口碑占 20 分、售后占 15 分,每项打分,加权求和。

这张表在技术选型里叫决策矩阵。它的价值不只是算出总分,而是逼着团队把“我觉得”变成“我们都认”:研发觉得性能重要,运维觉得好维护重要,老板觉得成本重要。权重不摆到桌面上吵明白,选完框架之后还会接着吵。

幸好,矩阵的计算本身很简单:

打完分先别急着宣布赢家。还要做一次敏感度分析:把某个权重上下调一调,看看排名动不动。如果老板一句“成本权重要加倍”就让名次翻盘,说明两个框架其实旗鼓相当,谁也别说谁赢了——这时候该回去重新聊权重,而不是硬选一个。

Score=∑i=1nwi×si,∑i=1nwi=1\displaystyle \text{Score} = \sum_{i=1}^{n} w_i \times s_i, \quad \sum_{i=1}^{n} w_i = 1
通俗说明:每个维度按重要性发一张“票”(权重 w),再乘以候选框架在该维度的得分(s),把所有票加在一起就是总分。所有权重加起来必须等于 1,就像给施工队打分时,各项占比合计必须是 100%。
  1. 求和符号\sum_{i=1}^{n} 表示把从第 1 项到第 n 项全部累加。
    ∑i=1n\sum_{i=1}^{n}
  2. 权重 w_i第 i 个维度的权重,代表它在决策中的分量,取值范围 0 到 1。
    wi∈[0,1],∑i=1nwi=1w_i \in [0,1], \quad \sum_{i=1}^{n} w_i = 1
  3. 得分 s_i候选框架在第 i 个维度的归一化得分,通常用 0 到 1 或 1 到 5 分制。
    si∈[0,1]s_i \in [0,1]
  4. 加权求和每个维度的权重与得分相乘后累加,得到候选框架的最终总分。
    Score=w1s1+w2s2+⋯+wnsn\text{Score} = w_1 s_1 + w_2 s_2 + \cdots + w_n s_n

技术债务:今天省下的明天加倍还

老赵报价最低,你问他便宜在哪,他压低声音说:“防水层做薄两公分,三五年看不出问题。”你省了一万块。结果第六年卫生间漏水,砸砖重做花了五万。省下的一万是本金,多花的四万是利息——这笔账,就是技术债务。

选框架时同样的诱惑天天都在:“这个框架三天能跑通 demo”“先上线再说,后面有空还”。于是团队绕过官方 API 打补丁、跳过单元测试、把业务逻辑全塞进配置文件。每一个“先这样吧”,都是在这套房子里埋下一处漏水点。

债务是利滚利增长的:

有经验的装修师傅总说“省什么不能省防水”,有经验的架构师则说“欠什么不能欠架构”。技术债务不是绝对不能有,但要记在明面上、定期偿还——每季度留出“还债窗口”,升级依赖、删补丁、补测试,别让利息悄悄吃掉你的预算。

D(t)=D0×(1+r)t\displaystyle D(t) = D_0 \times (1 + r)^{t}
通俗说明:D_0 是立项那天就欠下的工作量,r 是“利率”——技术演进的速度,t 是时间。拖得越久,同样的功能要花越多代价才能改对,就像防水层问题拖得越久,漏水淹掉的房间越多。
  1. 初始债务 D_0D_0 是选型当天就埋下的债,例如为赶工跳过的单元测试、绕开原生 API 的临时补丁。
    D0>0D_0 > 0
  2. 利率 rr 表示技术环境变化的速度,框架每升级一次大版本,你的旧补丁就可能多坏一处。
    r>0r > 0
  3. 时间 tt 是距离立项的年数,它出现在指数上,让债务膨胀得越来越快。
    D(3)=D0×(1+r)3D(3) = D_0 \times (1 + r)^{3}
  4. 指数增长底数 (1+r) 大于 1 的幂函数,说明债务越拖越贵,还债窗口越早越便宜。
    (1+r)t→+∞(1 + r)^{t} \to +\infty

开源自研:买现成家具还是找木匠打?

装修到了家具环节,你又开始纠结:沙发买宜家的现成款,还是找木匠按你家尺寸打一套?现成家具便宜、马上能用、坏了网上有大把维修教程;定制家具严丝合缝,但贵、慢,而且从此只能找同一个木匠保养。

开源框架就是“现成家具”:免费、被千千万万人验证过、踩坑经验满网都是。自研就是“定制家具”:完全贴合业务,但你要养一支队伍长期维护。很多人只看到“免费”两个字,没算过“养一个框架”到底要花多少钱——现成沙发出问题有品牌方保修,自研框架出了问题,只能靠你自己。

自研的真实成本,用这个公式算:

成熟的团队很少走极端:承重结构用成熟开源框架,业务特殊逻辑自己做插件定制——就像客厅买现成沙发、玄关找木匠打鞋柜。该省的省,该花的花,这才是装修老手的智慧。

TCOown=Ndev×Tmonth×Ssalary\displaystyle \text{TCO}_{\text{own}} = N_{\text{dev}} \times T_{\text{month}} \times S_{\text{salary}}
通俗说明:自研的总拥有成本 = 投入人数 × 开发周期 × 人均月薪。这还没算后续每年的维护开销——定制家具的保修,只能找同一个木匠。
  1. 开发人数 N_devN_dev 表示长期投入自研框架的工程师数量,注意是“持续养活”而不是“临时搭完”。
    Ndev≥2N_{\text{dev}} \geq 2
  2. 周期 T_monthT_month 是从设计到稳定的月数,框架类项目往往以年为单位计算。
    Tmonth=12T_{\text{month}} = 12
  3. 月薪 S_salaryS_salary 是团队的平均月人力成本,包含薪资、社保与办公分摊。
    Ssalary=3 万元S_{\text{salary}} = 3\,\text{万元}
  4. 三项相乘人数乘周期再乘月薪,得到自研方案的最小总投入,通常比想象中大一个数量级。
    2×12×3=72 万元2 \times 12 \times 3 = 72\,\text{万元}

生态社区:施工队的“朋友圈”

你在签合同前,还会做一件事:看看施工队的“朋友圈”。他有没有长期合作的水电工、木工、材料商?半夜水管爆了,他一个电话能不能叫来人?单干户手艺再好,缺了帮手照样让你家停工三个月。

框架的“朋友圈”叫生态:周边工具、第三方库、云厂商托管服务、能招到的工程师。选一个冷门框架,就像雇了单干户施工队——每次遇到问题都得自己啃,招聘时简历池里捞不到一条鱼。

生态好不好,可以看增长趋势:

选施工队不能只看手艺最好的光杆司令,选框架也不能只看纸面性能。生态繁荣意味着招人容易、问题有人答、新技术能第一时间用上——这些看不见的“朋友圈”,往往比看得见的 benchmark 更值钱。

Growth=St+1−StSt×100%\displaystyle \text{Growth} = \frac{S_{t+1} - S_t}{S_t} \times 100\%
通俗说明:S 可以是 GitHub Star 数、每月发布版本数或社区回答数。增长率比绝对数更能说明问题——一个在萎缩的生态,数量再大也有天花板。
  1. 当期规模 S_tS_t 是当前时刻的社区活跃指标,比如今年的 Star 数或 Issue 响应数。
    St=50000S_t = 50000
  2. 下期规模 S_{t+1}S_{t+1} 是一年后同一指标的值。
    St+1=65000S_{t+1} = 65000
  3. 年新增量两个规模相减,得到这一年生态净增长的量。
    St+1−St=15000S_{t+1} - S_t = 15000
  4. 增速百分比新增量除以基数再乘 100%,判断生态是在扩张还是萎缩。
    1500050000×100%=30%\frac{15000}{50000} \times 100\% = 30\%

落地试点:先装一间样板房

考察做得再细,你也不敢直接签全屋合同。聪明的业主会说:“先装一间卫生间试试。”定好验收标准:防水试水 48 小时不漏、瓷砖空鼓率低于 5%、工期不超过十天。达标,全屋给你;不达标,按合同走人。

技术选型同理,不能“笔试完直接上岗”。挑一个低风险、非核心的小模块,用候选框架重写一遍,这就是样板房试点。试点前必须把指标白纸黑字定下来,否则验收时团队会为“什么叫好”吵上一个星期。

试点结果用通过率说话:

样板房是双赢的:业主验证了施工队的手艺,施工队验证了图纸的可行性。试点也一样,团队提前踩坑、沉淀最佳实践,全量迁移时才有底气。记住:样板房不合格,绝不签全屋合同——这不是不信任,而是对彼此负责。

PassRate=NokNtotal×100%\displaystyle \text{PassRate} = \frac{N_{\text{ok}}}{N_{\text{total}}} \times 100\%
通俗说明:总共定了 8 项验收指标,试点完成了 7 项,通过率就是 87.5%。八成以上是一条常见的及格线。
  1. 总指标数 N_totalN_total 是试点前约定的验收维度,比如延迟、吞吐、代码行数、上手周期。
    Ntotal=8N_{\text{total}} = 8
  2. 达标数 N_okN_ok 是实测达到目标的指标数量。
    Nok=7N_{\text{ok}} = 7
  3. 计算通过率达标数除以总数再乘 100%,和事先约定的阈值比较,决定能否进入全量阶段。
    78×100%=87.5%\frac{7}{8} \times 100\% = 87.5\%

迁移成本:拆了重装的代价

最怕的是另一种情况:全屋装完住进去,才发现装修队不行。瓷砖空鼓、墙面开裂、电路跳闸,只能拆了重装。拆墙、清运、重买材料、全家租房过渡……这笔账,比当初老老实实装修贵出好几倍。

框架迁移就是“拆了重装”。老框架里精调过的参数、踩坑攒下的补丁、与上下游系统的对接代码,全要推倒重来;团队要重新学习,业务要停机迁移,历史数据要转格式。每一项都是钱。

所以动手前,先算总账:

正因为迁移如此昂贵,框架对比才更加重要——它不是选一个“当下最好的”,而是选一个“未来最不用换的”。装修时多花三个月选对施工队,远好过住三年再砸墙;选型时多花三周做对比,远好过上线三年再迁移。

Cmig=Rlines×cunit+Ctrain+Tdown×Ldaily\displaystyle C_{\text{mig}} = R_{\text{lines}} \times c_{\text{unit}} + C_{\text{train}} + T_{\text{down}} \times L_{\text{daily}}
通俗说明:迁移成本 = 重写代码的工时费 + 团队培训费 + 停机期间每天的业务损失。少算任何一项,预算都会爆。
  1. 重构代码量 R_linesR_lines 是需要重写的存量代码行数,代表迁移工作量的规模。
    Rlines=5×104R_{\text{lines}} = 5 \times 10^{4}
  2. 单位成本 c_unitc_unit 是每行代码折算的工时成本,包含开发与联调时间。
    cunit=0.5 人时c_{\text{unit}} = 0.5\,\text{人时}
  3. 培训与停机损失C_train 是团队学习新框架的投入;T_down 是停机天数,L_daily 是每天的业务损失。
    Ctrain+Tdown×LdailyC_{\text{train}} + T_{\text{down}} \times L_{\text{daily}}
  4. 总迁移成本把重构、培训和停机三部分相加,得到迁移的完整代价。
    Cmig=Rlines×cunit+Ctrain+Tdown×LdailyC_{\text{mig}} = R_{\text{lines}} \times c_{\text{unit}} + C_{\text{train}} + T_{\text{down}} \times L_{\text{daily}}

长期演进:住得十年还舒服吗?

装修的终点不是验收那天。电线要留够未来加电器的余量,家具要选耐看不过时的款式,小区配套也要持续更新。真正的高手看施工队,看到的是十年后的生活。技术选型也一样:路线图、升级策略、对技术浪潮的适应能力,决定了系统能住多久。

一个框架今天再火,如果作者停止维护、升级不兼容、方向走偏,你的系统就会像断了保养的老房子,越来越难住。所以评估时要把时间维度拉进来:路线图清不清晰、版本升级平不平滑、社区有没有持续投入。

未来的成本,要折算到今天来比:

装修的终点是住进去的每一天,框架选型的终点是系统运行的每一年。选型时多花的一分钟,都是在为未来的自己省下拆墙的钱。把眼光放长十年,今天的每一项考察、每一分权重,都值回票价。

NPV=∑t=110Ct(1+r)t\displaystyle \text{NPV} = \sum_{t=1}^{10} \frac{C_t}{(1 + r)^{t}}
通俗说明:未来每年要花的维护费,按贴现率 r 折算成今天的钱再相加。同样性能的两个框架,十年总拥有成本可能差出好几倍。
  1. 年度成本 C_tC_t 是第 t 年预计的维护、升级、人力总成本。
    C1=100 万元C_1 = 100\,\text{万元}
  2. 贴现率 rr 体现资金的时间价值,今天的 100 元比十年后的 100 元更值钱,所以要打折。
    (1+r)t>1(1 + r)^{t} > 1
  3. 累加十年把第 1 年到第 10 年每年的现值全部相加,得到十年总拥有成本。
    NPV=∑t=110Ct(1+r)t\text{NPV} = \sum_{t=1}^{10} \frac{C_t}{(1 + r)^{t}}
  4. 比较决策选总现值更小的方案,同时在路线图上留出应对变化的预案。

AI 应用场景

场景一:智能客服团队的框架选型评审

阶段:技术方案设计阶段

解决的问题:靠“感觉”和“网上热度”选框架,上线后才发现性能与团队能力不匹配,返工成本高昂。决策矩阵把评估维度量化,让团队在动工前就对“选谁”达成一致。

具体案例:一家做智能客服的创业公司要在两个 NLP 框架间二选一。技术负责人拉出“性能、上手成本、推理延迟、生态成熟度”四维加权表,又用低峰期的意图识别模块做了两周试点,实测吞吐率和准确率。最终选了加权总分更高、且团队两周内就能上手的方案,上线三个月零返工。

场景二:CTO 治理平台技术债务

阶段:系统维护与演进阶段

解决的问题:早期图快留下的临时补丁像滚雪球,每次框架升级都要手工修一遍,升级窗口从一天拖到三周。引入技术债务清单与固定偿还机制,把隐性成本变成可见的排期。

具体案例:某银行 AI 平台积累了大量“绕过框架原生 API”的临时补丁。CTO 建立债务清单,按严重程度分级,每季度雷打不动留出两周“还债窗口”。一年后,框架大版本升级从三周缩短到半天,新增需求的交付速度提升 60%。

场景三:制造业团队的 TCO 决策

阶段:成本评估与方案选择阶段

解决的问题:开源“免费”的幻觉与自研“可控”的执着让人反复纠结。用 TCO 公式把人力、周期、维护全部货币化,决策就有了客观依据。

具体案例:某制造企业要上线质检推理服务,团队在“自研推理引擎”和“开源推理框架 + 定制插件”间犹豫。用 TCO 一算:自研需 6 人干满 12 个月,开源只需 2 人花 6 个月适配,且后续框架升级由社区免费提供。最终选择开源路线,省下的预算投入到了业务算法优化。

Python 演示

python51 行
# -*- coding: utf-8 -*-"""框架对比决策矩阵: 加权评分 + 敏感度分析"""  def weighted_score(scores, weights):    """计算加权总分: sum(w_i * s_i)"""    assert abs(sum(weights) - 1.0) < 1e-6, "所有权重之和必须为 1"    return sum(w * s for w, s in zip(weights, scores))  def sensitivity_analysis(candidates, dimensions, base_weights, swing=0.1):    """调整每个维度的权重, 观察排名是否变化"""    print("=== 敏感度分析 权重正负0.1浮动 ===")    for i in range(len(base_weights)):        for delta in (-swing, swing):            weights = list(base_weights)            weights[i] += delta            total = sum(weights)            weights = [w / total for w in weights]            results = {name: weighted_score(s, weights)                       for name, s in candidates.items()}            ranking = sorted(results.items(), key=lambda x: x[1], reverse=True)            order = " > ".join("%s(%.2f)" % (n, v) for n, v in ranking)            print("维度[%s] 调整%+.2f: %s" % (dimensions[i], delta, order))  def main():    dimensions = ["性能", "易用性", "生态", "文档", "成本", "社区"]    base_weights = [0.20, 0.15, 0.20, 0.10, 0.20, 0.15]    candidates = {        "框架甲": [0.82, 0.75, 0.90, 0.85, 0.60, 0.88],        "框架乙": [0.70, 0.92, 0.65, 0.80, 0.85, 0.72],    }     print("=== 各维度得分 0到1 ===")    for name, scores in candidates.items():        detail = "  ".join("%s=%.2f" % (d, s)                           for d, s in zip(dimensions, scores))        print("%s: %s" % (name, detail))     print("\n=== 基础权重下的加权总分 ===")    results = {name: weighted_score(s, base_weights)               for name, s in candidates.items()}    for name, score in sorted(results.items(), key=lambda x: x[1], reverse=True):        print("%s: %.4f" % (name, score))     sensitivity_analysis(candidates, dimensions, base_weights)  if __name__ == "__main__":    main()
目的:用加权评分矩阵对比两个候选框架,再调整每个维度的权重做敏感度分析——看看权重稍微变动,排名会不会翻盘。
  1. assert abs(sum(weights) - 1.0) < 1e-6校验权重之和必须等于 1,防止打分体系失真。
  2. return sum(w * s for w, s in zip(weights, scores))逐维相乘再累加,算出候选框架的加权总分。
  3. weights[i] += delta每次只扰动一个维度的权重,观察它对排名的影响。
  4. weights = [w / total for w in weights]扰动后重新归一化,保证权重和恢复为 1。
  5. results = {name: weighted_score(s, weights) for name, s in candidates.items()}批量计算所有候选框架在给定权重下的总分。
  6. ranking = sorted(results.items(), key=lambda x: x[1], reverse=True)按总分降序排列,输出当前权重下的名次。

常见误区

误区“我把所有框架都打了分,总分最高的那个就是正确答案,直接拍板就行。”

正解加权打分只是把大家的直觉摆到桌面上,权重本身是主观的。如果权重稍微一变排名就翻盘,说明方案之间没有显著差异。这时候应该回到业务目标重新对齐权重,或者用试点数据校准分数,而不是迷信总分——就像装修打分表上老张 88 分、老李 87 分,差一分根本不构成“老张完胜”。

为何常见:人们总希望有一个“唯一正确答案”来逃避决策责任,而数字恰好提供了这种虚假的安全感。

误区“开源框架不要钱,用起来当然最省,预算里根本不用算它。”

正解开源省的是授权费,不是总拥有成本。团队学习、集成适配、安全维护、性能调优都要花钱。用 TCO 一算,开源方案的总成本常比想象中高得多,只是支出方式从“买 license”变成了“养工程师”——就像现成沙发虽然不要设计费,但组装、搬运、保养一样要花钱。

为何常见:“免费”二字太醒目,人们容易忽略隐性的维护与人力成本。

误区“社区这么活跃、大家都用,跟着大流选肯定没错。”

正解社区热度反映的是“很多人用”,不代表“适合你的场景”。就像口碑最好的施工队未必会做你家的中式庭院。要结合自身业务特点、团队技能和迁移成本做加权评估,热度只能作为生态维度的一项参考。

为何常见:从众是最省力的决策方式,而热度是最容易看到的外部信号,两者天然绑在一起。

误区“现在先把功能做出来,债务等有空了再还,反正又不会立刻爆。”

正解技术债务是复利增长的:框架每次升级、业务每次加需求,都要在旧补丁上再打补丁。拖得越久,偿还成本越高,最终会变成“不敢升级、不敢重构、新增功能越来越慢”的危房,只能整栋推倒——防水层的问题不会消失,只会等到漏水那天一次性爆发。

为何常见:损失厌恶让人回避眼前的痛苦,而债务的指数增长又很难靠直觉感知。

误区“样板房装得不错,说明这支施工队全屋也没问题,直接放手让他干。”

正解试点只验证了低风险小模块,全量迁移会暴露规模问题:性能瓶颈、团队协作、存量兼容、运维复杂度。试点通过只代表“值得进入下一阶段”,还需要分阶段推广、持续复盘,而不是把局部成功当成整体成功的保证。

为何常见:“眼见为实”的心理暗示,让人轻易把局部成功外推为全局结论。

面试题

Q1. 决策矩阵的核心方法是什么?

单选题 · easy

  • A.只选性能最高的框架
  • B.按权重计算综合得分← 正确答案
  • C.选社区规模最大的
  • D.选文档数量最多的

答案:B。决策矩阵把多个维度按重要性加权求和,避免“单一指标定生死”。A 只看性能是“唯手艺论”,C、D 把规模当作答案则是“从众心理”,都会漏掉易用性、成本等关键维度。就像选施工队,手艺再好但报价离谱、工期无限拖,照样不能签约。

Q2. 技术债务的本质是指什么?

单选题 · easy

  • A.为短期速度牺牲长期健康← 正确答案
  • B.服务器采购费用超支
  • C.开源软件许可证欠费
  • D.项目上线时间被压缩

答案:A。技术债务是“为短期速度牺牲长期健康”——为了赶工跳过的测试、绕过的 API,日后都要加倍偿还。B 是预算问题、C 是授权问题、D 是工期管理问题,都不属于“债”。就像把防水层做薄,省的是今天的钱,欠的是六年后砸砖重做的债。

Q3. 加权评分中,权重之和应满足什么条件?

单选题 · easy

  • A.所有维度权重之和为 1← 正确答案
  • B.每个权重都必须大于 10
  • C.所有维度权重完全相等
  • D.权重之和必须小于 0

答案:A。加权评分要求所有权重之和等于 1,总分才在统一量纲下可比。B 明显不合理,C 抹杀了不同维度的相对重要性,D 违背权重非负的基本常识。权重就像给施工队各项能力发“票”,票的总数必须固定,否则各家之间根本没法比较。

Q4. 与自研相比,开源框架的优势包括?

多选题 · mid

  • A.社区贡献者持续迭代修复← 正确答案
  • B.完全贴合业务方的特殊需求
  • C.显著降低初期开发的成本← 正确答案
  • D.完全不需要任何学习成本

答案:AC。开源的真实优势在于社区持续迭代修复和低成本起步,A、C 正确。B 是自研的优势,D 是普遍幻觉——开源框架同样需要学习。就像买现成家具的好处是便宜、坏了有人管,但你还是得学会怎么用、怎么保养,不可能零门槛。

Q5. 关于落地试点,正确的做法是?

单选题 · mid

  • A.直接迁移核心交易类系统
  • B.选低风险小模块先做验证← 正确答案
  • C.试点过程不设任何考核指标
  • D.试点验收通过就全量复刻

答案:B。试点要选低风险小模块验证,B 正确。A 等于没装样板房就全屋施工,风险极高;C 没有指标等于没有验收标准;D 把局部成功当成全局保证。样板房合格只代表“值得继续”,不表示“全屋无忧”,还要分阶段推广、持续复盘。

Q6. 社区生态为什么会影响技术选型?

单选题 · mid

  • A.周边工具和人才储备更充足← 正确答案
  • B.社区越庞大性能就必然越强
  • C.活跃度和代码质量总是成反比
  • D.生态繁荣仅影响前端模块

答案:A。生态繁荣意味着工具、人才、社区支持都更充足,A 正确。B 把规模等同于性能,C 的“反比”没有依据,D 低估了生态对后端框架的深远影响。施工队的“朋友圈”广,你家半夜水管爆了才有人能连夜来修。

Q7. 下面哪些属于偿还技术债务的正确做法?

多选题 · mid

  • A.预留固定时间窗口定期升级← 正确答案
  • B.建立债务清单持续跟踪偿还← 正确答案
  • C.把核心接口全部推倒并重写
  • D.取消单元测试来节省工作日

答案:AB。偿还债务的正确姿势是“定期升级 + 清单跟踪”,A、B 正确。C 是“把房子推倒重盖”,风险极高且可能制造新债务;D 是“拆东墙补西墙”,反而增加了债务。还债要像定期保养家具,而不是等坏了全部扔掉换新。

Q8. 框架迁移成本中占比最高的是?

单选题 · mid

  • A.存量代码重构及团队培训← 正确答案
  • B.社区文档的翻译整理成本
  • C.新旧框架的功能对比时间
  • D.迁移期间服务器的耗电费用

答案:A。迁移成本的大头永远是存量代码重构和团队培训,A 正确。文档翻译、对比时间、电费虽然存在,但占比很小。就像拆墙重装时,最贵的是人工费和停工期,而不是那几车建筑垃圾的清运费。

Q9. 长期演进分析中贴现率 r 的作用是?

单选题 · hard

  • A.把未来成本折算为当前现值← 正确答案
  • B.让总成本数值看起来更美观
  • C.用来替代每年的通货膨胀率
  • D.只适用于过去的成本结算

答案:A。贴现率 r 把未来成本折算成现值,让不同年份的钱可以公平比较,A 正确。B 是胡闹,C 混淆了贴现率与通胀率,D 颠倒了时间方向。十年后的十万块没有今天的十万块值钱,必须折算完才能放进同一张决策表里比较。

Q10. 敏感度分析能帮助决策者回答什么问题?

多选题 · hard

  • A.权重变化时排名是否会改变← 正确答案
  • B.哪个方案的结果更加稳定← 正确答案
  • C.保证任何权重下结果都相同
  • D.直接确定唯一正确的权重

答案:AB。敏感度分析检验“权重变化是否改变排名”,并帮我们找出更稳定的方案,A、B 正确。C 要求任何权重下结果都相同,等于否定了权重的作用;D 声称能确定唯一权重,但权重本就是团队共同谈判的结果,不存在“唯一正确”。