CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
多语言后端入门/课时/如何选择语言
RawBlame
课时目录12 节

多语言后端入门

  1. 01多语言后端概览
  2. 02Go 入门
  3. 03Rust 入门
  4. 04C# 入门
  5. 05Ruby 入门
  6. 06语言对比
  7. 07并发模型
  8. 08包管理与工具链
  9. 09与 Java 互操作
  10. 10如何选择语言
  11. 11多语言微服务
  12. 12综合练习

如何选择语言

团队、场景、遗留系统。

30 分钟

如何选择语言

「学 Rust 还是 Go?」不如先问 团队、场景、遗留、SLO、招聘。语言选型是 架构决策,应留下 ADR(Architecture Decision Record),而不是跟 hype。本节给出 可执行的决策树,衔接路线图 pick-a-backend-language 节点。

学习目标

  • 用决策维度而非流行度选语言
  • 起草简短 ADR 的结构
  • 识别「一种语言打天下」与「理性 polyglot」的边界

决策维度

维度问题
团队谁会维护?能否招到?
场景I/O?CPU?延迟?合规?
遗留已有 Rails/.NET/PHP 能否替换?
生态需要的 SDK、中间件、云厂商支持?
运维镜像大小、启动时间、可观测性成熟度?
一致性能否共用 Proto、CI、日志规范?

简化决策树

新服务,团队 primarily Java?
  ├─ 是 → 默认 Spring Boot(java-fundamentals / spring-boot-essentials)
  │       除非:基础设施/网关/极致启动 → 考虑 Go
  │       除非:native 性能块 → Rust 库或 sidecar
  ├─ 全栈 JS 团队、BFF 为主 → nodejs-essentials
  ├─ AI/数据管线 → python-fundamentals
  ├─ Azure/.NET 存量 → C# ASP.NET Core
  └─ CMS/WordPress 周边 → php-essentials,少动核心

重写遗留:先 strangler fig(边车、路由切流),勿 big bang 换语言。

ADR 模板(精简)

# ADR-007: 搜索服务使用 Go 实现

## 状态
Accepted

## 背景
Java 订单服务 QPS 足够;搜索读路径需 <20ms P99,容器密度要高。

## 决策
搜索索引 API 用 Go;与 Java 通过 gRPC(见 grpc-essentials)通信。

## 后果
+ 部署单元小、goroutine 适合 fan-out
- 团队需 Go on-call;Proto 变更要双语言 CI

与 git-essentials 一样:决策进 repo,不是口口相传。

反模式

  • 简历驱动:「我们要上 Rust」却无性能证据
  • 复制 Netflix:体量、组织不匹配
  • 每服务一语言:运维与 shared library 爆炸
  • 忽视 Java 虚拟线程:未 profile 就否定 JVM

与本站 track 的分工

需求深挖 track
Java 业务与 Springjava-fundamentals、spring-boot-essentials
微服务治理spring-cloud-essentials
跨语言 RPCgrpc-essentials
Node BFFnodejs-essentials
脚本与 AIpython-fundamentals
PHP 遗留php-essentials
四门速览本 track pl-go ~ pl-ruby

练习

  • 选一个假想服务(通知、搜索、报表),用决策树写推荐语言与一句理由
  • 起草半页 ADR,含「背景 / 决策 / 后果」
  • 团队里「不能换语言」的三条约束是什么?(合规、客户、技能)

小结

选型看团队与边界,不看热搜;写下来、可复审、可回滚。 下一课多语言微服务架构。

加载本节练习…
← 上一课与 Java 互操作下一课 →多语言微服务