我用AI完成了一个独立的项目!太🐂逼了!

背景#

大家好!我是开源网校系统 MeEdu 的作者。今天跟大家分享一个我和 AI 的协助经历。今年上半年,突然有一个想法,就是做一个免费的 SSL 证书签发和部署平台,这个平台主要解决云服务资源的 SSL 证书续签和部署的问题。有想法之后就开始调研,简单调研之后发现工作量还不小,虽然觉得这是一个不错的想法,但是想要实时的话成本较高,也就作罢。

契机#

不过在今年 9 月的一天,刷推特看到了有人分享 cursor 的视频,其实在这之前我也刷到过很多 cursor 的推荐不过都没有过多的关注,但是出于对 AI 的好奇,我还是点击那个视频进去看了下,视频 10 分钟不到,但是给我的印象非常深刻!看的过程中不得不惊叹 AI 竟然已经发展到这个地步。

于是,第二天我就里面下载了 cursor 体验了一把,几分钟就整出了 gin 的脚手架。体验之后,心情波动比较大,一方面是惊叹 AI 的进化实在太快,难免担心这以后让程序员如何混口饭吃;另一方面,AI 带来的低成本高效率的工作替代体验对于程序员来说简直就是外挂!以前脑子中各种想法在 AI 的帮助下完全可以低成本快速的上线 MVP 推出市场验证!于是,我们的第一款产品上线了。

17SSL#

17SSL 是一款定位于云服务资源 SSL 证书管理平台。它提供一键申请免费的 SSL 证书(由 Lets Encrypt 提供),一键部署证书到云服务资源(注入:点播、直播、CDN 等等)。

地址:www.17ssl.cn

现在注册完整微信绑定免费赠送四个证书额度!

解决的痛点:

  • 现有的免费 SSL 证书申请无法界面化操作,操作不友好 ⇒ 17SSL 提供界面化操作

  • 免费 SSL 证书只有 3 个月的有效期,一张证书一年要申请四次对应也需要部署四次 ⇒ 17SSL 提供证书的自动化申请、部署

  • 阿里云 / 腾讯云等云服务厂商限制了免费 SSL 证书每年的额度。现有的额度只够 5 个子域名用一年,更多的话就需要购买付费证书 ⇒ 17SSL 的成本只有付费证书的百分之一甚至更低

  • 忘记续签 SSL 证书的事情时有发生,大厂也不列外 ⇒ 17SSL 提供全流程的自动化!自动维护 Web 服务的 SSL 证书从而确保证书永不过期

AI 交互经验#

经验一:任务拆分#

AI 至少现阶段来说并不是万能的!不能直接对 AI 说帮我写一个 XXX 软件,然后就期望它给你直接写出来。所以,在使用 AI 之前,必须先明白 AI 能做到哪一步。这是非常重要的一个概念。

下个我举个例子说明下:

  • 第一步、首先,我的目标是要在 AI 的协助下开发一款 SSL 证书管理平台(下文就叫做 17SSL)。

  • 第二步、现在我要的做的是在充分理清楚业务的需求之后,做一个任务的拆分,拆分如下:

  • 模块一:用户注册 / 登录 / 密码找回

  • 任务一:确认数据结构,创建数据表

  • 任务二:基于数据表编写注册 / 登录等服务的 API

  • 任务三:设计交互界面

  • 任务四:对接 API 打通业务流程

  • 模块二:用户下订单 / 支付

  • 模块三:SSL 证书申请 / 验证 / 下载

按照上述对目标拆分任务后,就可以在 AI 协助下逐个的完成最终的小任务。小范围的任务是目前 AI 能够 hold 住的!

经验二:再拆分#

还是举个例子说明,比如说,现在我需要 AI 帮我完成邮箱注册的功能,我会这样跟 AI 说:


请在文件 auth.go 实现用户注册功能,要求如下:

1.首先,验证前端传递的参数 email,password 要求email必须是邮箱格式,长度不能超过60个字符串,password 的长度不少6位不能超过6位

2.校验参数之后,需要检查邮箱是否已经注册,方法实现请编写到 service/user.go

3.校验注册之后,创建用户 用户表是 model/user.go

4.增加限流的控制,同一个IP限制一天只能注册一个账号,请用 redis 实现

5.注册功能之后给邮箱发送一封欢迎注册的邮件,邮件发送可以参考 mail.go

