1 Hour Guide一小时指南
剩余:60 min
返回教程列表
🤖 AI 实战60 分钟新手Jun 19, 2026

1 小时上手 Claude 代码编程

使用 Claude 作为 AI 编程助手,从想法到可运行代码,60 分钟构建真实 CLI 工具

#ai#cli#claude#pair-programming#development

本教程结束后,你将在 Claude 的帮助下构建出一个功能完整的 CLI 工具,并掌握 AI 结对编程的核心模式。

🎯 成果展示

构建一个天气 CLI 工具,可以获取任意城市的实时天气状况。Claude 将帮你设计架构、编写代码并调试问题。

$ weather-cli "San Francisco"
🌤️  San Francisco, CA
Temperature: 68°F (20°C)
Conditions: Partly Cloudy
Humidity: 72%
Wind: 8 mph SW

⏱️ 时间分配

010min
建立 Claude 对话并定义项目范围
1025min
与 Claude 设计架构并搭建项目骨架
2540min
在 AI 协助下实现核心功能
4055min
添加特性、处理错误并测试边界情况
5560min
打包并部署你的 CLI 工具

📋 前置条件

  • 已安装 Node.js 18+
  • 基础命令行使用能力
  • Claude 账户(免费版即可)
  • 文本编辑器或 IDE
  • OpenWeatherMap API 密钥(免费)

第 1 步:开始你的 AI 结对编程会话(0–10 分钟)

打开 Claude 并用以下提示建立你的编程伙伴关系:

我想在接下来的一小时内用 Node.js 构建一个 CLI 天气工具。我是一个[你的技能水平]开发者。

需求:
- 接受城市名称作为参数
- 显示格式美观的当前天气
- 优雅处理错误
- 使用免费天气 API

帮我规划架构,然后我们逐步构建。最佳方案是什么?

Claude 会建议一个架构。继续询问:

完美!我们使用 OpenWeatherMap API。你能帮我:
1. 设置项目结构
2. 选择合适的 npm 包
3. 规划需要的主要函数

显示初始文件结构和 package.json。

创建你的项目目录:

mkdir weather-cli
cd weather-cli
npm init -y

Checkpoint

问 Claude:"我应该首先安装哪些 npm 包,为什么?"

第 2 步:在 Claude 指导下搭建骨架(10–25 分钟)

安装 Claude 推荐的包:

npm install axios commander chalk dotenv
npm install -D nodemon

请 Claude 生成初始文件结构:

现在创建基本文件结构。我需要:
- 主要 CLI 入口点
- 天气服务模块
- 配置处理
- 错误处理工具

显示每个文件的代码,从 package.json 脚本和主要的 index.js 开始。

创建 Claude 建议的文件。通常包括:

touch index.js lib/weather-service.js lib/config.js lib/utils.js

添加 Claude 建议的 package.json 脚本:

{
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },
  "bin": {
    "weather-cli": "./index.js"
  }
}

设置你的 .env 文件:

echo "OPENWEATHER_API_KEY=your_api_key_here" > .env

从 OpenWeatherMap 获取免费 API 密钥并替换占位符。

Checkpoint

问 Claude:"能给我展示一个基础版本的 index.js,只需解析参数并打印它们?"

第 3 步:实现核心天气获取功能(25–40 分钟)

在 Claude 帮助下构建天气服务:

我们来实现天气服务。我需要一个函数:
- 接受城市名称
- 调用 OpenWeatherMap API
- 返回格式化的天气数据
- 处理 API 错误

显示完整的 weather-service.js 代码,包含错误处理。

实现 Claude 建议的代码。天气服务应该类似于:

// lib/weather-service.js
const axios = require('axios');
require('dotenv').config();

class WeatherService {
  constructor() {
    this.apiKey = process.env.OPENWEATHER_API_KEY;
    this.baseUrl = 'https://api.openweathermap.org/data/2.5/weather';
  }

  async getCurrentWeather(city) {
    // Claude 将提供实现
  }
}

module.exports = WeatherService;

测试你的 API 连接:

node -e "
const WeatherService = require('./lib/weather-service');
const ws = new WeatherService();
ws.getCurrentWeather('London').then(console.log);
"

请 Claude 帮助调试任何问题:

我遇到了[具体错误]。这是我的代码:[粘贴代码]
哪里出错了,如何修复?

第 4 步:添加优化和错误处理(40–55 分钟)

在 Claude 帮助下增强你的 CLI:

现在让我们把这个做成生产就绪的:
1. 用 chalk 添加彩色输出
2. 处理所有错误情况(无 API 密钥、无效城市、网络问题)
3. 添加帮助命令
4. 美观地格式化输出

显示更新后的 index.js,包含适当的错误处理和格式化。

实现 Claude 建议的错误处理:

// Claude 可能建议的错误处理示例
try {
  const weather = await weatherService.getCurrentWeather(city);
  console.log(formatWeatherOutput(weather));
} catch (error) {
  if (error.response?.status === 404) {
    console.error(chalk.red(`城市 "${city}" 未找到`));
  } else if (error.code === 'ENOTFOUND') {
    console.error(chalk.red('网络错误 - 请检查你的连接'));
  } else {
    console.error(chalk.red(`错误: ${error.message}`));
  }
  process.exit(1);
}

测试 Claude 建议的边界情况:

npm start "InvalidCityName123"
npm start ""
npm start "London,UK"

Checkpoint

问 Claude:"对于天气 CLI,我应该处理的 3 个最重要的错误情况是什么?"

第 5 步:发布上线(55–60 分钟)

让你的 CLI 可以全局安装:

npm link

测试全局命令:

weather-cli "Tokyo"
weather-cli "New York"

向 Claude 询问最终改进建议:

什么收尾工作能让这个 CLI 工具更专业?
我应该添加这些特性吗:
- 一次查询多个城市
- 不同的单位系统
- 基于天气状况的彩色输出
- 配置文件支持

实现 Claude 建议的一个快速增强功能。

🎉 你的天气 CLI 完成了!你已经成功地将 Claude 用作结对程序员,从零开始构建了一个真实的工具。

🎁 进阶挑战

  • 根据天气状况使用 Unicode 符号添加天气图标
  • --forecast 标志实现 5 天预报选项
  • 为默认城市和单位创建配置文件系统

📚 下一步学什么

1 小时上手 Cursor:构建你的第一个 AI 驱动项目
使用 Cursor 的代码生成功能,在 60 分钟内构建并部署一个完整的 AI 驱动 Web 应用
60 min

🔗 扩展资源