821-2026.08.14.系统化的试错工具和行动

Posted on Aug 14, 2026

昨天呢给大家线索,让大家去学习这个get对然后呢给了大家一个学习的方法。
你首先呢要建立一个比较正确的相对正确的啊认知模型啊,这个呃认知地图啊,mental map对吧?
然后呢呃找到一个类比,然后呢,你就比较容易的去理解一个你之前完全不容易不知道的一个领域。

你可以把它理解为是一个啊带有平行世界的时光机,对吧?
然后呢,你去理解它,然后再到头来去想,哎,这个类比哪里不准确,再去研究那些不准确的地方啊,然后呢再去找更好的类比啊,比如说啊gatet呢就像是一个啊我们常见的那种图书馆啊,里面有个档档案馆,然后呢有一扇门,然后呢,你在那扇门外工作,对吧
?
哎,这也是一种类比啊,相对的可能还更准确,虽然啰嗦一点啊,虽然听起来没有那么精彩,。

所以呢啊类比思考啊,它不仅是什么呃,仅仅是啊写作技巧,它其实是一个很重要的认知模型啊,认知方法论啊,它是能够让你跨越重已知到未知那道鸿沟的桥梁。

那今天呢我们再倒过头来去这个复习一下我们可能老早就知道的一个认知观念。
什么呢?
叫试错 try error对吧?
啊,试错。

试错 trial and error

试错的行为模式以及试错的啊认知模式啊,是我们探索未知领域的一个不可或缺的工具啊,探索未知领域啊,就是靠试错的。
其实呢试错这件事情呢,每个人都是有非常清楚的认知的。
因为什么呢?
因为我们整个人类甚至整个生物都是这样的,是靠试错发展的。

这个世界呢没有一个完整的说明书,这个世界呢也没有一个完整的地图,对吧?
然后呢,他也没有一个哈啊从头到尾一贯的规则。
所以呢我们只能靠去尝试,对吧?
尝试了之后呢,出错了怎么办啊,知道这条路行不通,那我就走下一条路,对吧?
啊,通过不停的试错啊,产生了进步与发展,?

那么呃其实呢如果你从这个角度去出发去理解的话呢,那我们之前讲的两个特别重要的概念都是试错工具啊,get是试错工具。
TDD是试错工具。

git 和 TDD 本质上来看都是系统化是错工具

他甚至不像简单的哈,我做错了,我改我做错了,我换啊这么简单的试错,它是一个系统化的试错工具,对吧?
比如说哈你用get啊,你就可以啊写到一定的程度之后呢啊,不管干什么啊,你包括我写写写课程啊,我写书啊,也也是用get的啊,大家知道我的书一直在ge哈普开源,其实不是为了开源而是用get对吧?
而是因为没有get,我很多工作做不了。

因为写着写着未来就有几个版本的可能性,对吧?
那怎么办啊,那就分支啊,然后各自写下去,然后选一个最好的啊,挪回来,对吧?
那另外两个被废弃了,就是试错嘛。

所以呢一个有平行世界的呃时光机啊,是一个特别好的试错工具啊,尤其是在呃呃呃呃这个这个文字工作上啊,写代码是叫什么呀?
写代码是这个这个啊格式化语言的啊啊创作啊,我写书是自然语言的创作。

当然了哈呃展望未来应该是没有多久啊,无论是音乐呀,还是呃这个这个图像啊,还是视频啊,到最后啊也都是哈跟文字相关的,为什么呢?
因为对AI来说,对计算机来说,到最后他了不起是token,对吧?
到最后本质上都是零和一,。

所以呢这种哈系统化的啊试错工具将来只会越来越先进,越来越不可或缺,而不可能哈啊被替代或者不用对吧?
所以呢呃一切哈啊呃呃这个这个创意工作者啊,其实呢到最后哈都会用都应该用给的,只不过很多人不知道而已。
对。

而TDD啊基于测试的开发啊,test driven developing啊,它本身哈也是试错,对吧?
他他不是先写代码,他先写哈错误代码的检测,对吧?
然后呢写了好多的测试,然后呢,你要代码写正确了的话呢,这些测试就全能通过,。

那么你可能哈过去不知道啊有这种东西,然后呢你也没有用过。
对吧?
那我现在就告诉你说哈,其实是这样子的,你呢嗯如果愿意你就尝试着哈用AI去做他现在最擅长做的事情。
据说呢啊AI发展到今天啊,然后呢这个最火爆的领域啊,他最擅长做的领域,还真就是写代码,对,其他的呢啊都凑合着用。
。

AI写代码呢虽然哈也没有这个我们想象的那么神奇,对吧?
然后呢,那些这个这个呃高级的程序员对AI写出来代码也非常的不屑,对吧?
但他展示了一种可能性。
首先呢不会写代码的人也可以用他写代码,啊,其次呢就是归集劳动力的这个价格便宜啊,然后速度快,然后呢还有更重要的一点,就是他会变得越来越聪明。
所以不出两三年啊,这个写代码这件事情哈,就算是高级程序员可能也跟不上。

