# 技术栈推荐矩阵 基于黄金路径"主张性"原则,提供经过验证的技术选型推荐。 ## 选型原则 1. **优先成熟稳定**:生产验证 > 技术新颖 2. **生态系统完整**:工具链、社区、人才储备 3. **认知负荷最小化**:学习曲线与团队匹配 4. **长期可维护性**:活跃维护、向后兼容 --- ## 应用架构模式选型 | 场景特征 | 推荐模式 | 理由 | |----------|----------|------| | 早期产品、团队<10人 | **模块化单体** | 快速迭代,避免分布式复杂性 | | 成熟产品、多团队并行 | **微服务** | 独立部署,团队自治 | | 事件驱动、高弹性需求 | **Serverless** | 按需扩展,成本优化 | | 遗留系统现代化 | **绞杀者模式** | 渐进式迁移,风险可控 | ### 架构决策树 ``` 项目类型? ├── MVP/早期产品 │ └── 推荐: 模块化单体 (Next.js/Rails/Django) ├── 成长期产品 │ ├── 需要独立扩展? │ │ ├── 是 → 微服务 (容器化) │ │ └── 否 → 继续单体,关注模块边界 └── 成熟产品 └── 按领域边界拆分微服务 ``` --- ## 后端技术栈 ### Tier 1: 首选推荐 | 场景 | 推荐栈 | 理由 | |------|--------|------| | 通用Web服务 | **Go + Gin/Echo** | 高性能、部署简单、并发模型清晰 | | 快速开发 | **Python + FastAPI** | 开发效率、类型提示、异步支持 | | 企业级应用 | **Java 21+ + Spring Boot 3** | 生态成熟、人才充足、长期支持 | | 高并发/实时 | **Node.js + NestJS** | 事件驱动、TypeScript支持 | ### Tier 2: 特定场景 | 场景 | 推荐栈 | 适用条件 | |------|--------|----------| | 系统级性能 | **Rust + Axum** | 团队有Rust经验,性能敏感 | | .NET生态 | **C# + ASP.NET Core** | 现有.NET投资,Windows生态 | | 函数计算 | **TypeScript + AWS Lambda** | Serverless优先架构 | --- ## 前端技术栈 ### 核心框架 | 场景 | 推荐栈 | 理由 | |------|--------|------| | 通用SPA | **React 18+ + TypeScript** | 生态最大、人才最多、灵活性高 | | 全栈一体 | **Next.js 14+ (App Router)** | SSR/SSG、API路由、优化内置 | | 渐进增强 | **Vue 3 + Nuxt 3** | 学习曲线平缓、官方全家桶 | | 高性能需求 | **Svelte + SvelteKit** | 编译时优化、bundle更小 | ### 样式方案 | 优先级 | 方案 | 适用场景 | |--------|------|----------| | 1 | **Tailwind CSS** | 通用首选,原子化、一致性好 | | 2 | **CSS Modules + Sass** | 需要传统CSS组织方式 | | 3 | **styled-components** | 动态样式需求、CSS-in-JS偏好 | ### 状态管理 | 复杂度 | 推荐方案 | 说明 | |--------|----------|------| | 简单 | React内置 (useState/useContext) | 避免过度工程 | | 中等 | **Zustand** | 轻量、直观、TypeScript友好 | | 复杂 | **Redux Toolkit + RTK Query** | 完整工具链、中间件生态 | --- ## 数据层 ### 关系型数据库 | 场景 | 推荐 | 理由 | |------|------|------| | 通用OLTP | **PostgreSQL 16+** | 功能丰富、JSONB支持、扩展生态 | | 高并发读写 | **MySQL 8+ / PlanetScale** | 成熟稳定、分布式扩展方案 | | 嵌入式/边缘 | **SQLite** | 零配置、高可靠 | ### NoSQL数据库 | 场景 | 推荐 | 理由 | |------|------|------| | 文档存储 | **MongoDB Atlas** | 灵活Schema、托管服务成熟 | | 缓存 | **Redis 7+** | 数据结构丰富、集群支持 | | 搜索 | **Elasticsearch / OpenSearch** | 全文搜索、日志分析 | | 时序数据 | **TimescaleDB / InfluxDB** | 时序优化、压缩高效 | ### 消息队列 | 场景 | 推荐 | 理由 | |------|------|------| | 通用异步 | **Apache Kafka** | 高吞吐、持久化、生态丰富 | | 轻量级 | **Redis Streams** | 已有Redis、需求简单 | | 云原生 | **AWS SQS / GCP Pub/Sub** | 托管服务、免运维 | --- ## 基础设施 ### 容器与编排 | 层级 | 推荐 | 说明 | |------|------|------| | 容器运行时 | **Docker / containerd** | 行业标准 | | 编排平台 | **Kubernetes (托管)** | EKS/GKE/AKS优先,避免自建 | | 轻量替代 | **Docker Compose + Swarm** | 小规模、快速起步 | ### 基础设施即代码 | 场景 | 推荐 | 理由 | |------|------|------| | 多云/通用 | **Terraform** | 生态最大、状态管理成熟 | | AWS专用 | **AWS CDK (TypeScript)** | 类型安全、与AWS深度集成 | | Kubernetes | **Helm + Kustomize** | 模板化、环境差异管理 | ### GitOps工具 | 推荐 | 适用场景 | |------|----------| | **ArgoCD** | Kubernetes原生、UI友好、多集群 | | **Flux v2** | 轻量、GitOps Toolkit、可组合 | --- ## 开发者工具链 ### CI/CD | 场景 | 推荐 | 理由 | |------|------|------| | GitHub生态 | **GitHub Actions** | 深度集成、市场丰富 | | 自托管 | **GitLab CI** | 完整DevOps平台 | | 企业级 | **Jenkins + BlueOcean** | 灵活可控、插件生态 | ### 可观测性 | 层面 | 推荐 | 说明 | |------|------|------| | 统一采集 | **OpenTelemetry** | 厂商中立、标准化 | | 指标 | **Prometheus + Grafana** | 开源标准、告警成熟 | | 日志 | **Loki / Elasticsearch** | 与Grafana集成 / 功能丰富 | | 追踪 | **Jaeger / Tempo** | 分布式追踪、开源方案 | | 托管方案 | **Datadog / New Relic** | 一站式、减少运维负担 | ### 开发者门户 | 推荐 | 说明 | |------|------| | **Backstage** | Spotify开源、事实标准、插件生态 | | **Port** | SaaS方案、快速上手 | --- ## 安全工具链 | 阶段 | 工具 | 用途 | |------|------|------| | 代码扫描 | **Semgrep / SonarQube** | SAST静态分析 | | 依赖检查 | **Snyk / Dependabot** | SCA漏洞扫描 | | 容器安全 | **Trivy / Grype** | 镜像漏洞扫描 | | 密钥检测 | **GitLeaks / TruffleHog** | 防止密钥泄露 | | 密钥管理 | **HashiCorp Vault** | 集中式密钥管理 | | 策略引擎 | **OPA / Kyverno** | 策略即代码 | --- ## 技术选型决策模板 每项技术选型须记录: ```markdown ## 技术选型: [名称] ### 背景 [为什么需要做这个决策] ### 选项分析 | 选项 | 优势 | 劣势 | 风险 | |------|------|------|------| | A | | | | | B | | | | ### 决策 选择 [X],理由:[简述核心理由] ### 后果 - 正面:[预期收益] - 负面:[需要接受的权衡] ### 验证计划 [如何验证决策正确性] ```