linux.do
20.9K subscribers
112K photos
195 videos
113 files
243K links
linux.do最新话题和热议话题
Download Telegram
【木子狸的Vibe Coding随笔】03 优雅

最近很忙,写的很慢。写这个比做项目和教程难多了。

然后如果想看实操可以看 【木子狸的指北指南】01 Octopus 的部署与使用 系列。

前两篇随笔,聊了“贵族专制”——即作开发者对架构的绝对主权,也聊了“拒绝的艺术”——即学会对 AI 生成的代码说不。这次讲讲优雅的代码。也算是如何进行具体实现。不过也是原理方向的,不会在此系列做具体的详细项目过程。

问题

代码的维护,在 AI 时代越发困难。正如我在 【木子狸的Vibe Coding随笔】序——既是草稿,也是成品 中谈到,当我们在某一时刻试图修改/添加一个微小的逻辑时,修改的代码便会,牵一发而动全身。这是我们为什么需要约束,同时需要优雅的代码。

优雅只是为了保证产品和你自身的生存。

管道与原子工具
“让每个程序就做好一件事。如果有新任务,就重新开始,不要往原程序中加入新功能而搞得复杂。”
Unix/Linux 中,ls 用于列出文件,grep用于查找文本,wc用于计数,每个命令有着自己专门负责的功能。单独看可能很简单,但是像搭积木一样的管道组合能带来无穷的威力。

现状

我们在 Vibe Coding 的时候都有一种通病——贪婪。我们希望有比没有好。我们往往会给出一个宏大的提示词。比如“帮我写一个贪吃蛇游戏,要有积分系统,要有排行榜,要能换皮肤,还要适配移动端。”

你要 AI 就给。 AI 一次性负责了逻辑,交互,适配,架构。试图在有限的上下文中,满足我们无限的欲望。

这一行为产生的代码,在《代码整洁之道》中,被称为“上帝对象”——一种承担了过多责任,规模过大的代码。这种代码违反了单一责任原则。你可以将其看作一个眼不见心不烦的抽屉,将所有东西都扔进去。

在 Vibe Coding 中,除非你完全不在乎可维护性,同时坚信模型能力的提升速度能超过你出现问题的速度。不然一旦逻辑出错,AI 生成的黑盒代码会使人无从下手。

解决?

一个优雅的软件是可以拆分为各种更小的原子化工具的。也就是说模块化的,它要求每个部分都足够简单,力求一眼看穿。

所以我们得强迫 AI 遵循这种物理层面的约束。 比如:

● 工具 A: 只负责计算坐标的“纯逻辑函数”。它不关心屏幕长什么样,只负责 (x, y) + direction = new (x, y)
● 工具 B: 只负责把一组坐标数组“映射”成 Canvas 像素。它不关心游戏逻辑,只负责画框。
● 工具 C: 只负责监听键盘并把按键翻译成“方向信号”。

这种优雅,本质上是对复杂性的分而治之。

文本
“期待每个程序的输出都会成为另一个程序的输入… 弃用二进制格式,文本流才是一切。”
这个想法和我的 【木子狸的随机思考】01 狸OS 不谋而合。在 Unix 的管道里,无论 ls 还是 grep,它们之间交流的语言永远是简单的、直观的文本。

现在 Markdown 也是好起来了,让不怎么接触的人也用上了。这种格式真的算是 AI 的宝藏,方便人进行操作,也方便 AI 读取。
现在我的 狸OS 便是使用了 Markdown 进行了构建,结合自己写的 CLI 用于操作汇总整合。我能看见我做了什么,AI 做了什么,脚本做了什么。我给 AI 了一个专门记录的 Markdown,用于记录我让 AI 干了什么,遇见了什么问题,我和 AI 是一起怎么解决的。
我让 AI 输出 JSON 格式,然后调用我的 CLI,使用规范的脚本和JSON数据,对 Markdown 进行可复现的增删改查,而非 AI 直接读取然后输出。

机制与策略
“策略同机制分离,接口同引擎分离。”
简单来说,机制(Mechanism)是“怎么做”,策略(Policy)是“做什么”。

AI 擅长机制:它知道怎么调 API、怎么写循环、怎么做正向或反向的算法。
而我们必须掌控策略:业务逻辑该怎么走,什么时候该报错,什么时候该跳过。

最平庸的代码,是把策略硬编码在机制里。比如 AI 写的发送邮件功能,里面混杂了“只有 VIP 才能发”的判断。 优雅的做法是: 让 AI 造一个纯粹的、没有任何主见的“发送功能”(机制),而“谁能发、什么时候发”的规则(策略)由我们通过配置文件或简单的逻辑注入。

我们的策略决定了工具使用的方向——当机制足够纯粹时,用户就能通过组合创造出开发者意想不到的用法。这也是 Vim 等工具能被用户玩出花的原因:它们提供了足够优雅的机制,没有限制用户的策略。