但是有一点是特别重要的,你越高级,你就越需要TDD啊,你越高级,你就越需要哈测试这个这个呃导向的开发。

你看看哈那个get昨天向大家介绍的这get的这个工具,它本身是开源的,它本身有一个仓库啊,下载到你本地哈几百兆而已。
对?
然后呢,有8万多次提交开发了20多年,对吧?
然后呢,你今天哈再进那个仓库,然后问一个AI问AI这么一个问题,就是这个get的仓库代码啊,测试啊TDD啊,以测试为导向的开发啊,做的到底有多好,。

How well its development is test driven?

你自己啊让AI去统计一下就明白了啊,他这个仓库里哈这个测试代码的数量啊,行数啊远比啊产品代码的呃数量多,而且多可能不止一个量级对,而且呢20多年前人家手写测试就这样。
。

LOC tools

这个LOC就line of code到底有多少行代码。
这个关于分析这个呃呃代码还有专门的工具啊,叫什么TK啊TK啊TKEI好像是这么一个词哈。
所以AI知道的啊,AI一定会调用这个工具。
如果你没有这个工具,他会帮你下载这个工具,然后呢去分析对吧?
然后会给你给出你报告来。

这个基于测试的开发在干什么啊,他就在做一件事情啊,就是便利所有边缘情况。
然后呢,你写出来的代码,完成一项功能啊,这个这个这个呃完成一项公用,对吧?
直接完成是可以的,但是有边缘情况怎么办?
所以呢,就写很多的边缘情况的测试代码,然后呢,你在这个写完这个功能之后呢,这些边缘情况全都覆盖了,全都通过了。
那说明你这功能写的非常的robot,叫叫叫健壮,。

TDD 的本质就是覆盖尽量多的 Edge Cases 边缘情况

所以啊我告诉你啊,你学会了TDD啊这个概念。
然后呢,你学会了get这个概念怎么用啊,你可能不会没有关系how反正AI能干。
然后呢,你知道了what,你知道了hy,然后呢你下一步干什么,你知道吗?
就是无论你想学习哪一个geH仓库。
无论你想啊改编哪一个软件啊,或者是拿任何一个软件当做自己啊,这个要练习的工具,对吧?
你先干一件事情,就去看那个呃仓库的测试代码。
。

先看测试代码… (当然是让AI看)

我自己呢也是嗯刚学会这种方法哈,没有多久,对吧?
半年前我都不会,对吧?
啊,去年年底的时候呢,嗯我开始写两个软件,一个是V mark。
还有另外是一个啊我自己用的这个阅读器,对吧?
就电子书的阅读器一帕PDF啊,这些电子书的阅读器,然后呢,当时呢就是呃因为没有经验,所以到最后搞成了一一座史山,然后呢就只好放在那了,不动了。
。

然后呢啊因为之前哈啊锲而不舍的去写那个V mark,然后学了很多的工程手段。
包括刚才我说这个特别简单的东西。
我等我有一天意识到我应该这么干的时候,我自己吓了一跳,怎么这么简单的东西,我以前就没有想到呢。

然后然后我上个月才开始哈啊每天抽出一点时间啊,重新写我自己的那个自己用的那个啊阅读器,对吧?
然后才发现说哇以前我写的东西写的太天真了,对吧?
就是啊想一个功能,让他去实现,然后简单用一下,觉得可以了,就放在一边了。
然后呢,就接着写下去,写着写着就可以写乱了,。

我告诉你啊,其实真的所有的功能都没有看起来的那么简单,哪怕是看起来最简单的功能啊,其实都是有很多边缘情况的对吧?
比如说哈你在那个阅读器里面啊呃用鼠标划这个划一段字,然后呢给他们高亮,对吧?
那这个时候呢哈啊你就发现说你需要一个小功能,。

就什么呢?
你有的时候啊鼠标指过去一划,但那个起点不是在词汇的边界,而是在词汇中间,对吧?
所以你就只好再重新划一遍。
因因为你想从这个句子的开始,一直到这个句子末尾嘛,对吧?
当然了,程序应该能做到什么呢?
无论你是不是在这个单词的哪一个字母上开始划,你都应该把这个单词包含进去,对吧?
哎,这就是一个小功能,对吧?
?

然后我就描述给AI了,然后呢,AI就说完成了。
然后呢,我也这个这个跨模型检查了这个呃呃bug啊,也通过了,对吧?
哎,我就以为我干完了,啊,不是的,后来呢啊我找我就问问AI啊,目前哈我能找到的最好的开源的啊这个这个一阅读器都是什么对吧?
然后他就给我这个这个指了一条路,对吧?
我就把几个仓库都这个这个这叫什么呀啊,克隆下来,对吧?
。

