Skip to content
返回架构决策

框架选择

选无聊且文档全的框架而非新颖聪明的。

为什么

框架是你每行代码的基底——它的 bug 成你的 bug、它的抽象成你的心智模型、它的升级路径成你的周末。无聊文档全的框架(Express、Spring、Django)有已知 bug(全找到)、已知模式(全 Stack Overflow)和长支持期。新颖框架有未知 bug、稀疏文档、可能 2 年弃。新颖对作者有趣对继承团队痛。框架选择应优化团队生产力和长寿,非作者好奇。

何时使用

服务创建时。2-4 小时评估。仅框架终期或阻关键功能时重访。

如何做

1. 列该语言候选框架(见 language-selection)
2. 每个打分:
   - 成熟:> 3 年、稳定 API、大规模生产用
   - 文档:全、示例、活跃社区(Stack Overflow 标签)
   - 维护:近期发、响应维护者、安全补丁速度
   - 招聘:能找到会的工程师吗?
   - 适配:匹配问题吗(web、CLI、批处理、实时)?
3. 淘汰成熟或维护低分——这些是取消资格
4. 余中偏最无聊(最多用户、最多文档、最少意外)
5. 前 2 各原型最险功能(各 1 天)确认适配
6. 决策;把理由和考虑备选记 ADR

示例

服务:内部管理 API(Go)

候选:
  - Gin:成熟(10 年)、文档优、社区大、无聊 ✓
  - Echo:成熟、文档好、社区小
  - Fiber:新颖(类 Express)、快、用户少、新
  - net/http 标准库:最无聊、功能最少、最啰嗦

打分(成熟/文档/维护/招聘/适配,1-5):
  Gin:  5/5/5/5/5 = 25
  Echo:5/4/5/4/5 = 23
  Fiber:3/3/4/2/5 = 17
  标准库:5/5/5/5/3 = 23

决策:Gin。最无聊、文档最好、最易招。
  Fiber 的速度优势对内部管理 API 无关。

常见问题

  • ⚠因"更现代"选新颖框架——现代意味未知 bug 和稀疏文档;无聊意味已解问题和 Stack Overflow 有帮。

最佳实践

  • ✓偏团队已会框架——熟悉的生产力胜你须学的更好框架的理论优势。
  • ✓选前查框架最后发版和 issue 响应——不维护的框架是负债非资产。

相关资源