TwiScan
热门
社区
登录
注册
English
日本語
한국의
简体中文
繁体中文
注册并分享邀请链接,可获得视频播放与邀请奖励。
立即注册
jolestar
@jolestar
BlockChain Maximalism | Building uxc | webmcp-bridge | x402x |
@RoochNetwork
| Move |
加入 February 2008
2.7K
正在关注
17.3K
粉丝
jolestar
@jolestar
2026.04.27 14:54
AI Coding 时代,好的编程习惯仍然重要 最近做一个 Agent benchmark,发现不能简单地用开发者视角来评估一个编程任务对 AI 的复杂度。 比如一个重构任务:把一个几千行的大文件,按功能拆成十多个小模块。 这个任务对开发者来说其实不算难,主要工作就是移动代码、整理 imports、编译验证,新手也能搞定。 所以想着用一个简单的任务来做一下 benchmark,结果却出乎意料。 Claude Code 判断这个任务比较大,尝试拆了一部分,提了个 PR 写了 Future work 打算分步来。 我自己的 Agent 是“硬上”,往完整拆分的方向推进了更多,但代价也很明显:Token 消耗是 Claude 的几十倍,后面大量时间都花在反复读文件、修编译错误、再读文件、再修错误上。 这让我意识到,人觉得简单的任务,对 Agent 不一定简单。 对人来说,这类重构很多时候就是“把这一段挪过去”。但对 Agent 来说,它要先分批读大文件,记住哪些函数和哪些测试有关,再生成一堆跨文件修改,最后通过编译错误一点点补洞。看起来像机械活,实际变成了一个高 Token、高状态管理成本的任务。 前一段时间看到有人说,AI Coding 时代,拆分模块这些编程原则没那么重要了,反正人也不看代码。现在看,我不太同意。模块边界清楚、文件粒度合适、依赖关系简单,不只是方便人读,也是在帮 Agent 降低任务复杂度。 从另一个角度看,现在 Agent 的读文件和改文件工具,对这种重构也不太顺手。 Coding Agent 改文件,主要还是文本替换。比如 Claude Code 常见的是 old_string / new_string 模式:先给出一段旧文本,再替换成新文本。Codex 常用的是 apply_patch:生成一个类似 git diff 的 patch,表达把旧的内容替换成新的。它们都适合小范围修改,但如果要删除一大段旧代码,或者把一批函数挪到别的文件,模型往往还是要先把原始内容读进上下文,再生成一大段替换或 diff。 所以我后来给 Agent 一个提示,让它先用脚本、sed、perl 这类工具把大文件粗拆开,直接把旧内容删掉,写到新文件中,然后再逐个慢慢修,它的完成度确实高了许多。Agent 默认不会这样做,主要是因为系统提示词里会强烈要求 Agent 用内置工具修改文件,而不是命令行工具。 再往前想一步,Coding Agent 可能还需要更高级的编辑工具。不是只给它一个“替换文本”的接口,而是先通过 parser、LSP 或 compiler 建立代码结构,让 Agent 可以像 IDE 一样做重构:移动函数,删除 impl block,整理 imports。不知道是否有朋友做这方面的尝试。 总的来说,即便是 AI Coding 时代,好的编程习惯还是有价值的。尽量在早期通过 harness engineering,把好的编程习惯变成 Agent 的默认工作方式,比后来再重构的成本要小很多。
显示更多
0
0
13
49
9
转发到社区
热门用户
狗爹和小桃(主页完整)
@cccxxxyyiii
33.6K 粉丝
sunny
@77sunnyx
844.9K 粉丝
一劍浣春秋
@chee828
228.9K 粉丝
乐老爺AV選
@HappyLok1157
101.5K 粉丝
Aqua水淼
@aqua_cosplay
1.9M 粉丝
币圈百科
@forevergalxy
11.8K 粉丝
李老师不是你老师
@whyyoutouzhele
2.2M 粉丝
小远ovo
@Abdlhamid25837
49.4K 粉丝
彭博商業周刊 / 中文版
@BloombergBWCN
40.8K 粉丝
rioko凉凉子♡C106 8/17(日)西え47ab
@rioko041120
1.8M 粉丝
qinbafrank
@qinbafrank
121K 粉丝
小牛
@Xiaoniu6161
165.7K 粉丝
FortuneCutie饼干姐姐
@FortuneCutie00
1.1M 粉丝
Ai 姨
@ai_9684xtpa
131.6K 粉丝
财经数据库
@caijingshujuku
368.3K 粉丝