然后呢,问AI这样一个功能,对啊?
这样的一个功能,他们是怎么实现的那AI哇哇哇给我一顿讲,对吧?
我好像懂了一些,但是哈我换了个问法,我才明白我这么问有多么弱智,对吧?
我换了个什么问法呢?
我说你这样这个软件呢实现了这个功能。
然后呢,你去他的仓库啊,全面搜索一下这个功能的测试代码都有哪些。

这个功能的测试代码都有哪些?作者考虑了哪些边缘情况?

这个时候啊这个AI就好像突然变聪明了一样啊,AI就是这样的啊,你没有概念告诉他啊,他就以你的世界里的概念向你解释,对吧?
你用专业的概念去跟他聊天,他就用专业的方式跟你聊天,对吧?
然后他去搜了一遍啊,说这个功能呢哈总计哈啊这个这个12个测试,对吧?
然后呢,给我分类罗列了一下,都测试了哪些。

你再grill一下,有哪些边缘情况的gaps?

然后我就问了他下一个问题,对吧?
好,他有这些测试,我知道了,对吧?
那么你再去拷问一下这些测试啊,有哪些边缘情况没有考虑到。
哎,这里面有个词啊,叫gapsgaps就是裂缝,对吧?
啊,漏洞啊,需要补它对吧?
然后呢,他就好像是变得更聪明一样啊,又思索了一会儿啊,咣咣咣给我列出十五六个情况,对吧?
那好啊,这样吧,我现在呢就在我的这个软件上实现这个功能,对吧?
那你应该怎么写测试呢?
怎么写测试才能足够完整呢,?

那你应该如何做到系统全面地考虑到尽可能所有的边缘情况呢?

然后他就来劲儿了啊,然后呢啊这个这个给我一个完整的方案对,然后我说好吧,那你就写测试吧,他哇哇哇哇一顿写。
这个时候呢啊其实我这个功能已经相当写完了。
为什么?
因为他把测试全都写完之后呢,我再要求他哈把这个功能给我实现,然后所有的测试都通过一遍啊,不通过呢,你就回去改,对?
OK那这样的时候呢哈,他写出来代码质量就非常非常的高,为什么呢?
因为道理很简单,啊,全面试错完毕那就只剩下正确的路了嘛。
。

全面试错完毕之后就只剩下正确的路了

所以呢其实啊呃我这两这两个月哈最近两三个月的感受是这样的,就是嗯我用AI做东西,我用AI写代码,对吧?
就变得越来越慢了啊,比以前慢多了,比刚开始说慢的无比想象。
但是这不是因为啊啊AI变笨了,对吧?
不是因为效率降低了,而是因为说以前我太天真了,对吧?
以前以前我太单纯了,然后呢,以前我太自以为是了,以为那样就可以了,。

现在呢有了工程手段啊,有了系统化的试做工具,然后呢做法就发生了变化,对吧?
那以前呢啊看书啊嗯看这个编程的书,人家也说要测试驱动,咱就不了解。
但现在呢有大量的哈呃呃呃这个这叫什么呀?
有大量的这个啊优秀的仓库值得去学习啊,真的很开眼,然后呢,哎就在写测试这方面啊,花的时间很多,反正是AI写然后我用脑子去想哪些边缘情况对吧?
啊,都有哪些角度都有哪些维度啊,然后呢,你你给我设计一个矩阵,然后呢,考虑到所有这些矩阵啊,之后啊,然后呢啊把测试给我写全。

有的时候呢会走入一个境地哈,就好像啊经常哈用宰牛刀去杀鸡一样,对吧?
但它是一种工程手段,然而呢,它实际上也是一个人生态度,对吧?
你你你你在现实生活里做事也是这样的对吧?
只不过是过去啊你的脑力啊,没有那么呃呃呃强壮,对吧?
啊,一天干三个小时活啊,就已经累得够呛了,对吧?
但今天呢有AI辅助,对吧?
所以你就可以探索大量的位置空间啊,然后去寻找正确的路径,。

所以呢啊有了giitch有了TDD对吧?
啊,你就真的哈啊走向了哈嗯有具备工程思维的人生的啊起点,对吧?
然后呢,随着时间的推移,你也会像我一样啊,你看我8个月前也知道TDD的概念,但是只有3个月之前我才想明白说啊,我应该这么用TDD对吧?
现去学习那些优秀的仓库,对吧?
那怎么学用AI帮我学嘛,对吧?
然后呢,我的工程质量就开始完全不一样了,对吧?
一下上了一个巨大的台阶,其实呢很简单,就是几个问题带来的质量变化。
好,今天的课程呢就到这里,我们下节课再见。