转寄人: ZabraZoe (ZabraZoe)
标 题: 你们还在乎 AI 生成的代码的可阅读性吗?
发信站: 水木社区 (Thu Jul 2 08:44:31 2026)
来 源: 120.245.107.123
【以下内容由 ZabraZoe 转寄于 Programming 版】
标 题: 你们还在乎 AI 生成的代码的可阅读性吗?
发信站: 水木社区 (Thu Jul 2 08:44:31 2026)
来 源: 120.245.107.123
【以下内容由 ZabraZoe 转寄于 Programming 版】
最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
同理,我们还需要在乎 AI 生成的代码是人类可阅读的吗?
没有规范,AI就可能会瞎搞;而有规范的话,顺带给AI加上代码可读性的规范提示词是举手之劳
所以,不要求白不要求啊。一定要加上可读性的设定,不管是在编码规范里,还是在code review规范里。
垃圾代码少点,AI读起来也容易吧
毕竟上下文不是无限长的
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
汇编出来了,人们不看0101了。高级语言出来,人们也不看汇编了。vibe coding后,看
代码也会成为历史吧。或许以后直接vibe 010101了
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
vibe 010101,是外行话,哈哈
AI要靠高级语言的语义,还要编译器的保护。一个项目纯粹用010101对AI来说也是绝对的天坑
【 在 Peleus 的大作中提到: 】
: 汇编出来了,人们不看0101了。高级语言出来,人们也不看汇编了。vibe coding后,看
: 代码也会成为历史吧。或许以后直接vibe 010101了
现在 肯定需要, 编译器翻译几乎是无损的
AI 生成的 可不是,连 可重复性都 没有,无损 更是没有
【 在 hgoldfish 的大作中提到: 】
: 标 题: 你们还在乎 AI 生成的代码的可阅读性吗?
: 发信站: 水木社区 (Fri Jun 26 15:26:51 2026), 站内
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
: 同理,我们还需要在乎 AI 生成的代码是人类可阅读的吗?
: 灭绝人性啊
: ※ 修改:·hgoldfish 于 Jun 26 15:39:32 2026 修改本文·[FROM: 110.87.26.*]
: ※ 来源:·水木社区 mysmth.net·[FROM: 110.87.26.*]
编译器生成的汇编代码人类可以信任,目前AI生成的代码不能完全信任吧,两者不可类比
ai生成的代码我看可读性挺好的
而且吧,还可以解决传统编码时代代码和注释经常不匹配的问题
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
你要是不在给AI的规范里写明“注释和代码保证配套更新”、“代码里的关键决策、复杂决策要注释”,它一样会漏加注释、改代码时不改注释
【 在 hover 的大作中提到: 】
: ai生成的代码我看可读性挺好的
: 而且吧,还可以解决传统编码时代代码和注释经常不匹配的问题
你是team leader,在古法编程时代,
1. 你会逐条阅读你手下的人的代码吗?
2. 你会严格要求你手下的人遵循软件工程的每一条守则吗?
3. 文档严格同步吗?
4. 接口设计规范吗?考虑到扩展性了吗?
5. 手下会轻松理解你的结构设计的意图吗?
6. 你的结构设计细节真的就无懈可击吗?
7. 已经是屎山代码了,敢不敢大规模重构?
8. 你的手下的编程能力真的很高吗?
9. 与你的手下的速度与工资相比,AI的代码速度与token花费哪个更划算?
10.当每天产出1万行代码的时候,你真的认为你能看得过来吗?
11.同样是1万行代码,AI有几个bug,改多久?你手下写的有几个bug,改多久?
12.同样是1万行代码,AI写的可读性,你手下写的可读性,哪个更高?
13.放弃AI写的10万行代码,和放弃手下写的10万行代码,你觉得哪个决定更容易?
14.你愤怒于AI的频率高,还是愤怒于手下的频率高?对后者你敢骂脏话吗?
15.你觉得提高一个笨蛋的水平更容易,还是向一个比自己厉害的人请教更容易?
综上所述,你该如何选择?
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
1. 前几年出过一个木马,就是污染了编译器,让编译器每次编译必然产生一个木马。所以编译器生成的代码真的可以信任?
2. 现在AI生成的代码已经比99%的人类靠谱了,而且还在飞速发展。
【 在 ooolinux 的大作中提到: 】
: 编译器生成的汇编代码人类可以信任,目前AI生成的代码不能完全信任吧,两者不可类比
不在乎,本来也看不懂。
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
99%的人类还是99%的码农?99%的人类不会编程
【 在 yuanmo 的大作中提到: 】
: 1. 前几年出过一个木马,就是污染了编译器,让编译器每次编译必然产生一个木马。所以编译器生成的代码真的可以信任?
: 2. 现在AI生成的代码已经比99%的人类靠谱了,而且还在飞速发展。
现在ai自动debug能力还不太行吧,和debugger结合(我看让ai能使用debugger的vscode插件mcp server 还没几个人用),然后结合平台/数据的之类的来debug。那需要人来兜底debug的话,代码的可阅读性还是重要的。
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是
你们应该是公司吧?AI生成的代码量大吗?AI每次生成的代码都会放到代码库里边做版本管理,然后每一个版本都会review吗?我感觉做不到吧,代码量太大了。
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
主要是关键业务代码可阅读可理解就行。人类不能维护过长的代码。一般也就是1万行。所以弄清楚关键逻辑就行了。我一般让codex写代码,claude审查。审查报告由第三方评估。第三方以前是Gemini,后来是人了
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
+1
【 在 DreamDreams 的大作中提到: 】
: 现在 肯定需要, 编译器翻译几乎是无损的
: AI 生成的 可不是,连 可重复性都 没有,无损 更是没有
洋洋洒洒不知所云。
你这15条真的有逻辑递进吗?能回答楼主的问题吗
【 在 yuanmo 的大作中提到: 】
: 你是team leader,在古法编程时代,
: 1. 你会逐条阅读你手下的人的代码吗?
: 2. 你会严格要求你手下的人遵循软件工程的每一条守则吗?
可读性是可维护性,可维护性是责任与约束,也是支撑。
1 最终落到某个人身上时,他得负责。可读性为这个人能负责提供尽可能多前提。
2 目前AI需要人来驱动,岗位分工需要人来负责。
基于以上,
1 传统的可读性定义就要发生变化。可读性是“有利于、可支持人驱动AI”。
2 基于AI窗口尺寸,定义“模块”尺寸。模块的 fan-out,加起来的尺寸,在这个窗口尺寸内即可。
方向:
1 绝对不要加任何注释。代码已经是“代”意图+机器指令的码了,再加注释是“代代”码了。对AI是障碍。
人需要了解时,一个“模块”丢给AI总结即可。
2 不需要拆分函数,一个文件 8000行(假设加依赖,仍在AI的上下文窗口内),完成一个功能即可。single-page-app 思路。
3 建立更多更粗粒度接口(上面的模块),配套更多测试,发展多样化测试(UI暂时不行)。解决AI输出不可重复的问题。不像编译器。
感觉能做到的就是1。先行动起来。哈哈哈。2,3对AI都够呛。
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
1 能稳定生成木马,就是编译器与AI的区别。确定性与概率性。
2 是的。生成的代码,到可用、可维护的软件,需要新的软件工程方法。这正是楼主的问题。
【 在 yuanmo 的大作中提到: 】
: 1. 前几年出过一个木马,就是污染了编译器,让编译器每次编译必然产生一个木马。所以编译器生成的代码真的可以信任?
: 2. 现在AI生成的代码已经比99%的人类靠谱了,而且还在飞速发展。
不能读很快变屎山
要不断重构
Rust的无畏重构优势明显
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
如果你不知道我在说啥,那就说明这些问题不在你的价值体系内,仅此而已。
而恰恰我提的问题都是价值判断,不同位置的人有不同判断,很正常。
【 在 DoorWay 的大作中提到: 】
: 洋洋洒洒不知所云。
: 你这15条真的有逻辑递进吗?能回答楼主的问题吗
可读性比人写的强
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
目前99%的人类程序员都比不上此时的顶级AI。
我相信不出几年,甚至几个月,这个数字会变成100%。
【 在 ooolinux 的大作中提到: 】
: 99%的人类还是99%的码农?99%的人类不会编程
如果你不知道我在置疑啥,说明你的价值体系比技术和逻辑优秀的多,而且不止如此。
而恰恰回答楼主的问题,优先需要技术与逻辑,价值才能被支撑。编程技术版。不是编程价值版。
另外,中文里“不知所云”出现时,不是说话的人不懂,而是用于指对面说的没意义,没道理,或者跑题了、放空炮、没结论、故作高深。搭配洋洋洒洒,一般是后者。
【 在 yuanmo 的大作中提到: 】
: 如果你不知道我在说啥,那就说明这些问题不在你的价值体系内,仅此而已。
: 而恰恰我提的问题都是价值判断,不同位置的人有不同判断,很正常。
ai时代第一抛弃注释,需要时让ai总结,这个想法怎么样
损失token,换来不误导ai。 有收益。
【 在 z16166 的大作中提到: 】
: 你要是不在给AI的规范里写明“注释和代码保证配套更新”、“代码里的关键决策、复杂决策要注释”,它一样会漏加注释、改代码时不改注释
要让同一个AI的不同轮次、不同AI的轮次之间保持强一致性,最好(其实是必须)有文档。
但是文档不太可能像注释那么细。
所以,感觉是:
1、文档是粗线条的。即使是详细设计文档,有些地方可能也覆盖不到。除非文档能细到函数级,但那样维护可能也是个负担,要保持文档和代码的一致性。
2、注释是某些具体位置的,文档可能没cover住的,或者要强调和文档的一致性的。
如果在编码规范或者代码审核规范里加一条“适时更新注释以保持注释和代码的一致性”,并让AI逐条审核的话,它会检查变动的代码所对应的注释是否也更新了。
【 在 DoorWay 的大作中提到: 】
: ai时代第一抛弃注释,需要时让ai总结,这个想法怎么样
: 损失token,换来不误导ai。 有收益。
想了一下 ai还一个好处 不会懒于写log(which在查bug的时候很有用)
人类总是懒得写log(可能规范比较好的团队log比较全吧
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
一个AI审查是不够的,每个AI能从不同的角度发现其他AI没发现的问题。
我现在是四个AI左右,搞三轮审核,改一轮再审核一轮。即便是这样,它们的审核结果还是和提示词有关。
还有,即使全都审核过了,我一跑用例,就有问题。这本来就是动静结合的问题。
当然,我现在有白嫖一些AI,不是用“顶级"的AI
再顶级的AI,也存在同样的问题,只是问题数目可能少不少,但并不是少到0了。
【 在 semipunk 的大作中提到: 】
: 主要是关键业务代码可阅读可理解就行。人类不能维护过长的代码。一般也就是1万行。所以弄清楚关键逻辑就行了。我一般让codex写代码,claude审查。审查报告由第三方评估。第三方以前是Gemini,后来是人了
AI写的代码来自哪里,人类程序员?
AI能独立写个操作系统、写个办公软件、写个浏览器吗?能写个人类没有现成的软件吗?
【 在 yuanmo 的大作中提到: 】
: 目前99%的人类程序员都比不上此时的顶级AI。
: 我相信不出几年,甚至几个月,这个数字会变成100%。
搞个codex,装个superpowers插件,让它写个很难的项目,大部分疑虑自然就没了。
现在绝大部分折腾和质疑的来源就是没用顶级AI。
【 在 z16166 的大作中提到: 】
: 一个AI审查是不够的,每个AI能从不同的角度发现其他AI没发现的问题。
: 我现在是四个AI左右,搞三轮审核,改一轮再审核一轮。即便是这样,它们的审核结果还是和提示词有关。
: 当然,我现在有白嫖一些AI,不是用“顶级"的AI
不用过于夸大顶级AI的作用
codex和superpowers我都有用,不过可能用得不好
【 在 yuanmo 的大作中提到: 】
: 搞个codex,装个superpowers插件,让它写个很难的项目,大部分疑虑自然就没了。
: 现在绝大部分折腾和质疑的来源就是没用顶级AI。
能啊,太能了。只要你给他指定一条合理的路径,它就能给你写出来。
【 在 ooolinux 的大作中提到: 】
: AI写的代码来自哪里,人类程序员?
: AI能独立写个操作系统、写个办公软件、写个浏览器吗?能写个人类没有现成的软件吗?
问题就在于怎么算“合理”,普通码农、资深码农怎么才能给出“合理的路径”
【 在 yuanmo 的大作中提到: 】
: 能啊,太能了。只要你给他指定一条合理的路径,它就能给你写出来。
每个模块、每个函数都要人类教它、定义好功能是吧?
【 在 yuanmo 的大作中提到: 】
: 能啊,太能了。只要你给他指定一条合理的路径,它就能给你写出来。
人也不可能0错误。不然微软谷歌不可能一个补丁接着一个补丁的发布。只要同样的错误率有更高的效率或者同样的效率下有更低的错误率AI就是有意义的
【 在 z16166 (Netguy) 的大作中提到: 】
: 一个AI审查是不够的,每个AI能从不同的角度发现其他AI没发现的问题。
: 我现在是四个AI左右,搞三轮审核,改一轮再审核一轮。即便是这样,它们的审核结果还是和提示词有关。
: 还有,即使全都审核过了,我一跑用例,就有问题。这本来就是动静结合的问题。
现在说的就是怎么通过制定框架或者流程规范降低AI犯错的几率
顶级AI也需要这种框架或者流程规范
【 在 semipunk 的大作中提到: 】
: 人也不可能0错误。不然微软谷歌不可能一个补丁接着一个补丁的发布。只要同样的错误率有更高的效率或者同样的效率下有更低的错误率AI就是有意义的
我本来认为,从语义角度讲,注释是冗余信息,代码包含所有必要的知识。多轮次之间,注释更有害,对AI来说。因为一旦注释和代码不一致,就会浪费宝贵的推理空间。一旦推错了,迅速飘移。
但是如果代码不符合预期,或者要讲代码的意图/由来,设计抉择等,而不是实现,还是要注释。
这个注释是元信息。contract或者别的,需要一种规范化的描述。
除了这种,大部分现在的注释不需要。比如经典的函数头注释,解释参数的。
【 在 z16166 的大作中提到: 】
: 要让同一个AI的不同轮次、不同AI的轮次之间保持强一致性,最好(其实是必须)有文档。
: 但是文档不太可能像注释那么细。
: 所以,感觉是:
很难的项目,试举一例,举出来你就明白了,为什么大家怀疑和质疑AI
【 在 yuanmo 的大作中提到: 】
: 搞个codex,装个superpowers插件,让它写个很难的项目,大部分疑虑自然就没了。
: 现在绝大部分折腾和质疑的来源就是没用顶级AI。
悖论:当你说的足够详细能够约束Ai不犯错时,你已经把代码写出来了。
【 在 z16166 的大作中提到: 】
: 现在说的就是怎么通过制定框架或者流程规范降低AI犯错的几率
: 顶级AI也需要这种框架或者流程规范
AI极大地提高了生产力,同时也极大地拉开了普通码农和资深码农的距离,还达不到让普通码农变成大神的地步。
怎么算“合理”,这是工程开发经验积累的直觉问题。非要说得清楚一些,标准软件工程怎么干的,那就是合理的。偶然碰见AI钻牛角尖的情况,你得看清楚他的思维过程,意识到他被误导了,并把他拉出来。
不过以我个人的经验,首要的问题是你怎么看AI。你怎么看他,他就怎么给你结果。
你把它当打杂的,可能还会嫌弃这个嫌弃那个。你把他当可以信任的伙伴,让他参与决策,他就能给你无数高价值策略。你把他看成编程之神向他许愿,他也能满足你的愿望,你许的愿越具体,就越合心意。
【 在 z16166 的大作中提到: 】
: 问题就在于怎么算“合理”,普通码农、资深码农怎么才能给出“合理的路径”
设计决策按说是应该在设计文档里说清楚的
不过很多时候,有可能没做那么细的设计,而只是给AI下达了一份粗线条的提示词,然后有些细节AI就自己做主了。
就得把细化往前提,让AI把设计搞细,人加上几个AI轮番审核plan和design。
【 在 DoorWay 的大作中提到: 】
: 我本来认为,从语义角度讲,注释是冗余信息,代码包含所有必要的知识。多轮次之间,注释更有害,对AI来说。因为一旦注释和代码不一致,就会浪费宝贵的推理空间。一旦推错了,迅速飘移。
: 但是如果代码不符合预期,或者要讲代码的意图/由来,设计抉择等,而不是实现,还是要注释。
: 这个注释是元信息。contract或者别的,需要一种规范化的描述。
你认真用一下就不会这么说了。
【 在 ooolinux 的大作中提到: 】
: 每个模块、每个函数都要人类教它、定义好功能是吧?
我考虑的是如何充分利用AI带来的10倍-100倍的效率提升,这是已经发生的事情。在我的需求范围内,还没碰到AI搞不定的事情。或者严格地说,如果AI搞不定,那我也无法在有限代价内搞定。
至于有人质疑AI与否,我实在没兴趣说服他们。好东西自己用着爽自己偷着乐就行了,我提醒大家有个好东西,人还不高兴。
【 在 DoorWay 的大作中提到: 】
: 很难的项目,试举一例,举出来你就明白了,为什么大家怀疑和质疑AI
1 你举不出来
2 我写ts效率提升1000倍,10000倍,甚至无穷∞倍。已经写了半个产品,几个小玩意儿了。有毛用。因为我原来不会写。
3 你以为的就是你以为的。包括AI和编译器类似。
【 在 yuanmo 的大作中提到: 】
: 我考虑的是如何充分利用AI带来的10倍-100倍的效率提升,这是已经发生的事情。在我的需求范围内,还没碰到AI搞不定的事情。或者严格地说,如果AI搞不定,那我也无法在有限代价内搞定。
: 至于有人质疑AI与否,我实在没兴趣说服他们。好东西自己用着爽自己偷着乐就行了,我提醒大家有个好东西,人还不高兴。
大家都在用啊,都提升了效率
claude家、codex家的模型加上它们自己家的客户端写的代码,一样有bug要定位分析
不是不高兴,而是觉得过于神话“顶级AI”也不好
【 在 yuanmo 的大作中提到: 】
: 我考虑的是如何充分利用AI带来的10倍-100倍的效率提升,这是已经发生的事情。在我的需求范围内,还没碰到AI搞不定的事情。或者严格地说,如果AI搞不定,那我也无法在有限代价内搞定。
: 至于有人质疑AI与否,我实在没兴趣说服他们。好东西自己用着爽自己偷着乐就行了,我提醒大家有个好东西,人还不高兴。
那就不需要注释。完全不需要,如果是和代码同层次的注释,解释做了什么的这种。
我说的设计抉择,指代码实现明显不符合惯例,不符合常规优化的标准。因为特殊的背景、业务在,比如客户定制,比如领导言出法随,比如为了兼容旧系统。AI会做的更聪明,但不符合需求。这些都是编程甚至技术之外的事。
设计文档,另外一个话题。我还没想好。
【 在 z16166 的大作中提到: 】
: 设计决策按说是应该在设计文档里说清楚的
: 不过很多时候,有可能没做那么细的设计,而只是给AI下达了一份粗线条的提示词,然后有些细节AI就自己做主了。
: 就得把细化往前提,让AI把设计搞细,人加上几个AI轮番审核plan和design。
拿AI跟人比,已经比人厉害了,大趋势就是顺应AI就行了。这是我的核心观点。
至于AI是不是还有提升空间,那当然还很大,再提升1万倍也不为过。同样是神,土地爷和孙悟空的差别也很大。
然后,我们向神祈愿的姿势(prompt/harness)也可以有很大影响,这块领域有一点玄学,并且进化得也很快。其实社区里不断会出现一些新鲜skill和插件,挑口碑好的试一试,结合自己的情况评估一下,也就差不多了。自己折腾的速度比不上本身范式的进化速度。
我自己也没精力搞太多奇怪的操作,就用默认配置,哪怕就最高级别的产出而言,AI的产出速度都已经超过我的验收速度了。最终这个循环的瓶颈不是AI,是人。
【 在 z16166 的大作中提到: 】
: 大家都在用啊,都提升了效率
: claude家、codex家的模型加上它们自己家的客户端写的代码,一样有bug要定位分析
: 不是不高兴,而是觉得过于神话“顶级AI”也不好
1. 我确实举不出人能写出来的代码,而AI写不出来的例子。你要是有,你可以举例啊。
2. 原本不会写的人能写了,原本会写的人提高了10倍的效率,大家都很高兴。谁在不高兴呢?我很奇怪,这超出了我的理解范围。
3. 我以为的当然就是我以为的,我说我以为的,你说你以为的,有啥问题吗?
【 在 DoorWay 的大作中提到: 】
: 1 你举不出来
: 2 我写ts效率提升1000倍,10000倍,甚至无穷∞倍。已经写了半个产品,几个小玩意儿了。有毛用。因为我原来不会写。
: 3 你以为的就是你以为的。包括AI和编译器类似。
你用过codex没?我用的时候不需要复杂的提示词。他整个思考过程极为规范严谨,测试代码也非常好。一个十几万行的工程已经超出我的理解能力了。但是codex测试用例基本覆盖了所有实际使用场景。真正在生产环境发现的硬bug不超过3个。
【 在 z16166 (Netguy) 的大作中提到: 】
: 现在说的就是怎么通过制定框架或者流程规范降低AI犯错的几率
: 顶级AI也需要这种框架或者流程规范
1 举一个你说的难的项目。翻翻你自己的发言。或者让你的顶级AI总结下。
2 10倍是量化。如果你打工,一天8小时,现在只需要48分钟。如果你当老板,需要优化90%的人。做到了吗?你的10倍怎么算的呢?感觉?
3 这个讨论你没提供任何有用的信息。一开始提了15个莫名其妙的问题,以及AI和编译器类似的高见。后面就是神秘主义了
4 写网页的。往往有你这种感觉。
【 在 yuanmo 的大作中提到: 】
: 1. 我确实举不出人能写出来的代码,而AI写不出来的例子。你要是有,你可以举例啊。
: 2. 原本不会写的人能写了,原本会写的人提高了10倍的效率,大家都很高兴。谁在不高兴呢?我很奇怪,这超出了我的理解范围。
: 3. 我以为的当然就是我以为的,我说我以为的,你说你以为的,有啥问题吗?
十几万行是啥语言的?还有复杂度问题。
如果是C++、Rust的,十几万行代码只有3个以下的bug,几乎没可能
【 在 semipunk 的大作中提到: 】
: 你用过codex没?我用的时候不需要复杂的提示词。他整个思考过程极为规范严谨,测试代码也非常好。一个十几万行的工程已经超出我的理解能力了。但是codex测试用例基本覆盖了所有实际使用场景。真正在生产环境发现的硬bug不超过3个。
就是这种感觉。
就算我不说它是神一般的存在,也可以说是100个勤勤恳恳的比我自己还厉害的小伙伴在干活,而且只收一点点茶水费。
【 在 semipunk 的大作中提到: 】
: 你用过codex没?我用的时候不需要复杂的提示词。他整个思考过程极为规范严谨,测试代码也非常好。一个十几万行的工程已经超出我的理解能力了。但是codex测试用例基本覆盖了所有实际使用场景。真正在生产环境发现的硬bug不超过3个。
我的15个问题是我假定楼主作为team leader会关心的问题。team leader有带团队的经验,他看了自然会理解我的问题的含义。
而你明显不是team leader,所以完全听不懂。我也没兴趣让你听懂。
效率提高10倍就要裁掉90%的人?这是什么逻辑?所以你也不是老板。
你觉得没有得到啥信息,我也不关心。
【 在 DoorWay 的大作中提到: 】
: 1 举一个你说的难的项目。翻翻你自己的发言。或者让你的顶级AI总结下。
: 2 10倍是量化。如果你打工,一天8小时,现在只需要48分钟。如果你当老板,需要优化90%的人。做到了吗?你的10倍怎么算的呢?感觉?
: 3 这个讨论你没提供任何有用的信息。一开始提了15个莫名其妙的问题,以及AI和编译器类似的高见。后面就是神秘主义了
不能这么类比的,汇编,高级语言编译器,都是传统的确定性的工具,同样的工具,同样的输入必然有同样的输出,所以经过充分验证之后可以相当信任。但llm不是确定性的,就比较头疼
【 在 Peleus 的大作中提到: 】
: 汇编出来了,人们不看0101了。高级语言出来,人们也不看汇编了。vibe coding后,看
: 代码也会成为历史吧。或许以后直接vibe 010101了
你为什么说几乎没可能?
【 在 z16166 (Netguy) 的大作中提到: 】
: 十几万行是啥语言的?还有复杂度问题。
: 如果是C++、Rust的,十几万行代码只有3个以下的bug,几乎没可能
我本来是打算加个括号,括号里写“绝对不可能”的,
后来一想,还是算了,你可以当我“怯场”了,哈哈
【 在 semipunk 的大作中提到: 】
: 你为什么说几乎没可能?
价值,title……板起脸教训人用顶尖AI,试试难的项目……
好吧,讲价值吧,
不裁员所以公司规模、利润、进度提升了10倍,100倍?
你的效率提升作用在哪里?效果在哪里?
10倍,100倍,这是你写ppt的说辞,还是老板给你说的,发了奖金?
说出点东西。我觉得是代码行数。哈哈哈。
你有没有兴趣不重要。重要的是别是遁词。东拉西扯,顾左右而言他,避免尴尬。
【 在 yuanmo 的大作中提到: 】
: 我的15个问题是我假定楼主作为team leader会关心的问题。team leader有带团队的经验,他看了自然会理解我的问题的含义。
: 而你明显不是team leader,所以完全听不懂。我也没兴趣让你听懂。
: 效率提高10倍就要裁掉90%的人?这是什么逻辑?所以你也不是老板。
我看了下他的发言,应该是指开发过程中,使用AI,
用宽松的发言完成了十几万行的项目,并建立了配套的测试。
这个过程多久,没说。肯定效率提升了。
最终上线后,3个bug。 硬的。最后的表述有定语。
【 在 z16166 的大作中提到: 】
: 十几万行是啥语言的?还有复杂度问题。
: 如果是C++、Rust的,十几万行代码只有3个以下的bug,几乎没可能
1、十几万行是什么语言
2、硬bug是什么标准。人工测试又收敛了多少bug。
3、项目的复杂度如何
最后不要往“有钱吃细粮”、“没钱吃粗粮”那里跑就行,那种就没啥意思了,我完全没兴趣。
【 在 DoorWay 的大作中提到: 】
: 我看了下他的发言,应该是指开发过程中,使用AI,
: 用宽松的发言完成了十几万行的项目,并建立了配套的测试。
: 这个过程多久,没说。肯定效率提升了。
生成代码太快,根本看不过来,代码review也用AI完成,debug也是如此。这样的情况,就不需要人来读了。
可以要求生成的代码更举报可阅读性,但是实际意义不大了。
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
大家讨论AI的时候潜意识里会把它与某假想中的“完美编程机器”对比。
其实没必要,只要跟人类对比就足够了。AI编码从绝大多数维度看,都已经超越人类了,而速度尤其是一骑绝尘。剩下应该讨论的只不过是“激进地使用”还是“谨慎地使用”的问题。我自己的经验是越激进,收效越大,所有当下存在的问题在发展的过程中自然会被解决。
【 在 z16166 的大作中提到: 】
: 我本来是打算加个括号,括号里写“绝对不可能”的,
: 后来一想,还是算了,你可以当我“怯场”了,哈哈
会 我觉得不好就给comment
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是
对的,这是个很大的问题,传统工具的结果是确定的,这是人类验证过的结果,而ai的结果是非确定性的,变成了旷野,而现阶段应对这种“不确定性”并没有什么“确定性”的验证工具和方法
【 在 beep 的大作中提到: 】
:不能这么类比的,汇编,高级语言编译器,都是传统的确定性的工具,同样的工具,同样的输入必然有同样的输出,所以经过充分验证之
※ 来源:·https://exp.mysmth.net·[FROM: 39.144.105.*]
1 js,顶格java
2 有印象的bug,值得本尊上手分析、测试,给出修改提示的
3 成熟领域成熟业务成熟产品线扩展成熟框架成熟问题
猜测完毕
【 在 z16166 的大作中提到: 】
: 1、十几万行是什么语言
: 2、硬bug是什么标准。人工测试又收敛了多少bug。
: 3、项目的复杂度如何
但是汇编代码最终工作是要大量测试的;AI代码如果能充分测试,那自然也不用看懂
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代 ...
最终代码还是得人来读.下面20行代码,llm可以给你掰开了揉碎了喂进你嘴里,但不懂的人还是不懂.维护这样的代码,光靠llm是不行的
Q=12289
K=GF(Q)
R.<x>=K[]
I=sqrt(K(-1))
def slice(a,b,gamma,i):
a0=a(x=x*gamma)%i
b0=b(x=x*gamma)%i
c0=(a0*b0)%i
u=c0(x=x/gamma)
return u
def crt512_twisted(a,b):
i=x^256+1
gamma=I^((Q-1)//256)
u,v=(slice(a,b,gamma,i),slice(a,b,1/gamma,i))
f=x^256+I
g=x^256-I
_,s,t=f.xgcd(g)
return (t*g*u+s*f*v)%(f*g)
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
甚至DRY原则还要不要遵守都要打个问号
以前DRY是因为手工编码,控制修改点
现在机器编码,不会遗漏任何一个还修改的地方,以前那种屁大点功能也得抽象成一个函数的风格还要不要遵守
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对&nbsp;AI&nbsp;有个争议。就是我们还要在乎&nbsp;AI&nbsp;生成的代 ...
如果说代码整体质量,真不一定写的很好,大部分情况下是不如资深工程师
【 在 wakesman 的大作中提到: 】
: 可读性比人写的强
问题是,ai也会加注释。而且,有些注释是必要的,所有代码问题都让ai解读一下也不好吧
【 在 DoorWay 的大作中提到: 】
: ai时代第一抛弃注释,需要时让ai总结,这个想法怎么样
: 损失token,换来不误导ai。 有收益。
有可能的,如果他要的东西是一个业界已有成熟轮子的东东,AI基本能毫无bug的重新做一个出来。但是自己弄去网上copy一个稍微改改来跑,一样很快。。。
之前网上宣传的,AI做出一个红警web版,其实就差不多这样
【 在 z16166 的大作中提到: 】
: 十几万行是啥语言的?还有复杂度问题。
: 如果是C++、Rust的,十几万行代码只有3个以下的bug,几乎没可能
他本人一直没回复这个问题
所以这个问题只能猜测了 [emc49]
【 在 zerg136 的大作中提到: 】
: 有可能的,如果他要的东西是一个业界已有成熟轮子的东东,AI基本能毫无bug的重新做一个出来。但是自己弄去网上copy一个稍微改改来跑,一样很快。。。
: 之前网上宣传的,AI做出一个红警web版,其实就差不多这样
为啥这个也不让发
[upload=1][/upload]
【 在 philbloo 的大作中提到: 】
: 最终代码还是得人来读.下面20行代码,llm可以给你掰开了揉碎了喂进你嘴里,但不懂的人还是不懂.维护这样的代码,光靠llm是不行的
: Q=12289
: K=GF(Q)
prompt要求的话,大模型就不加了。
注释是否必要就是要讨论的问题,可读性。必要的理由是?给人看还是机器看
【 在 xeagle 的大作中提到: 】
: 问题是,ai也会加注释。而且,有些注释是必要的,所有代码问题都让ai解读一下也不好吧
人类很快就会丧失读代码的能力的
做新的东西会比较慢,我现在用主从agent结对编程,一个派发任务审核代码测试功能,一个负责开发,用codex一晚上也就补完一个功能,项目大了,开发和测试验收需要的时间就越久
【 在 z16166 的大作中提到: 】
: 他本人一直没回复这个问题
: 所以这个问题只能猜测了
我觉得代码注释其实已经不重要了,人类阅读只需要专注文档就行。
【 在 DoorWay 的大作中提到: 】
: prompt要求的话,大模型就不加了。
: 注释是否必要就是要讨论的问题,可读性。必要的理由是?给人看还是机器看
可读性不光是人类在乎,其实AI也在乎
一个项目失去可读性可理解性,那么就是屎山了
以前一年时间变成屎山,现在可能只需要一个月
那么这个项目维护成本肯定大幅度提升
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
AI代码能力已经超过大多数人了。五年之后可能就不需要人懂怎么写代码了。
反正现在刚毕业的大学生用claude code直接vibe coding,前后端都是。一个文件六千多行
【 在 zerg136 的大作中提到: 】
: 我觉得代码注释其实已经不重要了,人类阅读只需要专注文档就行。
对llm来说世界是平的 crud,web,和sage没差别 所以说一个项目能不能维护下去 还是得看人
llm的数学比我好太多 但是偶尔llm也会写一些nonsense 一页的公式 只错一个符号那种 这种笔误最后还是得人来找出来
【 在 z16166 的大作中提到: 】
: 为啥这个也不让发
: [upload=1][/upload]
最后一定是不看或者不在乎可读性了。
现在还是在完成功能的基础上增加点可读性。
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
Martin Flower最近写了一篇论文
是面向不确定性的编程
意思是建筑工程一直不确定的各种误差基础上构建系统工程
而软件一直是确定性编程
ai时代要发展为不确定性编程
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
讨论要不要听懂小孩说的语言没有意义,先等他长成大人再说
现在对AI下结论太早,没有讨论价值
不是说都是人类代码喂出来的吗?人类代码有规范吗?都跟 山一样
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
紧凑没注释的代码会不会更省token?
【 在 PaoloMaldini (solo con te) 的大作中提到: 】
: 垃圾代码少点,AI读起来也容易吧
: 毕竟上下文不是无限长的
: 【 在 hgoldfish 的大作中提到: 】
当然啊
要debug 的
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
那点token钱,各位大佬看得上吗
【 在 smthhz 的大作中提到: 】
: 紧凑没注释的代码会不会更省token?
好久都没debug了,都是要AI加日志
有些race问题还无法debug
【 在 DraculaW 的大作中提到: 】
: 当然啊
: 要debug 的
让Ai每一段/行都写好注释
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对&nbsp;AI&nbsp;有个争议。就是我们还要在乎&nbsp;AI&nbsp;生成的代 ...
编译器生成的代码是确定性的,ai生成的是不确定的
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
不是钱的问题,主要上下文大小有限啊
【 在 z16166 的大作中提到: 】
: 那点token钱,各位大佬看得上吗
: 【 在 smthhz 的大作中提到: 】
: : 紧凑没注释的代码会不会更省token?
让AI少走弯路才是真的。良好的注释、文档、spec、memory,都是极大提高AI工作效率的辅助。
AI模仿的还是人,软件工程的所有原则依然成立,只不过边界可以灵活一些。
【 在 smthhz 的大作中提到: 】
: 不是钱的问题,主要上下文大小有限啊
有些复杂情况,函数的用法语义靠注释,代码很难做到自注释。还有,技术方案的选择
而且,AI就可以维护注释和代码的一致性,没必要强制去掉吧
【 在 DoorWay 的大作中提到: 】
: prompt要求的话,大模型就不加了。
: 注释是否必要就是要讨论的问题,可读性。必要的理由是?给人看还是机器看
咱俩想的一样。尤其是“技术方案的选择”
你只读我的发言。我灌水猛。
【 在 xeagle 的大作中提到: 】
: 有些复杂情况,函数的用法语义靠注释,代码很难做到自注释。还有,技术方案的选择
: 而且,AI就可以维护注释和代码的一致性,没必要强制去掉吧
不能这么说,现在的qwen 27b 已经开始被认为可以干活了
两年前没影儿的事儿
而且现在为了赶进度,项目很多代码都是生成的,确实造成了项目maintainer的焦虑
【 在 rationalman 的大作中提到: 】
: 讨论要不要听懂小孩说的语言没有意义,先等他长成大人再说
: 现在对AI下结论太早,没有讨论价值
一个月和一岁的区别,下结论都太着急
【 在 gfkid 的大作中提到: 】
: 不能这么说,现在的qwen 27b 已经开始被认为可以干活了
: 两年前没影儿的事儿
: 而且现在为了赶进度,项目很多代码都是生成的,确实造成了项目maintainer的焦虑
抬头看了看版名, 怎么说这么外行的话?
【 在 Peleus 的大作中提到: 】
: 汇编出来了,人们不看0101了。高级语言出来,人们也不看汇编了。vibe coding后,看
: 代码也会成为历史吧。或许以后直接vibe 010101了
讨论这个问题的意义在于,并不是要下什么结论,而是这影响到现有的代码工程实践,比如AI 生成代码的可读性限制,是否需要加注释等等,你这一句话太早没区别,对于这个讨论没有任何实际意义。
【 在 rationalman 的大作中提到: 】
: 一个月和一岁的区别,下结论都太着急
过两年古法编程消失殆尽了
【 在 rationalman 的大作中提到: 】
: 一个月和一岁的区别,下结论都太着急
用不了2年
【 在 gfkid 的大作中提到: 】
: 过两年古法编程消失殆尽了
变化太快,现在的讨论放到几个月以后都会很可笑
【 在 bitwzy 的大作中提到: 】
: 讨论这个问题的意义在于,并不是要下什么结论,而是这影响到现有的代码工程实践,比如AI 生成代码的可读性限制,是否需要加注释等等,你这一句话太早没区别,对于这个讨论没有任何实际意义。
也不能这样说吧。有一个问题始终要面对:线上出了问题,怎么快速搞定。
故障定义都是有标准的,之前人来维护代码的话,有信心达到这个标准。
现在改成 AI 以后,怎么快速搞定,这个讨论还是有意义的
不过不能像上面的那种讨论:空对空,到了最后,不知道在争啥
【 在 rationalman 的大作中提到: 】
: 变化太快,现在的讨论放到几个月以后都会很可笑
不一样。
编译器生成的代码是高度确定的,可以从源码的逻辑和质量判断出编译器生成汇编代码的逻辑和质量。
AI生成代码并不如此。
AI生成的代码,逻辑和质量,你是根本无法通过提示词、Harness工程或者Loop来确定的。
LLM是用人类知识训练的,LLM写的代码天然就应该是易于人类理解的。如果ai写出来的代码是天书,那可能是外星文明的产物
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。
比自己写的可读性还要高
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是
你应该升级代码agent了,注释和思路比人写得好很多
【 在 z16166 的大作中提到: 】
: 你要是不在给AI的规范里写明“注释和代码保证配套更新”、“代码里的关键决策、复杂决策要注释”,它一样会漏加注释、改代码时不改注释
: 【 在 hover 的大作中提到: 】
: : ai生成的代码我看可读性挺好的
: : 而且吧,还可以解决传统编码时代代码和注释经常不匹配的问题
不要过于相信单个AI
我刚才用GPT 5.5写的代码,用Mimo/Deepseek/GLM5.2一样查出来bug、注释没更新/遗漏。
最菜的Mimo(免费版的),也发现了shader代码的一个类型错误。如图。
【 在 anliey 的大作中提到: 】
: 你应该升级代码agent了,注释和思路比人写得好很多
AI会偷懒,不知道是不是后台降智了
要么就是上下文多了,注意力不够了
【 在 z16166 的大作中提到: 】
: 不要过于相信单个AI
: 我刚才用GPT 5.5写的代码,用Mimo/Deepseek/GLM5.2一样查出来bug、注释没更新/遗漏。
: 最菜的Mimo(免费版的),也发现了shader代码的一个类型错误。如图。
可否这么理解?代码和注释就像 DNA 的双螺旋,彼此一一对应,互为注释和实现,也互相提供纠错。
【 在 DoorWay 的大作中提到: 】
: 我本来认为,从语义角度讲,注释是冗余信息,代码包含所有必要的知识。多轮次之间,注释更有害,对AI来说。因为一旦注释和代码不一致,就会浪费宝贵的推理空间。一旦推错了,迅速飘移。
: 但是如果代码不符合预期,或者要讲代码的意图/由来,设计抉择等,而不是实现,还是要注释。
: 这个注释是元
注释远少于代码,构不成双螺旋,只是个补充
【 在 quany 的大作中提到: 】
: 可否这么理解?代码和注释就像 DNA 的双螺旋,彼此一一对应,互为注释和实现,也互相提供纠错。
函数头brief和IO说明,勉强有点用,作为context输入给AI,生成新的代码和注释。主要信息还是promot,即元信息。
一个函数的级别,函数内的注释,是干扰AI了。如果不是侮辱的话。
即使函数头的注释有点用,也是辅助级别的。
我有个大胆的思想实验,如果我自己写一个全新的框架或一个足够复杂的的tool lib,哪种都行,不公布源码,没有例子代码,但是注释非常详细,按最高级别,AI仍然毛也做不出来。它主要靠例子代码来学习用法。尤其在同一个仓库里已经存在的代码,对他有很大的帮助或危害。
【 在 quany 的大作中提到: 】
: 可否这么理解?代码和注释就像 DNA 的双螺旋,彼此一一对应,互为注释和实现,也互相提供纠错。
当然你的想法很高级,类似数字孪生,代码和注释同生共长,解决了从实体到镜像的线形路径问题,变成闭环了,虚拟仿真驱动制造,制造更新虚拟模型。
但还是有个单一信源的问题,两者冲突,以谁为准。
另外具体到AI,公共知识和领域知识的边界,是个因素。考虑概率模型,足够多素材往往代表足够好的输出,所以AI写网页程序特别棒。对于工业软件,大模型生成代码就需要更多提示词告诉它背景,告诉它约束,告诉它目标,因为不掌握。
【 在 quany 的大作中提到: 】
: 可否这么理解?代码和注释就像 DNA 的双螺旋,彼此一一对应,互为注释和实现,也互相提供纠错。
不理解你们为啥花这么多篇幅聊注释啊?
哪怕聊个单元测试也好啊...
注释在客观上对代码没有任何影响,主观上现在也没人看代码,聊这个干嘛,纠什么错...
单元测试才能纠错,注释就是nothing
【 在 quany 的大作中提到: 】
: 可否这么理解?代码和注释就像 DNA 的双螺旋,彼此一一对应,互为注释和实现,也互相提供纠错。
可读性这个指标有些模糊了, 或者说这一个指标还远远不够.
我感觉如果AI生成的代码还有必要让人来维护的话, 代码质量还是应该提高一些, 现在生成的代码(用的是Claude code)严格来看, 代码质量还是不够完美. 当然, 对于习惯了糙快猛,代码用完即丢的公司, 已经是很大的进步了.
影响小的代码,就好比是女娲用藤条甩出来的人,测过了,就不用人类审查了
影响大的,还是要审查的,不然出了事没人背锅
【 在 hgoldfish 的大作中提到: 】
: 最近在我们团队内,几个小伙伴对 AI 有个争议。就是我们还要在乎 AI 生成的代码,面向碳基人类的可阅读性吗?
: 传统的软件工程要求有清晰的变量、高扇入、低依赖。每个函数要有合理的代码行数等等。但仔细考虑一下,这里都是在假定修改代码很难,需要人类多次阅读的基础上面设定的规矩。如今代码是 AI 写的,也是给 AI 读的。还需要这些规矩吗?
: Linus 说,现在的 LLM Agents 写代码,和他们当年从汇编升级到 C, Pascal 编译器其实差不多,都是让工具生成代码。而编译器发展到现在,也没人在乎编译器生成的汇编代码是否能够让人类阅读了对吧。