上面我写了一大堆的需求恨不得 AI 能够一把完成我所有的要求。但是根据经验总结来说,写的越多 AI 发挥就越不稳定,也就是时好时坏。良好的实践应该是将这个提示词再做拆分,可以这样:


请在文件 auth.go 实现用户注册功能,要求如下:

1.首先,验证前端传递的参数 email,password 要求email必须是邮箱格式,长度不能超过60个字符串,password 的长度不少6位不能超过6位

2.校验参数之后,需要检查邮箱是否已经注册,方法实现请编写到 service/user.go

3.校验注册之后,创建用户 用户表是 model/user.go

增加限流的控制,同一个IP限制一天只能注册一个账号,请用redis实现

注册功能之后给邮箱发送一封欢迎注册的邮件,邮件发送可以参考 mail.go

做这样一个拆分之后,AI 的准确性会大大提高!

经验三:乘胜追击#

就目前来说 AI 的发挥并不是百分百稳定,这一部分取决于你编写的提示词;另一部分感觉完全就是看运气。当然就 Cursor+Claude-3.5-sonnet 来说稳定性已经非常 OK 了。但是,我还是想说,当你在和 AI 交互的时候,感觉心情愉悦心中全是 AI 真 TM 牛逼!太牛逼了!然后 AI 的发挥也超出你的想想,你的心中在惊叹,卧槽!AI 竟然比我考虑的还周到,这小代码写的,比我自己手敲更优美!

当你进入到这种状态,不要犹豫,立马乘胜追击,完成登录需求的任务之后,里面进入注册需求的编写,完成注册后,立马进入密码找回的需求编写!

我称之为这个状态是你和 AI 都进入了心流的状态。在这个状态下,你会发现短短几个小时能够完成没有 AI 前数天甚至数十天的工作量!

经验四:优先强类型语言#

为什么挑编程语言呢?举个例子:有这样一个场景,一个 PHP 项目,你跟 AI 正在讨论重构用户列表查询这个方法,此前这个方法是不提供参数过滤的,现在我们需要增加上 email 邮箱字段的过滤筛选,那么对应的 service.paginate 方法就新增传入邮箱的参数,也就意味着要重构这个方法。当你花了 30s 时间在 AI 的协助下新增了用户的邮箱筛选功能,打包代码上线。过了几个小时,就有用户反馈,通讯录接口奔溃了,报 500 错误。排查日志一看,卧槽,paginate 方法在通讯录的服务也有调用!

上述就是弱类型语言在 AI 编程下的一个隐患。如果将 PHP 更换为 Golang 的话,在编译阶段就能够发现此类问题。

经验五:立马购入升降桌#

AI 纪元下,已经不需要你伏着身子敲代码啦,你只需要以一个轻松的姿势和 AI 对话就可以了。这就意味着,站着办公更加轻松了,是时候改善腰间盘突出了!!!

展望#

  • 终生学习

  • 不要带有偏见,不管是对人还是对事物

  • 拥抱变化,在变化中快速做出选择

  • 人力成本骤降,天平倾向于发掘业务的更深层次的价值

开源教育系统 www.meedu.vip
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 22

ui 用的是什么?flux?shadcn?

4个月前 评论
滕勇志 (楼主) 4个月前
轻语过往 (作者) 4个月前
滕勇志 (楼主) 4个月前

可以做个开头,不会编程依旧很难用明白,AI 编程的前提就是你至少看得懂代码,知道代码怎样可以跑起来。我觉得 AI 在医疗,法律,文案,绘图各个领域都很有展望,只往编程看太小了。

4个月前 评论
滕勇志 (楼主) 4个月前
ononl (作者) 4个月前
滕勇志 (楼主) 4个月前
ononl (作者) 4个月前
滕勇志 (楼主) 4个月前
ononl (作者) 4个月前
working 3个月前
yangweijie

有个好像专门截图生成提示词的 cursor 收费的,有一个竟品免费

4个月前 评论
滕勇志 (楼主) 4个月前
翟宇鑫

cursor 现在日常使用 free 的吗?

4个月前 评论
滕勇志 (楼主) 3个月前

第一次用 cursor 真给我震惊了 ctrl+k ctrl+l 真是方便啊

4个月前 评论
滕勇志 (楼主) 3个月前

copycoder+cursor+v0 dev 谁用谁知道

3个月前 评论
臭鼬 3个月前

虽然看不懂,但是感觉很厉害,先插个眼

3个月前 评论

ssl 证书我用的 certbot 感觉很棒,写了个 crontab 可以自动续期。

3个月前 评论