《写给编程小白看的 Vibe Debugging 注意事项(1) 》
我认为我有资格谈论这个问题:
我在 Githuh 已经有 2 个超过 100 星标的开源项目。
截止文章开始写的时候,一个 267,一个 105。考虑到 Github 上绝大部分项目不超过 10 个星标,我的成绩自然是在水平线之上。
除了这 2 个破百星标的项目之外,我还有好几个 50 个星标的项目,一些 20 个星标的项目。
自从我 Vibe Coding 到现在,我一共开发了 12 个项目。没有一个项目低于 10 个星标。其中 2 个项目起码经历了大规模重构(几乎完全重写)。
*为什么标题不是 Vibe Coding 而是 Vibe Debugging?*
如果从生物学分类来看,Bug 是克鲁苏——不可名状,永恒存在,令人恐惧。
小白 Vibe Coding 到最后往往变成 Vibe Debugging,拼命打印调试日志,然后塞给大模型,祈求它这把能过。
抑或,在 Vibe Coding 爽撸一把之后,祈祷这把不会有 Bug。然而克鲁苏就是克鲁苏,Bug 不会因为你的诚意感天动地,就自动消失。曾经有科学家开玩笑, Bug 是唯一违反物理定律的东西,因为即便太阳系毁灭了,Bug 也会继续存在。
所以,我们在谈论小白 Vibe Coding 的时候,也是在讲 Vibe Debugging——请所有小白在尝试 Vibe Coding 之前,一定要清醒的明白一件事,很多时候你不是在编程,你只是在制造你无法解决的 Bug。这是我非常痛的领悟。
*想要减少 Bug 的出现,必须懂点软件工程*
小白之所以无法控制 Bug 的产生,我觉得原因和会不会编程语言的关系不大。
就我潜伏在 V2EX(中文最大的程序员线上社区)里观察,即使懂得编程语言,同样闯祸,很多时候还是一口大锅,搞得身边的同事恨不得给这种惹事精做开颅手术,瞧瞧脑袋里装的是啥。
就我的 Vibe Coding 经验而言,真正令 Bug 减少的,是软件工程里的常识。也是让我觉得 Vibe Coding 时,不再害怕 Bug 出现的关键飞跃。
Vibe Coding 领域的流行理论,从单纯的 Prompting 到 Context Prompting 再到现在的 Spec Programming,在我看来是毫不回头地朝着软件工程化的方向狂奔。
所以,你还觉得不必了解一点软件工程吗?
*想懂点软件工程,必须先拥有「组件化思维」*
想知道 Bug 发生在哪里,为什么发生,固然是可以将日志直接塞给大模型——这是 Vibe Coding 的标准做法。
但,难免会碰上大模型怎么改都改不好的克鲁苏级 Bug 出现。排查 Bug 的流程,首先肯定是定位问题。
此时,拥有组件化思维的小白,会尚未拥有的小白,差距会十分明显。因为,前者通过脑子里清晰的结构,很快地定位到问题发生的那一段代码,以及它的相关因素。而后者,往往只能看到一个函数报错,但他只能重复地把错误日志塞给大模型。
克鲁苏级 Bug 无法马上消灭,往往就藏在这个「相关因素」里。缺乏组件化思维,脑子里就缺了一张地图,无法找出这些个「相关因素」,那么,更不要说排查 Bug 了。这整个过程就好像排雷,雷通常是藏起来的,如果想全排除,只能用扫雷车一个地面都不放过地筛,但是如果连埋雷的地方都不知道,就谈不上排雷这件事了。
现在,问题来了,如何拥有「组件化思维」呢?别急,往下看。
*想懂「组件化思维」,必须了解基础概念「抽象*」
我们通常接触到「抽象」这个词,往往和「抽象思维」这个词组密不可分。抽象思维,说的是迅速寻找事物的共性,总结特征。
在计算机领域里,「抽象」也类似的含义,因为组件往往是由普通的代码抽象而来的,而这个抽象的过程,往往是因为代码当中存在着大量的重复。这些重复的部分,可以抽象成公共组件,为其它组件提供服务。
还有另外一种抽象,是明确代码的边界,比如说,这几个函数是为同一个目的服务的,那么它们只需要面向这个目的进行设计即可。你可以认为,软件其实是一个流水线,这个流水线由不同的工序组成,从原材料放进传送带开始,一直到变成成品从传送带离开,每一道工序都负责加工上一道工序所传递过来的半成品——在软件里,工厂流水线里每一道独立工序都可以视为「组件」。
实际上,现在的 Spec Programming 也不过是进化到,将软件里的所有组件也说清楚给大模型听,然后让大模型生成代码。
换言之,如果你有能力在文档里描述不同的组件的作用,以及它们相互之间的关系,如何配合,那么你已经具备 Spec Programming 的能力。
在设计组件的时候,软件开发领域的「DRY 原则」显得尤为重要,它有点像麦肯锡金字塔原理的「不重不漏」原则。每个组件必然不是重复的,而要让它们有机地写作,那么又缺一不可。
*请期待下一篇*
这一篇我已经说清楚非常基本的概念,这些概念对于小白来说是不可或缺的,必须掌握的背景知识。在这里我十分推荐《软件设计的哲学》这本书,它不长,但更好覆盖了必须了解的常识。
我认为我有资格谈论这个问题:
我在 Githuh 已经有 2 个超过 100 星标的开源项目。
截止文章开始写的时候,一个 267,一个 105。考虑到 Github 上绝大部分项目不超过 10 个星标,我的成绩自然是在水平线之上。
除了这 2 个破百星标的项目之外,我还有好几个 50 个星标的项目,一些 20 个星标的项目。
自从我 Vibe Coding 到现在,我一共开发了 12 个项目。没有一个项目低于 10 个星标。其中 2 个项目起码经历了大规模重构(几乎完全重写)。
*为什么标题不是 Vibe Coding 而是 Vibe Debugging?*
如果从生物学分类来看,Bug 是克鲁苏——不可名状,永恒存在,令人恐惧。
小白 Vibe Coding 到最后往往变成 Vibe Debugging,拼命打印调试日志,然后塞给大模型,祈求它这把能过。
抑或,在 Vibe Coding 爽撸一把之后,祈祷这把不会有 Bug。然而克鲁苏就是克鲁苏,Bug 不会因为你的诚意感天动地,就自动消失。曾经有科学家开玩笑, Bug 是唯一违反物理定律的东西,因为即便太阳系毁灭了,Bug 也会继续存在。
所以,我们在谈论小白 Vibe Coding 的时候,也是在讲 Vibe Debugging——请所有小白在尝试 Vibe Coding 之前,一定要清醒的明白一件事,很多时候你不是在编程,你只是在制造你无法解决的 Bug。这是我非常痛的领悟。
*想要减少 Bug 的出现,必须懂点软件工程*
小白之所以无法控制 Bug 的产生,我觉得原因和会不会编程语言的关系不大。
就我潜伏在 V2EX(中文最大的程序员线上社区)里观察,即使懂得编程语言,同样闯祸,很多时候还是一口大锅,搞得身边的同事恨不得给这种惹事精做开颅手术,瞧瞧脑袋里装的是啥。
就我的 Vibe Coding 经验而言,真正令 Bug 减少的,是软件工程里的常识。也是让我觉得 Vibe Coding 时,不再害怕 Bug 出现的关键飞跃。
Vibe Coding 领域的流行理论,从单纯的 Prompting 到 Context Prompting 再到现在的 Spec Programming,在我看来是毫不回头地朝着软件工程化的方向狂奔。
所以,你还觉得不必了解一点软件工程吗?
*想懂点软件工程,必须先拥有「组件化思维」*
想知道 Bug 发生在哪里,为什么发生,固然是可以将日志直接塞给大模型——这是 Vibe Coding 的标准做法。
但,难免会碰上大模型怎么改都改不好的克鲁苏级 Bug 出现。排查 Bug 的流程,首先肯定是定位问题。
此时,拥有组件化思维的小白,会尚未拥有的小白,差距会十分明显。因为,前者通过脑子里清晰的结构,很快地定位到问题发生的那一段代码,以及它的相关因素。而后者,往往只能看到一个函数报错,但他只能重复地把错误日志塞给大模型。
克鲁苏级 Bug 无法马上消灭,往往就藏在这个「相关因素」里。缺乏组件化思维,脑子里就缺了一张地图,无法找出这些个「相关因素」,那么,更不要说排查 Bug 了。这整个过程就好像排雷,雷通常是藏起来的,如果想全排除,只能用扫雷车一个地面都不放过地筛,但是如果连埋雷的地方都不知道,就谈不上排雷这件事了。
现在,问题来了,如何拥有「组件化思维」呢?别急,往下看。
*想懂「组件化思维」,必须了解基础概念「抽象*」
我们通常接触到「抽象」这个词,往往和「抽象思维」这个词组密不可分。抽象思维,说的是迅速寻找事物的共性,总结特征。
在计算机领域里,「抽象」也类似的含义,因为组件往往是由普通的代码抽象而来的,而这个抽象的过程,往往是因为代码当中存在着大量的重复。这些重复的部分,可以抽象成公共组件,为其它组件提供服务。
还有另外一种抽象,是明确代码的边界,比如说,这几个函数是为同一个目的服务的,那么它们只需要面向这个目的进行设计即可。你可以认为,软件其实是一个流水线,这个流水线由不同的工序组成,从原材料放进传送带开始,一直到变成成品从传送带离开,每一道工序都负责加工上一道工序所传递过来的半成品——在软件里,工厂流水线里每一道独立工序都可以视为「组件」。
实际上,现在的 Spec Programming 也不过是进化到,将软件里的所有组件也说清楚给大模型听,然后让大模型生成代码。
换言之,如果你有能力在文档里描述不同的组件的作用,以及它们相互之间的关系,如何配合,那么你已经具备 Spec Programming 的能力。
在设计组件的时候,软件开发领域的「DRY 原则」显得尤为重要,它有点像麦肯锡金字塔原理的「不重不漏」原则。每个组件必然不是重复的,而要让它们有机地写作,那么又缺一不可。
*请期待下一篇*
这一篇我已经说清楚非常基本的概念,这些概念对于小白来说是不可或缺的,必须掌握的背景知识。在这里我十分推荐《软件设计的哲学》这本书,它不长,但更好覆盖了必须了解的常识。
❤1
我又plan了一个9个人的出行计划。经常有人问我为什么出去玩总能找到那么多人?因为我需要他们,所以我会去争取他们加入我的阵营。
1⃣️首先一定要清楚自己想要什么,想去哪想做什么。那些上来就问有没有人出去玩或者有没有什么安排大概率是不会有人理会的,计划大概率会失败。
2⃣️带着完整的方案打动他们把他们争取进自己的阵营。找出一条路线,确定一个时间,规划好动车时间和民宿,就已经是一个完备的设计了。目的是为了确认计划的达成,确定好机酒,计划基本八九不离十了
3️⃣确定主题+任务分配。一定要让所有人有参与感以及有发挥的空间,这样的旅行才够印象深刻,才能有所投入当个事办
1⃣️首先一定要清楚自己想要什么,想去哪想做什么。那些上来就问有没有人出去玩或者有没有什么安排大概率是不会有人理会的,计划大概率会失败。
2⃣️带着完整的方案打动他们把他们争取进自己的阵营。找出一条路线,确定一个时间,规划好动车时间和民宿,就已经是一个完备的设计了。目的是为了确认计划的达成,确定好机酒,计划基本八九不离十了
3️⃣确定主题+任务分配。一定要让所有人有参与感以及有发挥的空间,这样的旅行才够印象深刻,才能有所投入当个事办
❤2
拉里·埃里森成为新首富了,罕见的,他和乔布斯、马斯克都是好朋友。甲骨文都快50年历史了,还可以一晚上几千亿美金涨幅,美股科技老巨头的动能真强啊。这三位也都证明了,一个离经叛道的人,同样可以创造和操盘地球上最牛的公司。
This media is not supported in your browser
VIEW IN TELEGRAM
Spotify 终于把「无损音频」上线!
等了八年,Premium 用户可享,无需额外付费,未来两个月会逐步覆盖 50 个市场,首批包括美、英、日、澳等地。
最高支持 24 位 / 44.1kHz FLAC,虽然规格不及 Apple Music 和 Tidal,但至少补上了音质短板。
有趣的是,到目前为止,YouTube 已成唯一还不支持无损传输的主流音乐流媒体平台。
原文🔗https://newsroom.spotify.com/2025-09-10/lossless-listening-arrives-on-spotify-premium-with-a-richer-more-detailed-listening-experience/
等了八年,Premium 用户可享,无需额外付费,未来两个月会逐步覆盖 50 个市场,首批包括美、英、日、澳等地。
最高支持 24 位 / 44.1kHz FLAC,虽然规格不及 Apple Music 和 Tidal,但至少补上了音质短板。
有趣的是,到目前为止,YouTube 已成唯一还不支持无损传输的主流音乐流媒体平台。
原文🔗https://newsroom.spotify.com/2025-09-10/lossless-listening-arrives-on-spotify-premium-with-a-richer-more-detailed-listening-experience/