最近也是越来越喜欢 CLI/TUI 这种工具了。

----------------------

也是个千字小短篇

来交流啊,随时问我都行。思考是在交流反驳中相互印证的。

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: 木子不是木子狸)

Invalid media:
image
image
gpt 5.3大家用起来咋样

普号是不是没有5.3,team号是有的么,打算买一号来组个号池用一下。就是不知道效果相比opus5.6咋样?

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: 罗峰)
LDC怎么退款,发货的时候 邀请码已经过期了,联系卖家也联系不上

??
7 posts - 5 participants

Read full topic

via LINUX DO - 最新话题 (author: Coding)

Invalid media: image
在此,感谢邀请者感谢平台 让我获得不二之选

这个二周年,我以为都十年了,资源怎么这么多啊

不二之选

感恩有你!社区成立二周年纪念徽章。

3 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: 奈洛)
各位可否派出己方最强AI,共同迎战这道高中物理压轴题

如上两图所示,经多种模型测试(Gemini 3.0 Pro 与 GPT 5.2 High),均未能答对第三小问,所得结果均为L=0 ,与标准答案不一致

各位可否有兴趣,派出自己的AI迎战此题

我目前认为,Gemini系列应该没有模型能成功做出,Claude系列希望应该也不大,唯一有可能做出来的,只有GPT了

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: 宇宙宙长)

Invalid media:
image
image
Kiro power渠道没有了嘛?

Select users and groups with Amazon Q Developer Pro subscriptions to be upgrade to Kiro,今天看大佬发的kiro power渠道现在订阅还需要开通Amazon Q Developer,有大佬知道怎么解决嘛?或者怎么订阅这个。
1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: 小周)

Invalid media: image
求大学无机化学、有机化学、物理化学、高数的纯自学教材

高考选志愿的时候头也不回地跳进了化学这天坑,然后由于高中化学基础不是非常扎实,加之高考后已经把已经学过的全部内容忘得差不多了,导致我现在成绩不咋样,也就只能维持在不挂科的状态了……
于是想在假期里多学一点,毕竟我也确实对化学有点兴趣。
想问下佬友有没有比较好的有机化学、物理化学、无机化学、高等数学的教材推荐下,想自学。
另外,个人感觉仅有教材而无刷题的教辅可能不太适合备考研。想问下佬友还有没有相应的刷题资料或相关教辅推荐下呢?

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: Gramerch)
放假过年又一年

突然觉得一年一年的时间好快,一年又一年的复制一样的日子,没劲。

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: feeler1001)
【旧闻】长期NSFW内容会被豆姐封号

我还是第一次见,搜了一下小红书确实有大量案例,主要常见在角色扮演写🥩文被多次警告依旧发送后封号 👋

6 posts - 5 participants

Read full topic

via LINUX DO - 最新话题 (author: 雪梨纽西兰希思露甘奶迪)

Invalid media: image
如何使用飞书远程操作CC【小白向】

分享我如何实现利用手机飞书远程控制电脑桌面上的终端,实现利用cc进行开发。因为我本身不是做开发的,只是一只小产品,所以我会尽可能用最白话的方式,描述整个实现的经过,供大家参考。
🤔 前因后果是,我的openclaw在配置完飞书后,闲置了一段时间,突然昨天心血来潮想试试用它来远程控制我的终端打开cc来助我coding。但发现两个问题:

1. 我在飞书上命令openclaw:打开桌面的终端并在命令行输入claude,启动cc,它告诉我“已经打开了cc,会话id是xxx,等待输入任务”。然后我就懵了,因为我盯着桌面,界面没有任何反馈,就问它:我咋没看见有什么终端被打开了?它告诉我:它自己在内部打开了一个终端,他可以监控以及操作,但是我是看不到界面的。
2. 我手动打开一个终端,然后在飞书上命令openclaw:打开桌面的终端并在命令行输入claude,启动cc,它告诉我“我无法获取会话id,也无法操作你打开的终端”。

👨‍💻 总结以上这两个场景:

1. 我打开的终端,openclaw无法获取到,且无法对其进行操作
2. openclaw打开的终端,它可以监控及操作,但是我看不到,只能单纯在飞书上接收到他反馈的当前进度

那么问题来了,我怎么实现:既能让openclaw能打开一个我眼睛能看到终端窗口,我又能在飞书上发指令让他在这个终端里输入内容并发送,以及帮我监控这个终端进程呢?

于是我就和我的cc沟通:我想实现这个既能看到终端窗口,又能让openclaw监控和控制它。然后cc就啪啦啪啦给了我3个方案,我们就挑重点说,最后一个方案就是通过windows+wsl的方式。好到这里不懂wsl的朋友别有压力,因为我也不懂(嘿嘿)。

然后我就问cc:啥是wsl?给我解释的通俗点。

