技术 ·

第一次写 Tech Blog 之梦到什么写什么


TL;DR

全栈开发,一定一定不要先写前端再写后端,先写后端逻辑将要渲染什么数据确定,前端编写就顺理成章的完成了

开发遇到的问题

Vibe Coding 时候,很多时间花费在了调整前端样式上面,当然我不回避品味问题,品味就是要一点一点调整的,重大流程问题出在了前后端衔接数据渲染上面,AI 出的前端原型总是会出现过度设计,我的工作流程往往是先写 HTML 然后才会设计后端接口,很多开发的新功能时候先写前端会浪费大量时间,应该先设计后端 API 接口数据,要先想好,渲染什么数据,才决定前端如何显示

关于前端开发

前端编写的前提是先确定好后端要渲染什么数据这也是上一章节问题中一再强调的事情,只有设计好的后端渲染的数据才能保证前端不过度设计,添加一些本不需要的逻辑和数据

自己的最佳实践一些拙见,选好框架,可以是 ai-elements 也可以是 assistant-ui,也可以是 shadcn/ui,作为最基础的 AI 前端框架骨架层代码,Vibe Coding 最累人的地方是品味,因为大家用的都是同一个框架渲染出来的内容在很多程度上同样的丑陋,同样的没品,当然我也不是说我多有品味,因为我也抽卡,安装了这些组件,不要直接用组件来直接编写生产代码,先在项目的 design/ 文件夹下编写某个功能的 HTML 版本来创建三个不同的设计方向,可以去选哪些设计方向是想要的,只有两种结果,某个方向是想要的/三个方向都差强人意,可以继续抽卡或者粘贴某个 SaaS 平台或者产品的截图继续生成想要的设计方案,设计方向觉得 OK 想继续看一些不同细节的不同设计,根据设计方向写几种 HTML 变体,一切准备就绪即可应用于生产代码组件中

随着项目的迭代代码规模逐渐变大,新的功能会越来越多,遵循上述设计开发流程 design 文件夹下会有很多内容,如何沿用之前的设计偏好和风格来开发新的 feature?让 AI 阅读 design 文件夹下的内容整理总结设计风格和原语,后续可以复用已有的通用型资产,下一阶段新设计参考这些原语(Design Primitive),产品整体基调基本定型同时也会减少样式设计中抽卡失败的概率

还有另一种路径,项目创建之前提前设计好原语,而不是从项目开发过程中派生。提前定制化项目设计前端原语,确定好以下几点,项目主要功能,面向受众群体,简约风格 or 流媒体风格 etc.,预设的功能,交互的方式,AI 会参考功能和预期方向设计原语和风格定下基调,这需要对项目规划有一个整体的预先评估和规划,这个方法才会发挥更好的作用,如果自己都没想清楚要做什么那么我认为这不是一个很好的起点

Flue 框架引发的 agent harness 是否已经是过去式的思考

Flue 这个框架是基于 Pi Coding Agent 这个框架之上写的一个可以自由定义并且集群化 agent 的开源框架,Vercel 也推出了相关的产品,是 Eve,但是 Eve 强绑定 Vercel 平台化能力,依赖 Vercel 的 sandbox,意味着你必须强行绑定 Vercel 生态,很多强绑定的其实风险很大,例如最近的 Fable 5 禁令包括 GPT-5.6 的延期推迟,很多都意味着自研能力包括开源的重要性,研究了一个多月的 Agent Sandbox,本来以为 Daytona Sandbox 是很好的开源解决方案,但是这周也走向了闭源,GitHub 最新提交全删了不再维护,我感觉又要转向 E2B sandbox 了,无论是软件还是 model 虽然我认为优秀的开源项目不少,但是还是要读一些底层实现原理,因为很多开着开着就会闭源,逐渐走向商业化,这是趋势也是必然,也能理解

当然为了说 Flue 这个框架,谈起开源并不是重点,而是想说,根据现在 model 的能力我认为 harness 并不是重点了,因为给一个 Bash 工具,还有一些根据项目需要的特定工具在一个给定的环境下,AI 基本上能够完成 80% 的任务,之前 Claude Code 源码泄露,暴露了很多 harness 工程的一些细节,但是 Pi Coding Agent 中学到的内容是,简单的工具,也能实现几乎与闭源框架同样的性能,也许下一阶段的走向,不是 harness engineer,现在软件越来越像一个黑盒,之前我们说 model 参数量太大,可解释性低,现在软件似乎也朝着这个方向发展,很多都是一句话生成,自然语言编程,很多人不知道底层逻辑,只知道这个 feature works 了,nobody cares about the detail,AI generation 速度越来越快,代码量越来越多,是个人都审不过来,这很正常,我也承认这是趋势,未来我不知道软件会怎么发展,总是有一种感觉软件也逐渐像一个可优化可梯度下降的趋势在发展,就像是在训练 model

又扯远了,Flue 使用下来给我的体感就是给一个 goal 优化方向然后 run run run wait output,没人关心怎么执行的中间过程,这是我最初使用 Flue 的体验,也许最佳使用场景是 PR 审核,issue 回复,长时任务执行

Flue 定义 agent 更像是雇了一个人专门干一件事的感觉,只不过 Flue 提供的能力就是,只需提供 skills 只需提供工具,然后其他交给 agent 这个发动机执行


写在最后,感觉自己写作能力下降了不少,后面还需要多写一些手敲的东西,渐渐恢复表达能力,即使是 AI 润色过的内容我也会标记出来,给出原始手敲的原始稿