我让 AI 替我写了一个月代码,每周多出 8 小时(5 段代码,复制即用)

0 阅读10分钟

如果每周多出 8 小时,你会用来做什么?

我先说我的答案:打游戏、陪家人、搞副业。反正不是继续写那些写了 100 遍的样板代码。

一个月前,我做了个决定——把所有"不用动脑但必须有人做"的代码工作,全丢给 AI。不是让它写核心逻辑,是让它干那些你会写、但不想写的活。

一个月后,我每周省了 6-8 个小时

这篇文章就是我在用的 5 个真实场景,每个都附了代码。你复制下来,改个 API Key,马上就能跑。

不是标题党。往下看。


场景一:样板代码?我一个 struct 丢过去,40 行就出来了

你肯定经历过这个:每开一个新项目,router.gohandler.gomiddleware.go 这些文件写的永远是同一套东西。相似度 90%,但你不能直接复制——包名不一样、字段不一样、业务名不一样。

我以前的做法是:打开旧项目 → 复制 → 全局替换 → 改字段 → 调半小时。现在:

你只需要定义这个:

type User struct {
    ID       int    `json:"id"`
    Name     string `json:"name"`
    Email    string `json:"email"`
    Role     string `json:"role"`
    CreateAt string `json:"create_at"`
}

剩下的 40 行,AI 帮你写完:

package main

import (
    "encoding/json"
    "net/http"
    "strconv"
    "strings"
)

var users = []User{
    {ID: 1, Name: "张三", Email: "zhangsan@example.com", Role: "admin", CreateAt: "2026-01-15"},
}

func listUsers(w http.ResponseWriter, r *http.Request) {
    role := r.URL.Query().Get("role")
    var result []User
    for _, u := range users {
        if role == "" || u.Role == role {
            result = append(result, u)
        }
    }
    json.NewEncoder(w).Encode(result)
}

func createUser(w http.ResponseWriter, r *http.Request) {
    var u User
    json.NewDecoder(r.Body).Decode(&u)
    u.ID = len(users) + 1
    users = append(users, u)
    w.WriteHeader(http.StatusCreated)
    json.NewEncoder(w).Encode(u)
}

func main() {
    http.HandleFunc("/api/users", func(w http.ResponseWriter, r *http.Request) {
        switch r.Method {
        case "GET":
            listUsers(w, r)
        case "POST":
            createUser(w, r)
        }
    })
    http.ListenAndServe(":8080", nil)
}

你写了 6 行 struct,AI 写了 40 行 CRUD。路由注册、参数解析、错误处理、内存存储——这些你闭着眼都会写、但每次都要花 20 分钟的东西,现在 3 秒出来。

省了什么:不是省了打字的时间,是省了"切换上下文"的脑力。你不用从业务逻辑里跳出来,去想路由怎么注册、参数怎么解析。那些是肌肉记忆,但不是价值


场景二:写完代码不想写注释?丢给 AI,3 秒出 godoc

说实话,我特别讨厌写注释。

不是懒——是写代码和写注释用的大脑区域不一样。刚写完一段复杂的逻辑,脑子还在"计算机思维"里,突然要切换到"人类语言模式"去解释这段代码干了什么。这个切换本身就很累。

但注释又不能没有。半年后你自己回来看,没注释的代码跟别人写的没区别。

后来我养成了一个习惯:函数写完,Ctrl+A → 丢给 AI → 3 秒出注释 → 我确认一下描述准不准确 → 完事。

这是我项目里真实的一段代码,丢给 AI 之前一行注释都没有:

func collectCommits(cfg *Config, repos []string, since, until time.Time) ([]Commit, error) {
    var all []Commit
    for _, repo := range repos {
        for d := since; !d.After(until); d = d.AddDate(0, 0, 1) {
            commits, err := fetchCommits(cfg, repo, d.Format("2006-01-02"))
            if err != nil {
                log.Printf("获取 %s %s 失败: %v", repo, d.Format("2006-01-02"), err)
                continue
            }
            all = append(all, commits...)
        }
    }
    return all, nil
}

丢给 AI,3 秒后:

