技巧

非工程师如何判断代码可靠性?从外部验证功能、性能、安全

我觉得我们的观点并没有那么大的分歧 第一,这个问题问的是“非工程师”怎么判断代码靠不靠谱。让一个看不懂代码的人去审查“事实、思考、推理是否完备”,这个标准他执行不了。执行不了的标准等于没有标准。他真...

精选理由

作者讨论非工程师如何判断代码可靠性,提到从外部验证功能、性能、安全,以及AI检索信息快但结论不一定对,以结果为准更靠谱,挺实用的。

非工程师无法审查代码的“事实、思考、推理是否完备”,因为标准执行不了。他们能做的,是从外部验证行为:功能、性能、安全。即使是工程师,保证正确性是目的,有多种手段,比如读推理过程或验证结果。软件工程一直如此:编译器输出不逐行审,第三方库不通读源码,靠接口契约加测试。AI检索信息快,但结论不一定对,不能仅以“思考看起来合理”为准,以结果为准更靠谱。

原文 · 宝玉

我觉得我们的观点并没有那么大的分歧 第一,这个问题问的是“非工程师”怎么判断代码靠不靠谱。让一个看不懂代码的人去审查“事实、思考、推理是否完备”,这个标准他执行不了。执行不了的标准等于没有标准。他真...

我觉得我们的观点并没有那么大的分歧 第一,这个问题问的是“非工程师”怎么判断代码靠不靠谱。让一个看不懂代码的人去审查“事实、思考、推理是否完备”,这个标准他执行不了。执行不了的标准等于没有标准。他真正能做的,是从外部验证行为:功能、性能、安全。 第二,即使是“工程师”这么做,我觉得也是没有问题的。因为保证正确性是“目的”,我们可以有多种手段,既可以靠读推理过程读出来的,也可以靠验证验出来的。 软件工程一直如此:编译器的输出我们不逐行审,第三方库我们不通读源码,靠的都是接口契约加测试。推理看起来再完备,跑不过测试也是错的。 第三,“没有完整准确的信息就不该行动”,这在现实工程里不存在。再好的人类团队也做不到信息完备才动手,靠的是小步迭代、快速验证、出错可回滚。我说的“拆成小模块”正是为此:模块越小,信息越容易完整,验证越容易充分。 第四,AI 检索信息快,不等于结论对。它完全可以给出一个论证严密、引用齐全但就是错的方案。所以越是 AI 时代,越不能以“它的思考看起来合理”为准,相对来说以结果为准还更靠谱一些。 “验收只能覆盖你想得到的场景”,这一点我是认同的,跟我原文的观点也不冲突:验收标准本身要想清楚,涉及安全、钱和数据的关键路径,拿不准就找专业的人。 💬 3 🔄 0 ❤️ 4 👀 3154 📊 3 ⚡