cc就告诉我,wsl就是在windows上的linux系统。我就就懵了,问它:是类似于虚拟机那种?类似于在windows里装个mac,mac里装个windows?

cc说:不是不是,wsl安装完后,在你的window看来,打开wsl后只是在你的windows上打开了一个小窗口,完全不影响你在windows上的其他操作,也不存在两个系统来回切换。你在windows上的所有文件和软件依旧存在。除了linux系统下专属的一些环境呀以及一些开发工具(这里主要是wsl中的cc)需要重新装,其他完全不需要。

这里我也给大家截了一张安装完wsl后的图,让我打个比方的话,其他给我的感觉就是给你装了一个磁盘,所以也可以侧面印证cc说的。

🤔 至于怎么安装这个wsl?
刚刚我不是和cc沟通方案了嘛,就直接让cc帮你执行就可以了,剩下的事情就是等wsl安装完。

有了wsl以后,这下openclaw就可以在这个wsl的linux环境里去打开可见的终端了,并且可以监视和控制这个终端。剩下的就是如何调教openclaw准确无误地打开wsl中的终端就行,这里就不多展开赘述,可以简单提一下,要不就是将打开wsl的终端这件事更新到它的记忆中,或者直接包成一个skill也未尝不可。

最后放几张测试的截图吧 😀

因为本经验贴完全是从一个非专业开发的产品视角描述的,如果有什么表述或者是专业知识上的不严谨,也欢迎评论区大佬多多敲打我,感谢大家 🤣

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: 三三)

Invalid media:
image
image
image
image
image
image
想给爸妈换个手机,佬友们给推荐一下呢,预算1000-1500

父母年龄 60 左右 就是日常使用加 刷刷抖音 一千到一千五
母亲之前用的是小米系统,父亲之前用的是荣耀的系统

当前看了 redmi turbo 4,redmi note 15 PRO,荣耀 x 70,iqoo z10 turbo,荣耀 gt,vivo Y500,oppok12s

求佬们帮忙推荐下 当前不知道如何抉择了(不再上述机型中也可)

16 posts - 10 participants

Read full topic

via LINUX DO - 最新话题 (author: ruixuey)
关于openclaw的问题

联网搜索只能用brave api吗?我用了一天,它就额度用完了,个位佬,有没有其他办法?

9 posts - 4 participants

Read full topic

via LINUX DO - 最新话题 (author: lqingsheng99)
Cherry Studio Bug求助

最近使用cs的搜索功能,一直报错,用的Tavily,连通性测试正常,控制台中search接口的response也有内容,但是就是报错,换Google,bing,百度都是一样的报错,有佬友遇到同样的问题吗

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: bopomofo)

Invalid media:
image
image
分享各个平台的红包

在微信搜索栏搜索“易成点外卖”,包含各个平台,美团外卖,淘宝闪购等红包,欢迎大家来抢红包

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: Cris)
话说反重力403该怎么解决

需要接码手机号,两个手机号都被限制,看了68sms,谷歌还在疯控,不太敢买

3 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: jie37)
各位佬觉得kimi 2.5更适合用在什么领域呢

看排名是挺高的,买了个体验套餐感觉就是比glm和minimax额度更低一些,还有个周使用限制,想听听佬的意见,个人主要用在编程

6 posts - 5 participants

Read full topic

via LINUX DO - 最新话题 (author: 西葫芦炒鸡蛋)
废旧电脑怎么处理

我有一个2013年买的笔记本 联想Y500 现在屏幕周围都已经脱胶了 电脑闲置之前是可以正常启动的 现在除了卖废品外 还有其他废物利用的方法吗 🙃

8 posts - 6 participants

Read full topic

via LINUX DO - 最新话题 (author: oaiXdoG)
中奖啦 !gpt team~ 传递一下好运~

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: ryan.h_h)

Invalid media: image
王者荣耀 小马糕

wz.bocchi.vip

王者荣耀灵宝集市码高价分享实时更新

网站直接套用的之前一个佬友的,不过他已经开始收费了 😄

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: 波奇酱)

Invalid media: image
【求推荐相机】拍出胶片复古风照片的相机

本人摄影小白,有没有大佬推荐一款拍照很有胶片复古风格的相机,但是不想要胶片相机
1、尤其喜欢拍人像,色彩亮丽一些更好
2、预算五六千以内
3、轻量便携,最好不超过三四百克

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: jiangwanyin)
模型在cherry studio如何开启思考?

很多公益站/中转的模型在cherry studio似乎没法开启思考,或者没有thinking的窗口,是我设置的问题吗?比如hotaru站点的模型标签是有思考的,但实际对话没有thinking。求助各位佬平时使用cherry的设置 🧐

8 posts - 4 participants

Read full topic

via LINUX DO - 最新话题 (author: durance)

Invalid media: image