// collectCommits 从多个仓库中采集指定日期范围内的提交记录。
//
// 对每个仓库,按天遍历日期范围,逐天调用 API 拉取数据。
// 单天拉取失败时记录日志并继续,不中断整个采集流程。
//
// 参数:
//   - cfg: 配置,包含 CNB Token 等认证信息
//   - repos: 仓库列表,格式为 "org/repo"
//   - since: 采集起始日期(含)
//   - until: 采集截止日期(含)
//
// 返回:
//   - []Commit: 按时间排序的提交记录
//   - error: 仅在无法继续时返回
func collectCommits(cfg *Config, repos []string, since, until time.Time) ([]Commit, error) {

以前写注释我纠结的是"这个要不要写,那个写了会不会太啰嗦"。现在不纠结了——AI 先写一版,你只负责判断"对还是不对"。从创作变成了审校,难度降了一个数量级。


场景三:Code Review 没人做?让 AI 当第一道防线

我说句得罪人的话:大多数团队的 Code Review 形同虚设。

要么没人有时间认真看,要么看了也只看出"这行少了个空格"。真正有价值的逻辑审查——边界条件处理了吗、有空指针吗、SQL 注入了吗——很少有人能稳定地看出来。

我的方案:AI 审第一轮,人审第二轮。 AI 不会累、不会漏掉明显的坑、不会因为跟你是朋友就放水。

这是一段我故意埋了 3 个问题的代码:

func GetUserOrders(userID int, status string) ([]Order, error) {
    db, err := sql.Open("mysql", dsn)
    // 问题 1:db 没有 defer Close
    // 问题 2:SQL 拼接,注入风险
    query := "SELECT * FROM orders WHERE user_id = " + strconv.Itoa(userID)
    if status != "" {
        query += " AND status = '" + status + "'"
    }
    rows, err := db.Query(query)
    if err != nil {
        return nil, err
    }
    defer rows.Close()

    var orders []Order
    for rows.Next() {
        var o Order
        rows.Scan(&o.ID, &o.UserID, &o.Amount, &o.Status)
        // 问题 3:Scan 返回值没有检查 error
        orders = append(orders, o)
    }
    return orders, nil
}

丢给 AI,30 秒后:

发现 3 个问题:

🔴 高危:SQL 注入
  query 使用字符串拼接构建,status 参数未做任何过滤。
  建议:使用参数化查询 `WHERE user_id = ? AND status = ?`

🟡 中危:资源泄漏
  sql.Open 返回的 db 连接没有关闭。
  说明:sql.Open 创建的是连接池,应该在程序退出时调用 db.Close()

🟢 低危:错误忽略
  rows.Scan() 的返回值被忽略,扫描失败时不会感知。
  建议:检查 Scan 的 error 返回值

3 个问题全抓出来了。之前人工审查这段代码至少 10 分钟,还不一定能全看出来——尤其是 SQL 注入那个,嵌套在 if 里面,肉眼很容易跳过。

核心逻辑:不是让 AI 替代你审查,是让 AI 把明显的坑先扫一遍。你只需要关注 AI 标记出来的地方,以及 AI 看不出来的业务逻辑问题。10 分钟的活变成 2 分钟。


场景四:10 万行日志找问题?以前 2 小时,现在 5 分钟

做后端的最怕什么?产线出问题了,老板在群里 @你,你打开日志一看——10 万行。你不知道问题在哪,但你知道你必须在 30 分钟内找到。

传统做法:写脚本 → 正则提取 → awk 统计 → Excel 画图。一套下来 2 小时起步。等你找到问题,老板已经打了 3 个电话了。

AI 的做法:采样 → 丢给 AI → 读结果。

10 万行 Nginx 日志,我想知道 404 最多的接口是哪些:

func analyzeLogs(logFile string) {
    data, _ := os.ReadFile(logFile)
    lines := strings.Split(string(data), "\n")

    // 从 10 万行里随机抽 500 行
    samples := sample(lines, 500)
    prompt := fmt.Sprintf(`以下是 Nginx 访问日志片段。请统计:
1. 404 状态码最多的 3 个接口路径
2. 平均响应时间异常(> 1s)的接口
3. 有没有明显的爬虫流量
只基于以下数据回答,不要推测:

%s`, strings.Join(samples, "\n"))

    // 调用 DeepSeek
    result := callLLM(prompt)
    fmt.Println(result)
}

30 秒后:

1. 404 TOP 3:
   - /api/v1/users/avatar (127次) — 用户头像接口404,怀疑CDN配置问题
   - /wp-admin/admin-ajax.php (89次) — WordPress扫描流量
   - /api/v1/legacy/config (43次) — 旧版接口已下线但仍有客户端在调

2. 响应时间异常:
   - /api/v1/reports/generate 平均 3.2s — 报表生成接口需要优化

3. 爬虫流量:
   - 大量 /api/v1/articles 请求来自非浏览器UA,疑似爬虫

它不只是统计数字,还给了分析——"怀疑 CDN 配置问题"、"旧版接口已下线但仍有客户端在调"。这跟你看着数据自己推断的结论是同一类东西,但快了几十倍。

关键洞察:AI 做数据分析的优势不是"算得准",而是。你 2 小时也能得出同样的结论,但等你算完,黄花菜都凉了。


场景五:每周一早上的折磨?我让 Agent 全自动了

这是五个场景里最"狠"的一个——你还在睡觉,活已经干完了。

每周一早上写周报,打开 Git → 翻提交记录 → 回忆上周干了啥 → 拼成周报 → 发群里。每次 20-30 分钟,烦但不做不行的程度。

我写了一个 Agent,流程就三步:

每周一早上 7:00
  → 自动拉取 Git 提交记录
  → 丢给 DeepSeek 整理成周报
  → 推送到企业微信群
  → 你还没起床,周报已经在群里了

架构就三板斧:

┌──────────┐      ┌──────────┐      ┌──────────┐
│ 数据采集  │ ──→  │  AI 处理  │ ──→  │ 结果推送  │
│ Git API  │      │ DeepSeek │      │ 企微消息  │
└──────────┘      └──────────┘      └──────────┘

这就是我开源的 daily-report-agent。代码 400 行,一个周末写出来的。

这个模式才是真正的价值所在:

你想做的改哪里
监控告警分析数据源改成 Prometheus API
竞品动态追踪数据源改成爬虫
日报汇总数据源改成 Jira/TAPD
发布检查清单数据源改成 CI/CD 状态

变的只是第一步的数据源和最后一步的推送渠道,中间的 AI 处理逻辑是通用的。这是一个可以无限复用的模板。


说真话:AI 现在能做什么,不能做什么

我不是 AI 布道师,不卖课,不收徒。下面这些是我跑了一个月的真实结论:

能做的(2026 年 5 月实测)

任务类型省时比例一句话
样板代码生成70-90%改几行就能用,最稳的场景
注释/文档生成80%需要你确认准确性,但比自己写快 5 倍
代码审查第一轮50-70%能扫出常见坑,逻辑审查还是得你来
数据提取与分析80-90%数据量越小越准,采样是关键
定时自动工作流95%+流程固化场景最稳,基本上不用管

不能做的(别被卖课的把期望拉太高)

  • 替代你理解业务:AI 不知道你们产品为什么设计成这样,也没必要知道
  • 做架构决策:它能列出方案的优缺点,但不知道你的团队有几个人、下个月要上线
  • 100% 可靠:每次生成的结果都不一样,永远要验证
  • 跨系统调试:它能读代码,但不能 SSH 到你服务器上看日志

我的建议很简单

别想着"学 AI"。这个领域的教程已经多到让人焦虑了。

你就做一件事:找一个你每周都在做的机械性任务,试着用 AI 把它自动化掉。

不用是什么大项目。哪怕只是"每次写完函数自动补注释",也行。AI 给你省出来的第一个小时,就是你真正对它建立信心的时候。

我就是一个普通程序员,8 年经验。不是什么大神,也不是什么 AI 专家。这篇文章里的每一段代码,都是我自己跑过的。你复制下来就能用。

下一篇我会用 50 行 Go 代码,让你真正理解大语言模型是怎么工作的。不讲数学公式,不扯 Transformer 原理。一个能跑的程序,你改几个参数就能直观看到 Token、温度、上下文这三个概念的区别。

关注我,别错过。


🦞 一只用 AI Agent 搭副业产线的程序员

公众号:虾哥不加班 | B站:龙虾不加班 | 掘金:龙虾不加班

源码 & 工具:GitHub - lobster-bujiaban