Go 后端转 AI Agent,值不值?我查了一圈招聘要求
网上说 Go 后端转 AI Agent,动不动 40K、60K。
我第一反应不是激动,是怀疑。
这类说法太容易变成培训班招生,也容易被技术圈一句“套壳”打掉。我去翻了一圈公开招聘页,结论比这两种都别扭一点:
30K-60K 的样本确实存在, …
网上说 Go 后端转 AI Agent,动不动 40K、60K。
我第一反应不是激动,是怀疑。
这类说法太容易变成培训班招生,也容易被技术圈一句“套壳”打掉。我去翻了一圈公开招聘页,结论比这两种都别扭一点:
30K-60K 的样本确实存在, …
你在 Go 项目里接一个新的模型供应商。
文档写着“OpenAI compatible”。你心里一松:那不就是改三个值吗?
| |
pprof 抓回来了,最容易发生的事不是你看不懂。
而是你看懂了一半:知道一批 goroutine 卡在 main.worker,知道等待状态是 [chan receive],知道创建点也在栈里,可下一步还是开始全局搜 context、搜 …
线上 goroutine 数开始往上爬,很多人的第一反应是猜。
是不是 context 泄漏?是不是超时没生效?是不是某个 channel 没人读?是不是锁没释放?
这些猜法都可能对。
但问题在于,你现在还没有证据。你只有一个数字 …
上篇讲了 Go 为什么宁可让你多传一个 ctx 参数。
这篇往下走一步:既然 context 已经显式传进来了,为什么它自己没有 Cancel()?
这件事看起来很别扭。Context 明明能被取消,Done() 明明会关闭,Err() 明 …
你写一个接口,ctx 从 handler 传到 service,再传到 repo。
中间两层明明不关心超时,也不读取 trace id,却还是要把 ctx 原样递下去。
代码看起来像这样:
|
函数签名很干净,代码却越来越难查。
你打开一个 Go 函数,只看到一个 ctx context.Context。再往里翻,发现 user id 从 ctx.Value 里取,tenant 从 ctx.Value 里取,trace id 从 …
接口超时了,goroutine 曲线还在往上爬。
日志里已经打出 context deadline exceeded,调用方也早就不等了。你盯着监控看了十分钟,心里开始冒出那个判断:是不是 context.WithTimeout 没生效? …
线上 goroutine 数开始往上爬,最怕的不是它涨。
最怕的是你盯着监控看了十分钟,然后开始猜:是不是 context 泄漏了?是不是超时没生效?是不是某个 channel 卡住了?
这些猜法都有可能对,也都有可能错。 …
很多 Go 开发者第一次系统用 context,都会嫌它啰嗦。
一个请求从 handler 进来,service 要传 ctx,repo 要传 ctx,RPC client 要传 ctx,连中间那些根本不关心超时和取消的函数,也要机械地把 …
线上接口开始超时,goroutine 数一路往上涨。
你第一反应可能是:不是已经传了 context.WithTimeout 吗?超时到了,goroutine 不就该停了吗?
这就是 Go context 最容易被误用的地方。 …