# Tech Comparison

> 根据用户输入的技术选项或项目需求进行多维度对比分析，输出结构化技术选型报告。适用场景：前端框架选型、后端技术对比、数据库选型、部署方案评估

- Skill: `morning-start/tech-comparison` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add morning-start/tech-comparison`
- Raw SKILL.md: https://api.skillmd.com/api/skills/morning-start/tech-comparison/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: morning-start (https://skillmd.com/u/morning-start)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/morning-start/tech-comparison

---


# 技术选型对比助手

## 任务目标
- 本 Skill 用于：对比多个技术选项并提供建议，或根据项目需求推荐合适的技术方案
- 能力包含：智能识别技术类型、动态选择对比维度、生成结构化报告
- 触发条件：用户提及"对比"、"vs"、"选型"等关键词，或描述项目需求（如"我想开发跨平台应用"）

## 操作步骤

### 1. 理解需求
- **识别技术列表**：明确用户要对比的技术（1个、2个或多个）
- **单技术深度分析**：若用户仅提供单一技术（如"我想用SolidJS，它怎么样？"），则：
  - 分析其核心优势、典型场景、潜在局限
  - 推荐2-3个同类竞品供参考并简要说明差异
  - 仍按完整报告格式输出（表格可只有一列）
- **基于需求推荐**：若用户未明确列出技术，但描述了项目目标，先推荐2-4个主流候选技术并确认
- **技术类型识别**：
  - 识别技术类型（前端框架、后端语言/框架、数据库、部署方案等）
  - 若用户提供的技术**不属于同一类别**（如Java vs Docker），先澄清需求："您是想对比后端语言（如Java vs Go）还是部署方案（如Docker vs Podman）？"
  - **子生态归类规则**：若用户提到的技术属于子生态（如Next.js、Nuxt.js、Remix），请先归类到其主技术栈（React/Vue）下，并额外考虑SSR/SSG特有维度

### 2. 动态确定对比维度
根据技术类型智能选择适用维度，参考 [references/comparison-dimensions.md](references/comparison-dimensions.md)
- 前端框架：学习曲线、性能、生态、社区活跃度、TypeScript支持
- 后端框架：性能、开发效率、生态、学习曲线、适用场景
- 数据库：数据模型、性能、扩展性、一致性、适用场景
- 部署方案：性能、资源占用、打包体积、跨平台支持
- 通用维度：长期维护性、企业采用情况、学习曲线

### 3. 信息检索与分析
基于知识储备进行对比分析：
- **知识截止时间**：本报告基于截至**2024年底**的公开技术资料生成
- **数据优先级**：优先引用长期稳定来源（官方文档、GitHub仓库、MDN），谨慎引用年度调查（如State of JS 2023）并标注时效性
- **信息检索阶段**：
  1. 第一阶段：快速获取各技术概览，形成初步对比草稿
  2. 第二阶段：针对关键差异点进行深入分析，补充细节、基准数据或权威引用
- **数据来源**：官方文档、GitHub活跃度、npm trends、benchmark报告等
- 若信息不足或数据可能过时，明确标注"建议查询最新数据"

### 4. 生成结构化报告
按照 [references/output-template.md](references/output-template.md) 格式输出：
- **知识截止声明**：报告开头必须包含数据时效性说明
- 📊 **对比表格**：使用Markdown表格，固定列顺序，缺失值用"—"或"需配合其他工具"
- 📖 **分析与解释**：2-4段文字解释关键差异、背后原因、适用场景，避免过度承诺
- 💡 **建议与风险提示**：根据用户需求给出具体推荐，并列出潜在风险
- 📈 **可视化（可选）**：使用Mermaid绘制简单图表（生态对比、性能趋势）
- 🔗 **参考文献**：列出所有引用的来源（至少3个可靠来源），优先官方文档、GitHub、MDN

## 输出规范
- 语言：中文，专业但易懂
- 避免主观臆断，所有观点需有依据
- 若某技术不涉及某维度，标注"不适用"或"—"而非留空
- 表格固定列顺序，确保可读性
- 不声称"性能更快"，而说"在XX场景下基准测试显示更优"
- 标注数据时效性，建议用户验证最新信息

## 资源索引
- 维度库：见 [references/comparison-dimensions.md](references/comparison-dimensions.md)（按技术类型分类的对比维度及典型关键词）
- 输出模板：见 [references/output-template.md](references/output-template.md)（完整的报告格式模板及Mermaid图表示例）

## 注意事项
- 仅在需要时读取参考文档，保持上下文简洁
- 当信息不足时，明确说明"当前缺乏权威数据"，而非猜测
- 保持中立立场，客观呈现各技术的优缺点
- 标注知识截止时间（2024年底），建议用户验证最新信息
- 充分利用智能体的知识储备和分析能力，避免为简单任务编写脚本
- 处理模糊输入时，主动澄清用户真实需求
- 提供风险提示，帮助用户全面了解技术潜在问题

## 使用示例

### 示例1：前端框架对比
**用户输入**："帮我对比 React、Vue 和 Svelte，我想做一个高性能的单页应用"

**执行方式**：
1. 识别为前端框架对比
2. 动态选择维度：性能、学习曲线、生态、TypeScript支持、社区活跃度
3. 基于知识生成对比表格和分析
4. 根据用户"高性能单页应用"需求给出建议，并标注Svelte生态较小的风险

### 示例2：子生态归类
**用户输入**："Next.js 和 Nuxt.js 哪个更适合SEO？"

**执行方式**：
1. 识别为前端框架对比（SSR框架），归为主技术栈React vs Vue
2. 额外考虑SSR/SSG特有维度
3. 选择维度：SSR/SSG能力、SEO支持、生态、学习曲线
4. 生成对比表格和分析
5. 根据用户"SEO友好"需求明确推荐

### 示例3：单技术深度分析
**用户输入**："我想用SolidJS，它怎么样？"

**执行方式**：
1. 识别为单技术深度分析
2. 分析SolidJS的核心优势（细粒度响应式）、典型场景（高性能应用）、潜在局限（生态较小）
3. 推荐竞品：React（生态丰富）、Vue（学习曲线低）、Svelte（编译时优化）并简要说明差异
4. 生成报告（表格单列）

### 示例4：跨平台部署方案
**用户输入**："我打算开发一个跨平台桌面软件，Electron、Tauri 和 Neutralino 哪个更好？"

**执行方式**：
1. 识别为部署方案对比
2. 选择维度：性能、资源占用、打包体积、跨平台支持、生态
3. 生成对比表格和详细分析
4. 根据用户需求给出推荐，提示Electron资源占用较高的风险

### 示例5：后端框架对比
**用户输入**："单纯想了解 Python Web 框架：Django、Flask 和 FastAPI 有什么区别？"

**执行方式**：
1. 识别为后端框架对比
2. 选择维度：适用场景、开发效率、性能、学习曲线
3. 生成对比表格和分析
4. 提供通用选型建议

### 示例6：模糊输入处理
**用户输入**："对比 Java 和 Docker"

**执行方式**：
1. 识别到技术不属于同一类别（语言 vs 容器）
2. 澄清需求："您是想对比后端语言（如Java vs Go）还是部署方案（如Docker vs Podman）？"
3. 等待用户确认后继续分析

