在上一篇文章当中,我写道:我以一己之力(Vibe Coding)开发了一个网站。文章发布之后有一些同学很感兴趣,我决定把自身的经历(包含踩过的坑)和大家进一步分享下,能够起到不光授之以鱼,更能够授之以渔的作用。
如果你也想快速上手可以参照:
安装指引 https://daheiai.com/cc-install.html Claude Code 快速上手 https://www.bilibili.com/video/BV1NvRyBzEhq/?spm_id_from=333.337.search-card.all.click&vd_source=08d1be3672c809ac0ac9f6c0ea0b2abc streamlit 官方网站 https://streamlit.io
Vibe Coding 只是降低了编程的门槛,并不等于零门槛。今天再给大家讲一个实践中的案例,我开发的这个网站它的技术框架是通过 Python 的爬虫技术将多个异构系统的网页数据存储起到数据库当中。前端使用的是 streamlit 这个流行的 Python 框架。(其在数据分析领域久负盛名)。
我写了三个小爬虫(举例): 第 1 个小爬虫:到某个特定的系统当中将遗留任务抓取并存储下来。 第 2 个小爬虫:到 B 系统当中把当前的风险预警抓取下来。 第 3 个小爬虫:获取人员及所在的组织。
这三个小爬虫在分别编写的过程当中,为方便起见最初将数据以 Excel 或者 json 的方式进行本地存储,这样就形成了三个单独的文件。当全部调试通过之后。为了方便后续更加灵活的数据处理,可以将它们的方式优化成数据库方式存储,无论是采用 Sqllite3 还是使用 mysql,通过关系型数据库后续它们将有更大的扩展空间。
我使用这个框架默认的导航条开发了九个菜单,当我想要对这些菜单进行排序分类的时候发现出现了问题。我实际的应用场景是:
整个网站分为三大板块,我想用如下的方式进行展示(示意):
板块 A:包含- A1 - A2 - A3
板块 B:包含 - B1 - B2 - B3
我通过自然语言和大模型进行多次对话,尽管我已经讲得足够清楚了。大模型也自以为是、非常确定理解了我的表达,在这样的情况下,它通过多次的代码编写都实现不了这样的效果,要么是变成了。嵌套的二级菜单。要么是修改了之后完全不可用。在折腾了两三个小时之后。我想到了一个办法。
我通过 DeepSeek 的网页端,向它明确提出了这样的一个诉求,我希望实现一个什么样的效果,请他从官方文档当中找解决方案, DeepSeek 在搜索了官方文档之后,给我明确的答复。
标准框架是目前本身就是这样的局限,没有办法来实现。
如果想实现这样的效果,必须借助于第三方库的。由于我让大模型给出第三方库实现的示例代码,但显然第三方封示例代码并不能直接应用于我当前已经构建好的工程上,于是我就新建一个全新的工程,让大模型把每一种方案的 MVP 做出来,这样可确保 demo 是可用的。
再接下就简单了:让大模型依葫芦画瓢。
下一步让 CC 完全参照已经构建好的 demo 进行样式的迁移。在这样的情况之下。最终,达到了原本的实现效果。
通过这个例子,相信大家对于 MVP 这个概念有了更深刻的理解。
当然在解决这个样式问题的过程当中,我还发现了 streamlit 本身的一些 bug。当在同一台电脑上两个不同的文件夹新建起两个不同的工程时。当第 1 个工程为启动状态,第 2 个工程无论如何都没有办法正常的启动,虽然它们用的是完全相同的命令。
经过进一步的查找资料,发现原来 streamlit 本地存在强制缓存的情况。而这种情况单从报错日志来讲,提示的都是命令本身错误(其实命令是正确的)。无论你如何将日志发给大模型,它都没有办法做出正确的判断——大模型在这个死胡同反复尝试怎么都走不出来。
因为这就是框架本身存在的 bug,所以又回到上一篇文章中提到的观点:Vibe Coding 不是零门槛,如果我们不具备一定的 IT 基础,那以后遇到这样的场景就会非常头大,所以:
Vibe Coding 更像是锦上添花,而非雪中送炭。
因为公众号平台更改了推送规则。如果你不想错过内容,记得点下“赞”和“在看”,这样,每次新文章推送,就会第一时间出现在你的订阅号列表里了,另外如果你觉得本公众号的原创文章对你有所启发和帮助可以点击下方名片即可订阅,感谢你的关注,下一篇文章咱们再见。
夜雨聆风