RSS Zero 需求验证问卷
RSS Zero 是一个基于 RSS 的信息流推荐工具。持个性化推荐、多平台同步、自动发现、自定义配置、AI 大模型等功能。

0%

afdian-linker 技术选型与 Vercel 部署指南 | 2025 年第 21 周草梅周报

本文在 草梅友仁的博客 发布和更新,并在多个平台同步发布。如有更新,以博客上的版本为准。您也可以通过文末的 原文链接 查看最新版本。

前言

欢迎来到草梅周报!这是一个由草梅友仁基于 AI 整理的周报,旨在为您提供最新的博客更新、GitHub 动态、个人动态和其他周刊文章推荐等内容。


技术分享

afdian-linker 的开发工作已经告一段落,之前也分享了一些开发心得(详见:afdian-linker 正式发布 | 2025 年第 18 周草梅周报),因此现在来简单的做一下技术选型上的分享。

框架选型

从立项开始,afdian-linker 就确定了要能够在 Vercel 等云服务平台上部署的要求,因此在框架选型上,优先考虑可以部署在 Vercel 上的框架。

Vercel 为例, Vercel 平台支持的框架包括 Next.js、SvelteKit、Nuxt、Astro、Remix、Vite 等,基本上主流的 CSR 和 SSR 框架都能够支持。

其中又以 Vercel 官方出品的Next.js支持性最佳,支持 Vercel 平台全部的特性和功能。

image-20250525172423998

这也是为什么目前主流的无服务器部署方案都推荐使用 Next.js 开发,因为通过 Vercel 部署实在太方便了。

不过 Next.js 是基于 React 开发的,对 React 生态更加友好。

出于技术选型的偏好,个人还是选择了 Vue 生态下的 Nuxt 框架,对标 Next.js,该有的功能也基本上都有。

无论是 Next.js、Nuxt,还是其他框架,在开发上都是大同小异的,没有本质区别,选择自己喜欢的框架开发即可。

Next.js 和 Nuxt 框架都是全栈框架,即在一个项目中同时编写前端和后端代码,集成了网页开发和接口开发,对于中小型项目,可以极大的省去前后端联调的时间,也可以增加代码的复用,节约开发和部署的时间。

数据库选型

在选择完开发框架后,就要选择数据库了。

在 afdian-linker 中,是要记录用户和订单等数据的,所以需要一个数据库来存储这些数据。

由于前面已经选择了在 Vercel 部署项目,因此这里也选择 Vercel 提供的 PostgreSQL 数据库。

image-20250525175409011

注意:Vercel 平台的 PostgreSQL 数据库是由合作的第三方提供的,例如 Neon 和 Supabase 都提供了 PostgreSQL 数据库,详见 Neon plansSupabase pricing,分别有 500MB 和 256MB 大小。

当然,这里也稍微提一下其他类型的数据库。

由于本项目是要部署到云服务上的,没有固定的服务器,因此像 SQLite 这样的本地数据库就不再适用。不过如果是单机部署的话,那么也可以考虑使用 SQLite ,以节约数据库的空间。

就个人经验而言,大多数情况下,SQLite 的性能已经足以支撑小型项目的业务了,毕竟很多时候都没那么多的用户。

此外,还可考虑使用 MySQL ,不过相较于 PostgreSQL ,提供免费试用的 MySQL 的云服务商比较少,个人推荐两个: TiDBAiven for MySQL

但这两个服务商还各有各的问题,TiDB 虽然提供 5 个 5 GB 的兼容 MySQL 的分布式数据库集群(参考:Pricing Details),但正如官方所说,TiDB 并不是 MySQL ,也就是身说,不是完全兼容 MySQL 的,可能存在一些细节上的差异。由此带来的问题,需要小心调试。不过优点就是,TiDB 在国内可以直连,使用上还是比较方便的。

而 Aiven 就略显尴尬,Free plans 虽然提供免费的 1GB 的 PostgreSQL 和 MySQL 数据库(近期从 5GB 下调为 1GB 了),不过 Aiven 本身在国内无法直连,仅适合项目部署在境外服务器或云服务商时使用。

在本项目中,由于 Vercel 本身也是在境外的,因此可以使用 Aiven 的数据库

当然了,如果更喜欢 NoSQL 的话,也可以用MongoDB,官方也提供了 512 MB 的试用。

缓存数据库的选型上,毫无疑问的选择 Redis(Vercel 也提供了)。

项目开发

项目开发中的心得已在《afdian-linker 正式发布 | 2025 年第 18 周草梅周报》一文中进行了详细说明,此处不再赘述。

程序员使用 AI 工具写的项目水平,不会超过他自己水平的上限;反之,也不会低于自己水平的下限。

代码库中的代码质量,依旧是由程序员自己的水平决定的。

AI 工具的使用不会超越程序员自身的水平,但能显著提高效率。

开发总结

这次额外提一点,很多人以为在 AI 大模型出来后,就可以实现人人都能开发自己的软件,写自己的项目了。

这句话错也没错。

没错是因为,AI 大模型在客观上讲,将软件开发中存在技术难度的部分——代码编写——的开发难度大大降低了,可以通过自然语言去描述需求和写代码,这确实加快了很多写代码的速度。

不过,说它错,也是因为,一个完整的项目开发流程中,编码只是其中的一小部分,一个环节而已,并不代表全部。

