用 Ollama + Continue 搭建本地代码审查助手
为什么需要本地代码审查
传统代码审查(Code Review)依赖人工逐行检查,耗时久、标准不统一。而托管的 AI 审查服务(如 GitHub Copilot、CodeRabbit)虽然强大,却存在两个痛点:
传统代码审查(Code Review)依赖人工逐行检查,耗时久、标准不统一。而托管的 AI 审查服务(如 GitHub Copilot、CodeRabbit)虽然强大,却存在两个痛点:
Go 1.22 之前,标准库 net/http 的路由能力非常基础——不支持方法匹配(GET POST),不支持路径参数(/users/{id})。社区因此催生了 gin、chi、echo 等第三方路由库。
Swift 5.5 引入了 async/await 和 Actor,但那时检查是"选择加入"的——编译器不会强制你遵守线程安全规则。到了 Swift 6,严格并发检查(Strict Concurrency Checking)默认全开。这意味着过去能编译的代码,现在可能直接报红。
如果你写过 SwiftUI 应用,大概率遇到过这种场景:App 跑起来后点几下按钮,界面突然卡住不动,或者控制台冒出一堆 Main Thread Checker 警告,甚至直接崩溃。常见的错误信息是:
本周 GitHub 共收录 39 个热门项目,涵盖全站热榜、Python、Swift、AI/ML 和新星项目。AI Agent 生态持续爆发,coding agent 工具链已形成完整闭环。
Go 的并发编程有两套武器库:一套是 CSP 模型的 goroutine + channel,另一套是标准库 sync 包提供的底层原语。大多数教程把焦点放在 channel 上,但真正到生产环境里,sync.Pool、sync.Once 和 sync.Cond 这三个原语用得反而不少——它们各自解决 channel 不擅长的问题。本文用实际代码逐一拆解。
你的订单服务调用支付服务,某天支付服务突然变慢——从50ms飙到5秒。你的订单服务每个请求都在等5秒,线程池迅速耗尽,整个服务雪崩。最后,一个下游服务的慢响应,把你整个系统拖垮了。
后端开发中经常遇到这类需求:判断一个元素是否在集合中存在。当数据量小的时候,一个 map 或 Set 就够了。但当数据量到亿级——比如邮箱是否已注册、URL 是否已爬取、手机号是否在黑名单——内存就吃不消了。

凌晨十一点半,改完最后一个bug,合上电脑。
手机弹了一条消息,前同事发了条朋友圈:「裸辞了,去大理gap一个月。」
我点了个赞,然后躺床上翻来覆去睡不着。
Phil Karlton(Netscape 首席工程师)有一句名言:
计算机科学只有两件难事:缓存失效和命名。
缓存失效的难度你大概有体会——但命名?不就是给变量起个名字吗?