我用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
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 22

ui用的是什么?flux?shadcn?

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

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

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

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

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

cursor 现在日常使用 free 的吗?

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

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

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

copycoder+cursor+v0 dev谁用谁知道

2个月前 评论
臭鼬 1个月前

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

2个月前 评论

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

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!