仅以本文在之前描述的两个环节,框架选型和技术选型上,一个从未有过编程和项目部署经验的人,最大可能性是卡在哪一步呢?

答案是:在进入框架选型和技术选型前,就已经找不着方向了,因为真正的新人甚至不知道该从哪里开始。(这也是为什么出现了一些一站式集成开发的 AI 网站,提供从开发到部署的全流程服务)。

可以说,AI 大模型可以加速编程,其实是已经掌握了编程技能的程序员的特权。

此外,想必各位程序员也听说过这样一句话:接手一个老项目,往往重新开发会比接着写更快。

这是为什么呢?因为在项目开发的时候,不同的人往往有不同的思路,而接手别人的代码,就意味着要去理解当初写这段代码的思路,这实际上并不是一件容易的事情。除此之外,还有代码风格、编码习惯等小问题。

在我看来,AI 编程实际上相当于人类去接手 AI 编写的代码。虽然 AI 编写的代码质量不一定低,甚至还比人类高,但,能否让接手的人类可以理解,恐怕还是个问题。

从这个角度看,就可以理解为什么人类总是看不懂 AI 编写的代码了,因为那其实也相当于接手了 AI 开发的“屎山”。

为了避免或减少此类问题,还是需要人工手动审查 AI 编写的代码,及时纠正错误写法,或者要求 AI 重新编写。

项目部署

image-20250525183935662

在 Vercel 上部署项目是非常简单的,如果是自己的仓库的项目,只要直接import即可。

image-20250525184253679

如果是第三方项目,也只要导入对应的仓库地址即可。

此外,afdian-linker 还支持一键部署。

点击下方按钮一键部署到 Vercel。

Deploy with Vercel

image-20250525184215729

创建完项目后,就是修改构建命令和填写环境变量。

image-20250525184519065

一般来说,Vercel 默认的构建命令已经是可以用的了,无需特别修改即可正常运行。

如需修改,可以按实际情况改动。

image-20250525184625876

而环境变量,则按照文档说明填写即可。

修改环境变量之后记得重新部署

到这一步,一切顺利的话,项目已经可以正常运行了,可以尝试通过 Vercel 提供的默认域名进行访问。

以 afdian-linker 为例,可以通过 https://afdian-linker.vercel.app/ 访问(需要科学上网)

绑定域名

你可能会注意到,Vercel 提供的默认域名是无法直接访问的,vercel.app在国内无法直接连接,因此需要一个自己的域名用于直接访问。

此处不会赘述如何购买域名,可以自行在国内国外域名网站中购买(提供一个域名比价网:https://tld-list.com/)。

image-20250525185133924

在 Vercel 的 Domains 中进行配置即可。

修改函数区域

在 Vercel 部署的 Next.js、Nuxt 等全栈项目中,后端接口能力都是由 Vercel 的云函数(Vercel Functions)提供的,因此 Vercel Functions 的访问速度会直接影响用户体验。

image-20250525185600969

在 Vercel 的 Function Region 页面中,修改云函数的部署区域即可。

如果是面向国内用户,则建议部署在距离更近的香港地区。

面向哪个国家和地区的用户就把云函数部署在哪个国家和地区

修改部署区域之后记得重新部署

部署总结

虽然通过 Vercel 部署项目确实挺简单的,不过因为一些客观原因,想要访问 Vercel 却并不容易,这也是 AI 无法解决的问题。

可以说,在一个项目的完整流程中,只有从开发完毕到成功部署,才算真正完成了项目开发。

为什么只说是项目开发呢?因为一个真正的软件项目,只有真的投入使用后,才是一个切实可用的真实项目。

任何未经用户实际检验的项目,都只是开发者的练手项目而已。

如果算上这一步,可见,AI 大模型无法解决的问题会越来越多,这也就是为什么我说“有了 AI 大模型,也不等于人人都能开发自己的软件”,对软件工程还是要有一定的敬畏之心,对项目运营更要有敬畏之心。

以上就是本人对这次 AI 开发开源项目的一次简单的开发心得、技术选型和部署指南分享,如有错漏,欢迎指正。

最新 GitHub 加星仓库

  • CaoMeiYouRen starred cmd-generator - 2025-05-24 01:44:44
    该内容描述了一个通过点击按钮生成 CMD 命令的项目。主要编程语言为 TypeScript,项目在 GitHub 上获得了 27 个星标。
  • CaoMeiYouRen starred FFmpegFreeUI - 2025-05-24 01:44:11
    3FUI 是一款基于 ffmpeg 的 Windows 平台专业交互外壳,主要用于视频转码。该软件的开发动机源于对现有转码工具的不满,开发者希望通过自己的努力提供更好的解决方案。3FUI 使用 Visual Basic .NET 作为主要编程语言,并在 GitHub 上获得了 615 个星标。

其他博客或周刊推荐

阮一峰的网络日志

阿猫的博客

潮流周刊

二丫讲梵的学习周刊

总结

本周的更新和动态如上所示。感谢您的阅读!
您可以通过以下方式订阅草梅周报的更新:

往期回顾

本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/2025-21-caomei-weekly-afdian-linker-tech-selection-deployment-guide.html
版权声明:本文采用 CC BY-NC-SA 4.0 协议 进行分发,转载请注明出处!

坚持原创技术分享,您的支持将鼓励我继续创作!