1. 引言:为何选择 Claude Code?
作为一名全栈开发者,我长期关注 AI 编程工具的发展。2026 年初,Claude Code 凭借其对上下文的深度理解与多语言支持能力迅速成为我的主力助手。为验证其在真实项目中的效能,我决定发起一项挑战:仅依赖 Claude Code,从零开发一个'每日天气提醒机器人',并通过本文记录全过程。
2. 项目目标与技术选型
- 功能需求:每日早上 8 点自动获取用户所在城市天气,并通过 Telegram 发送通知。
- 技术栈:Python(requests、python-telegram-bot、APScheduler)
- 部署环境:本地开发 + GitHub Actions 定时触发(简化版)
- 约束条件:不查阅 Stack Overflow,仅通过自然语言指令与 Claude Code 交互
3. Prompt 工程
初期尝试发现,模糊指令(如'写个天气机器人')会导致生成代码结构松散、缺少错误处理。经多次迭代,我总结出高效 Prompt 模板:
'请用 Python 编写一个脚本,使用 OpenWeatherMap API 获取指定城市的当前天气(温度、描述),并通过 Telegram Bot 发送给指定 chat_id。要求:使用 requests 库调用 API,使用 python-telegram-bot==20.7 发送消息,包含 API_KEY 和 BOT_TOKEN 的环境变量读取,添加 try-except 处理网络异常和 JSON 解析错误,代码结构清晰,包含 main() 函数'
此 Prompt 显著提升了生成代码的可用性。
4. 开发全流程实录
4.1 获取天气 API 并解析数据
Claude Code 生成如下核心逻辑:
import os
import requests
from dotenv import load_dotenv
load_dotenv()
def get_weather(city: str) -> dict:
api_key = os.getenv("OPENWEATHER_API_KEY")
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric"
try:
response = requests.get(url, timeout=10)
response.raise_for_status()
data = response.json()
return {
"city": data["name"],
"temp": data["main"]["temp"],
"description": data[][][]
}
Exception e:
()


