@hwang 在 Vibing Code 时代,新时期的"防御性"编程讨论 中发帖
从 java变量名越短越怪,性能越高? - #34,来自 hwang 继续讨论
如果是简单得把变量名、方法名用a/b/c 代替,目前LLM是可以根据方法内容推断出来的,所以在目前LLM 蓬勃发展的新时期,旧的防御性编程手段就跟不上时代了。
按目前LLM 的本质,都是根据当前文本在预测上下文。在模型普遍降智的如今,我猜测LLM 会偷懒或者说压缩信息,比如说读代码的时候会尝试只读方法名,这也有助于vibing code 工具快速理解上下文。基于此,就可以做一个针对LLM 的防御性编程措施(或者说混淆?):
将变量名、方法名改成实际用途的反义词
新增注释,或者修改现有注释。用最啰嗦的话写出相反的注释
针对项目里的所有文件,随机执行第一第二点
变量名、方法名、注释尽量长,token 成本攻击
git commit message 写全、写长、写错
记得自己留...