
一个小项目,把项目说明 PROJECT . md、用户故事 PLAN . md、原型图 prototype ,都给到了 AI ( opus 4.5 ),希望 AI 能一次性长时间编码。
AI 倒是吭哧吭哧编码了 20 分钟,我满怀期待,结果一看,4 个前端 tab 页对应的 4 个功能,基本不能用。感觉就像一个不负责任的人,连自测都没有测过!
AI 编程出现的问题,并不是不能理解需求。第一次给它原型图,它从中抽取的功能点非常准。但实现时,有几个问题:
1 是有些要求它直接忽略了。比如我希望渲染一个节点网络,用户可以点击某节点,展开和收起它的相邻节点。这个功能描述,在原型中和 PLAN 中都是有的,但 AI 做的时候似乎直接忽略了。也许它做了,但功能没有用,看过程,它也是有自测的。
2 是prompt 不能描述所有的信息,没描述的 AI 可能就考虑不到。比如给每个节点添加了一个+号按钮,用来表示收起和展开,但拖拽节点时,这个+号按钮并不会跟随移动。
总结一下就是,长程编码任务,AI 不能很好的完成,总有挂一漏万的感觉,虽然都说要小步快跑,但是毕竟麻烦啊;而隐含的常识,AI 有欠缺,感觉必须非常详细的说明。
我现在对 AI 的感觉是,AI 修 bug ,编码单个功能,感觉是不在话下的。但涉及到长程的、意图推测的,就不太行。
回归到第一性原理,我尝试把 AI 编码过程,看作是一个在巨大的空间中,寻找解的过程。一个编程任务,就是要在这个巨大的多维空间中,寻找到一个解。
一旦从这个视角看,很多问题就容易理解了:
约束
解的空间是巨大的,要想办法快速找到解。
约束是在给定的空间内求解,剪枝,缩小搜索范围。
如果约束越多,解空间越小,理论上应该更容易找到解。但实践中:
约束太少 --> 解空间太大,AI 乱跑,找到的解不符合要求;
约束太多 --> 可能根本没有解(约束互相矛盾);
架构
因为一个任务,可能有非常多的解。
不同的架构其实对应了不同的区域的解。架构其实是将解的求解范围,约束在了一个范围区域。
所以架构很重要,要早确定。一旦确定了架构,后续的求解过程,就都在这个范围区域内进行了,除非用户手动要求调整架构,求解才会「经由用户指定的路径」跳转到另一块区域。
验证
验证和反馈,是一种修正的信息,让现有的解结合修正的信息,往正确的解集上靠。让不符合的解,走向正确的解。
全局和局部
代码的各个部分之间存在耦合,一些修改,可能会影响到很多地方。问了 AI ,说在修改一个"全局相关"的东西(效率、架构)时,实际上是在高维度上移动,这会同时影响很多低维度的投影。
而局部的 bug 修复,或单个功能的实现,是在低维度上移动,也就是在局部范围内寻找解,它的影响范围有限。
vibe coding 实践的对应物
Rules = 显式的全局约束,定义解空间的边界;
Skills = 预定义的子空间/模式,是已知的"好解区域";
Examples = 锚点,直接在解空间中标记"这里有解";
隐性知识
人类的隐性知识,其实也是对解的一种筛选或者约束。AI 没有这些隐性知识,或者没有实际用到它们,那就意味着求得的解不符合这些隐性约束。
不过,抽象的思考总是很容易,实践起来困难重重。
从上面的分析,得到的都是些 trivial 的东西,我感觉「架构要早行」这个印象比较深刻。但总的来说,仍然没有得到一个最佳实践。
最佳实践到底是什么啊?!
]]>使用 Open Spec 和 Agent Skills 来辅助进行新 feature 的开发。这种方式主要由前端同事在采用,我作为后端尝试后感觉效果一般。 编写大量 Prompt (主要是 Markdown 文档),让 AI 读取内容以执行具体任务,例如 Review 自己的代码、生成自动化测试脚本等。
我目前仍然以直接与 AI 对话为主,没有采用以上两种方式,因此想了解是否还有其他较好的实际使用方法可以提升效率。 注:我们的代码托管仍在 GitLab ,无法使用 GitHub 平台原生的 Code Review 集成功能。
]]>但现在 AI 来了之后,一切都变了,底层(技术能力)的开发者也能挥舞着 50 米的大刀,所以再过几年 AI 会一直淘汰一大批人,因为相当于金字塔底层变大了。
再想想之前没有 AI ,每一项技能都要认认真真学习才能掌握,一个普通开发者发展成能独自写出一个 nginx ,要经历九九八十一难,或者(对我)熟悉的播放器领域,研究 ffmpeg 的编解码,以及每个平台的颜色空间 API ,只有踏踏实实啃一遍,这些才能真正掌握。
但是有了 AI ,写不出一个 nginx 的人,通过 AI 也能搞一个出来。那么喜欢技术的人,会通过走这种捷径,减少学习和实践,最终阻碍往上爬,或者说看似在往上爬(技术能力),实际爬的比没有 AI 之前慢。
所以,大家预测下未来 10 年程序员技术分布会怎么样的?你们在 AI 来到之前和之后,对于技术的学习,有多大进步?
晚上睡不着总有奇怪的这些想法,想想这些东西也有助于睡眠。没别的原因(骗金币),大家的回答我都会看并且送上点赞。
]]>大语言模型确实是一项划时代的技术,它的技术边界也在不断的被突破,但是任何技术都是有边界的。 那些无脑吹捧 AI 编程的人,我很怀疑,他们是不是陷入一种“盲目的狂热”或者“拜 AI 教”。
一、编程的本质,计算机的范式(冯诺依曼架构)并没有发生改变。
有人将其类比为汇编到高级语言的进化,这是完全错误的。编程语言具备正交性,你的每次运行,结果是一致的。而大语言模型的结果是非正交性的,初始值的一点微小的改变,都会对结果产生巨大的影响。
编程和大语言模型在我看来,具有外在的相关性,但是本质上两者解决的是完全不同的两个问题,是求精确解和模糊解的的区别。
另外,现有的所谓代码生成,从本质上看,其实不过是将过去的 ctrl+c 、ctrl+v 自动化了,仍然是对现有解决方案的“复刻”。
二、从工程角度来看,ai 编程并没有降低开发的复杂度,而是从编码转移到了设计、验证等环节。
有人幻想,通过 ai 可以极大的降低软件开发的复杂度,这完全是幻想。
软件开发本质是对真实世界的投射和抽象,ai 编程可以降低一定的编码复杂度,但是它不可能降低真实世界的复杂度。
软件开发的真正复杂的地方也从来不是编码。
那些希望通过 ai 减轻码农负担的想法,终究是不现实的。别人花钱雇佣你,就是希望你来减轻复杂度的,如果你无法减少这种复杂度,或者有更廉价的方案,那别人雇佣你干什么呢?
当然,我不是建议大家不要学 ai,我反对的是那些只会简单的使用,却自鸣得意的。
我认为,应该从编写 agent 开始,真正的业务结合起来,而不是简单跑个页面,然后陷入一种虚假的自我满足。
]]>但是问题是,这玩意儿真要自己下手写的时候,完全不会!!!虽然能看懂,但是真的连语法都记不住。
整个项目写下来自己是感觉不到学会了任何东西的。过度依赖 AI 真的就相当于放弃了手写代码。离了 AI 完全不会写代码。
我不是说这样不行,但是这样真的行吗?我不确定啊!
]]>今天创建了 NSFW 节点后,很多人问我什么能发、什么不能发。说真的,其实我也不太清楚边界在哪里。
但这功能上线当天,真让我眼前一亮,有一种看着一个“巨型中文论坛”正在崛起的既视感。出于产品人的嗅觉,我觉得这事儿没表面看起来那么简单。
我认为站长把“创建节点”这个功能和 $V2EX 挂钩,肯定是更进一步,甚至说是更激进的商业化尝试——这也印证了大家多次提到的“Reddit 化”和“Discord 化”。
所以我创建这两个节点(副业 和 NSFW )的底层逻辑,完全是冲着极致商业化与实验性质去考虑的,并非因为我真的是这两个领域的专家。
基于此,我倾向于认为:未来的节点应该是由创建者自己管理的。
当然,创建的节点到底受哪些规则约束,现在谁也不敢下定论,我猜包括 Livid 自己也在观望该功能的未来走向。
我个人感觉,如果在“下放权限”与“保留限制”之间找到平衡,别搞得那么死板,对于整个论坛的规模以及 $V2EX 的价值支撑都是很良性的。(现在的$v2ex 价值说明了这一点)
包括下面的一些个人建议: 1 、更详细的单节点版规(包括更明确的整站逻辑)
2 、针对单个板块的注册逻辑
3 、置顶、精华、分类、标签
4 、增加更多针对板块的消耗场景,比如:
1)支持版面自己售卖虚拟商品,通过收款$v2ex 来出售
2)支持版面设置自己的置顶,高量
3)称号系统
4)装饰
5)自助通过$v2ex 购买广告位
我手上的币虽然接近 1000 刀,投入不算多,但也算是一张看好本站未来发展的“投票”了。打算至少捏 1 年以上(也算入股了😂)
让子弹飞一会儿吧。
]]>首先, 我可能会在奇思妙想节点中分享我的点子, 根据反馈决定自己的产品方向.
有了产品方向, 我就准备快速做出一个 mvp 版本, 但是开发过程中难免会遇到一些问题, 有些问题可以在网上找到答案, 但有些非标的问题却会困扰我很久.
那么我可能会在问与答节点中问这些困扰我的问题, 比如国外怎么收款? 比如兑换码怎么设计更合理? 比如交易系统如何削峰? 等等我开发过程中遇到的问题.
开发过程中困扰我的问题在站内 V 友的热情讨论下基本解决掉了, 我终于实现了一个简单的 mvp 版本, 我想进行小范围的推广验证
那么我可能会在分享创造节点分享我的 mvp 作品, 请大家来体验反馈
拿到了热心 V 友们的反馈, 我开始了快速的迭代开发, 终于把产品雏形打磨出来了, 我现在需要更大范围的推广
那么我可能会去持有一些$V2EX来开通帖子的置顶权限, 花费一些铜币让更多的 V 友看到我的产品. 还可能会去赞助一下 V 站来解锁 Pro 会员权限, 获得投放广告的功能权限, 让 V 友们的每次刷新都有可能刷到我的产品.
推广的结果很不错, 但是我现在需要一个渠道来和用户进行交互, 方便我快速的感知核心用户的迫切需求. 自建一个社区不是一个现实的方案, discard 看起来不错, 但是信噪比有一些高, 很多无用的 spam 会牵扯我太多的精力.
那么我可能会持有 50000$V2EX来解锁自建节点功能, 我的用户们可以在这个节点里面讨论关于我产品的一切, 讨论的过程也会在 V2EX 的首页显示, 获得了更多新用户的关注.
我的产品用户和需求越来越多, 慢慢的我打算组建一个团队来维护这个产品, 但是 Boss 直聘上的假信息又太多了.
随着产品的火爆, 市场上的竞品也开始变多了, 我还不想放弃我亲手打造出来的这个产品, 所以我开始寻求融资
那么我可能会在天使投资节点发帖子寻找融资渠道, 或者需求一些融资建议.
随着融资的稳步推进, 产品的市占率也是稳步增长, 已经从一个青涩开发者成长为一个合格管理者的我, 在Joe's Talk 节点上邀请你来一起讨论:

]]>
]]> 之前 nodes API 的设计没有考虑到现在由用户创建的 nodes 列表可能会频繁发生变化,有一个 7200 秒的缓存。
这个问题刚刚做了调整。
]]>