一、项目需求
本文旨在通过豆包AI编程功能,实践开发一个RSS Web客户端。
项目需求如下:
- 界面简洁美观
- 内容精炼:每个RSS源仅显示最近3条记录,以避免信息过载。
- 友好展示:RSS记录的页面展示应同时对图文和中英文内容友好。
- 数据存储:为避免频繁访问源页面,程序需定时从RSS源抓取数据并存储到本地数据库。
豆包AI编程入口如下。
二、豆包AI编程实践
2.1 纯前端实现
在纯前端实现方案中,RSS源和抓取的网页数据被存储在浏览器的 LocalStorage 中。这种方式无法实现跨浏览器、跨用户或跨机器同步,仅适用于演示(demo)目的。该方案支持在豆包平台进行调试,并能生成完整的安装包文件供本地运行和调试。
下载到本地的好处在于,用户可以自行进行分发和部署,同时解决了某些网站需要科学上网才能访问的问题。
将生成的 html
文件下载到本地后,在同一目录下运行以下命令即可启动一个HTTP服务器:
python3 -m http.server 8000
AI生成和调试过程中,遇到了以下问题:
-
表单提交限制问题: 第一个版本的代码中,
form
表单提交存在限制。在遇到问题后,豆包的解决方案是将表单按钮类型从submit
改为button
,并通过 JavaScript 手动提交表单,从而避免了以下错误:Blocked form submission to '' because the form's frame is sandboxed and the 'allow-forms' permission is not set.
-
跨域问题: 由于前端代码需要访问不同的RSS源,会产生跨域问题。豆包平台的解决方案是使用第三方代理服务,例如
https://cors-anywhere.herokuapp.com/
,由代理服务器请求RSS源,并在返回给浏览器时声明允许跨域。不过这个访问是临时性的,需要测试时提前申请一个临时时间段,如下。
- 网络访问限制: 部分RSS源只能通过科学上网才能访问,这超出了豆包平台的处理范畴,需要用户自行解决。
2.2 前后端实现
豆包AI编程支持生成完整的全栈应用方案和代码,包括 Node.js 后端API和 MongoDB 数据库代码。但该方案不支持直接生成安装包下载,也不支持在平台进行调试。
Prompt提问过程中豆包回答如下:
由于平台限制,无法直接提供可下载的压缩包文件,但我可以提供一个一键生成完整项目文件的脚本,您只需复制执行即可在本地生成所有代码文件
虽然通过 shell 脚本生成所有的代码目录和文件这种方式显得有些原始,但在我的MacBook上测试后,它确实能正常运行。
生成的项目目录结构如下:
启动服务端
# shell生成项目目录和文件,假设shell文件名为genPrj.sh
chmod +x genPrj.sh
./genPrj.sh
# 进入后端目录
cd rss-client/server
# 安装依赖
npm install
# 启动MongoDB
brew update
# 安装mongoDB brew仓库
brew tap mongodb/brew
# 安装community最新版本
brew install mongodb-community
# 启动mongoDB服务
brew services start mongodb-community
# 启动后端服务(确保MongoDB已运行)
npm start
启动客户端
cd rss-client/client
# 启动前端应用服务
python3 -m http.server 8001
在浏览器中访问 http://localhost:8001
,验收成功!
三、总结
豆包AI编程的优势在于其前端项目的页面和代码生成能力、平台上的部署与调试功能,以及支持将安装包下载到本地进行部署和调试。生成的页面整体视觉效果也很不错。然而,纯前端的解决方案局限性较大,无法满足所有需求。
虽然它能生成可用的后端代码,但目前不支持在平台上进行部署和调试,也不支持直接生成本地代码安装包。
从长远来看,如果豆包能实现前后端一体化的代码生成、部署、调试,并支持本地安装包下载,甚至能对接像 Vercel 或 Cloudflare 这样的PaaS平台进行自动化部署,那么它的生态将更加完善,也必将吸引大量开发者。