AI 给你的最大底气,不是它能写多少代码,而是让你敢于尝试完全未知的领域。
🎯 事情的起因
作为一个 Java 后端开发者,Windows 客户端开发对我来说完全是个黑盒。
直到最近有个需求:
1
2
3
4
需要一个 Windows 客户端工具:
- 根据全局配置驱动行为
- 提供 CLI 命令供第三方调用
- 轻量、快速、易部署
传统思路:
- 找现成的工具凑合用
- 或者找个会 C#/.NET 的朋友帮忙
- 最保守:继续用 Java 写个 Swing/JavaFX(然后被 UI 丑哭)
- 找个外包?
- 回复:我不会?
AI Agent 时代的思路:
- 直接选一个最适合的技术栈
- 让 Claude Code 带我学
- 边做边学,踩坑就查
我根据Claude Code给我多个技术选型中,选了 Rust。
在此之前 Rust 语言对我而言是C语言级别的存在
🤔 为什么是 Rust?
| 考量维度 | Java | C#/.NET | Rust |
|---|---|---|---|
| 启动速度 | ⚠️ JVM 预热慢 | ✅ 较快 | ✅ 原生启动 |
| 打包体积 | ⚠️ 需要 JRE | ⚠️ 需要 .NET Runtime | ✅ 单 exe 文件 |
| CLI 友好度 | ⚠️ 一般 | ⚠️ 一般 | ✅ 原生支持 |
| 学习曲线 | ✅ 熟悉 | ⚠️ 未知 | 🔴 陡峭 |
| AI 支持度 | ✅ 好 | ✅ 好 | ✅ 很好 |
选择 Rust 的核心理由:
既然都是学新技术,不如学个最有价值的。
Rust 连续多年”最受喜爱的编程语言”,并且Claud Code告诉我这是最小体积、高效的选择
🏗️ 项目启动:从 0 开始的勇气
第一阶段:环境搭建
传统学习方式:
1
2
3
4
5
1. 去官网下载安装包
2. 看官方文档学基础语法
3. 跟着教程写 Hello World
4. 花一周理解所有权和借用
5. ...然后就没有然后了
AI Agent 学习方式:
1
2
3
4
5
1. 直接说需求:"创建 Rust Windows 项目"
2. Claude Code 自动安装 rustup
3. 自动创建项目结构
4. 边写代码边解释语法
5. 遇到问题直接问,立即得到解答
实际耗时: 30 分钟完成环境搭建 + Hello World
第二阶段:项目结构设计
需求驱动的配置结构:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nobt-client/
├── Cargo.toml # 项目配置
├── src/
│ ├── main.rs # 入口
│ ├── config/
│ │ ├── mod.rs # 配置模块
│ │ └── global.rs # 全局配置加载
│ ├── cli/
│ │ ├── mod.rs # CLI 模块
│ │ └── commands.rs # 命令处理
│ └── utils/
│ └── windows.rs # Windows 特定工具
├── config/
│ └── default.yaml # 默认配置
└── build.rs # 构建脚本(用于生成 exe)
这个结构怎么来的?
不是凭空设计的,是让 Claude Code 根据需求推荐的。
第三阶段:核心功能实现
1. 全局配置加载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use serde::{Deserialize, Serialize};
use std::fs;
#[derive(Debug, Deserialize, Serialize)]
pub struct GlobalConfig {
pub server_url: String,
pub api_key: String,
pub timeout_secs: u64,
pub log_level: String,
}
impl GlobalConfig {
pub fn load(path: &str) -> Result<Self, Box<dyn std::error::Error>> {
let content = fs::read_to_string(path)?;
let config: GlobalConfig = serde_yaml::from_str(&content)?;
Ok(config)
}
}
这段代码的学习过程:
- 问:”Rust 怎么读 YAML 配置?”
- Claude Code 推荐
serde+serde_yaml - 解释
derive(Deserialize)的作用 - 解释
Result<T, E>错误处理 - 代码写完,语法也学会了
2. CLI 命令处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(name = "nobt-client")]
#[command(about = "NOBT Windows 客户端工具")]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand)]
pub enum Commands {
/// 启动服务
Start,
/// 停止服务
Stop,
/// 查看状态
Status,
/// 执行任务
Run { task_id: String },
}
clap 库的选择:
- Rust 生态最成熟的 CLI 框架
- 宏驱动,代码简洁
- 自动生成
--help
AI 的价值:
- 直接告诉你”用 clap”
- 生成完整示例代码
- 解释每个注解的作用
- 省去数小时的文档阅读时间
3. Windows exe 打包
这是最大的坑之一。
Rust 默认编译出来的是 .exe 没错,但:
- 没有图标
- 没有版本信息
- 没有数字签名
- 可能被 Windows Defender 报毒
解决方案:
1
2
3
4
5
6
7
8
9
10
# Cargo.toml
[profile.release]
opt-level = "z" # 优化体积
lto = true # 链接时优化
codegen-units = 1 # 增加优化时间
[package.metadata.winres]
LegalCopyright = "Copyright © 2026 nobt854"
FileDescription = "NOBT Client"
ProductName = "NOBT Client"
1
2
3
4
5
6
7
8
// build.rs
fn main() {
if cfg!(target_os = "windows") {
let mut res = winres::WindowsResource::new();
res.set_icon("assets/icon.ico");
res.compile().unwrap();
}
}
这个过程谁教我的? Claude Code。
如果我自己摸索? 可能要在 Stack Overflow 泡三天。
📊 实际效果对比
| 指标 | 传统学习方式 | AI Agent 学习方式 |
|---|---|---|
| 环境搭建 | 2-3 小时 | 30 分钟 |
| 第一个可运行程序 | 1-2 天 | 2 小时 |
| 配置功能完成 | 3-5 天 | 1 天 |
| CLI 功能完成 | 5-7 天 | 2 天 |
| 打包发布 | 1-2 周 | 3 天 |
| 总体时间 | 2-3 周 | 约 1 周 |
效率提升:3-4 倍
但这不是重点。
重点是:如果没有 AI,我可能根本不会开始。
🔍 核心洞察
洞察 1:AI 降低了”试错成本”
传统学习新技术的成本:
1
买书/买课 → 看基础语法 → 写 Demo → 遇到问题 → 查文档 → 卡住 → 放弃
AI Agent 时代的学习成本:
1
说需求 → AI 生成代码 → 运行 → 遇到问题 → 问 AI → 立即解决 → 继续
最大的区别: 前者容易放弃,后者能持续获得正反馈。
洞察 2:AI 不是替代你学,是让你学得更快
有一种观点:“用 AI 写代码,自己学不到东西。”
我的体验:恰恰相反。
| 场景 | 纯手写 | 用 AI |
|---|---|---|
| 遇到语法错误 | 查文档 30 分钟 | AI 解释 30 秒 |
| 不知道用哪个库 | Google 1 小时 | AI 直接推荐 |
| 理解概念 | 看视频教程 2 小时 | AI 举例说明 5 分钟 |
| 调试 Bug | 打印日志猜原因 | AI 分析 + 修复建议 |
AI 省去的不是学习时间,是无效摸索时间。
洞察 3:纸上谈兵的时代结束了
AI 之前的”学习路径”:
1
2
3
4
1. 先学基础语法
2. 再看面向对象
3. 然后学设计模式
4. 最后才能做项目
AI 时代的”学习路径”:
1
2
3
4
1. 有个想法/需求
2. 直接开始做
3. 遇到问题问 AI
4. 做完项目,技能也学会了
最好的学习,不是准备好了再开始,而是开始了自然就准备好了。
🛠️ 给实践者的建议
如果你想尝试新技术
传统建议:
- 先系统学习基础
- 买本好书慢慢啃
- 找个培训班
AI 时代的建议:
- 直接开始做项目:有需求驱动,学得最快
- 让 AI 当私人教练:遇到任何问题立即问
- 小步快跑:每个功能点都快速验证
- 不要怕犯错:AI 会帮你快速修复
如何克服”未知恐惧”
恐惧的来源:
- 不知道从哪开始
- 不知道会遇到什么坑
- 不知道能不能学会
AI 的解法:
| 恐惧 | AI 解法 |
|---|---|
| 不知道从哪开始 | AI 直接给出第一步 |
| 不知道会遇到什么坑 | AI 提前预警常见问题 |
| 不知道能不能学会 | AI 随时解答疑问 |
最大的底气: 你知道无论如何,都有个随叫随到的专家帮你。
选择技术栈的原则
我的经验:
| 原则 | 说明 |
|---|---|
| 选生态成熟的 | Rust 有 cargo、crates.io、clap |
| 选 AI 支持好的 | 训练数据多,回答质量高 |
| 选长期有价值的 | 不是昙花一现的框架 |
| 选适合自己成长的 | 稍微跳一跳够得着的难度 |
Rust 完美符合这四个原则。
📈 项目当前状态
已完成:
- ✅ 全局配置加载(YAML 格式)
- ✅ CLI 命令框架(clap)
- ✅ Windows exe 打包(带图标)
- ✅ 基础错误处理
进行中:
- ⚠️ 第三方调用 API 实现
- ⚠️ 服务常驻后台功能
- ⚠️ 日志系统集成
下一步:
- 性能优化
- 数字签名
- 安装包制作
🌅 尾声
AI Agent 时代,最大的风险不是”尝试了失败”,而是”因为害怕而不敢尝试”。
纸上谈兵一万次,不如真正动手做一次。
Rust 的所有权和借用,我刚接触时也觉得很反人类。
但当第一个可运行的 exe 出现在我面前时,那种成就感是无可替代的。
因为我知道:
- 这不是抄的,是一行一行写出来的
- 这不是别人教的,是边做边学学会的
- 这不是碰巧跑通的,是理解了原理的
AI 给我的不是代码,是尝试的勇气。
而你,准备好尝试什么了?
也许是一门新技术,也许是一个新项目,也许是一次职业转型。
不管是什么,开始吧。
因为最好的学习时间,永远是现在。