一、背景
AI编程大肆兴起,Vibe coding在个人项目和快速开发中表现出色。刚好借助 AI 做一些有趣的事情
二、想法
想做一个网站,可以设定好下班时间,显示下班倒计时,并且每隔两小时鼓励我一下。基于这样的想法,说干就干。
三、实现方式
我把我的想法整理了一下
生成一个牛马上班倒计时的网页。
1. 用户可以输入下班时候,每个一个小时提醒一次用户:太棒了,还剩xxx时间就下班了
2. 每个两个小时鼓励一次用户,赞美她有工作了两个小时
3. 页面上要有两个图标,牛和马交替出现
并发给了腾讯元宝
元宝生成的代码可以直接运行
太丑了,于是乎,我重新设计了一下显示的页面,从让 AI 参考这个修改布局
它返回这样的
总感觉丑丑的,不是我想要的,于是我告诉它要怎么改,我希望牛马水平展现:
结果返回的牛马越界了,有点搞笑了
接下来,我有让他好好排排版,对齐了
结果排好版了,对齐了,但是时间它不让我修改了,只能固定 23:30,妈呀,每天23:30下班不得真是牛马了,这是肯定不能接受的
于是乎我又告诉它,下班时候要自己调,不要写死
结果终于符合想法了,还真不错,接下来就把代码复制一下,保存后缀为 html 的网页就可以了
接下啦就可以用 github 部署网站了,具体参考 docs.github.com/zh/pages/qu…
四、结果
这是部署好的网站,可以体验一下:shengjk.github.io/zhuzi.ai/
五、总结
AI 编程的核心是要把AI当做一个人,通过不变的沟通交流,达到最终的目的。下面是一个建议:
明确具体问题
- 简洁清晰 :尽量用简洁明了的语言描述你的问题。避免使用模糊或过于宽泛的表述。例如,不要只是问 “我这个代码为什么运行不了”,而是具体说明 “我在运行 Python 程序时,出现了一个错误提示‘IndexError: list index out of range’,我的代码是……,请问这是怎么回事?”。
- 提供上下文 :如果问题涉及到特定的项目背景、代码框架或者之前的开发过程,简单提及这些上下文信息。比如,“我在开发一个 Django 项目,现在想在用户登录模块添加一个验证码功能,但不知道如何在 Django 中实现验证码的生成和验证,能给我一些代码示例吗?”
指定编程语言和工具
- 明确语言 :如果你需要针对特定编程语言的解决方案,一定要在提示词中明确指出。例如,“我需要一个用 Java 实现的二叉树遍历算法”,而不是模糊地问“二叉树遍历算法”。
- 提及工具 :如果你使用了特定的开发工具或框架,也应提及。比如,“我在使用 React 框架开发前端页面,如何实现一个响应式的导航栏组件?”
描述期望的输出或结果
- 代码示例 :如果你希望 AI 提供代码示例,明确说明。例如,“请给我一个 Python 中实现冒泡排序的代码示例”。
- 解释说明 :如果需要对代码进行解释,也应指出。比如,“请解释一下这段代码中每个函数的作用”。
- 优化建议 :如果你希望 AI 对现有代码进行优化,说明你的目标。例如,“这段代码运行速度很慢,你能帮我优化一下,让它更高效吗?”
合理限制范围
- 避免过于复杂 :尽量避免一次性提出过于复杂或涉及多个问题的提示词。例如,不要问“请帮我设计一个完整的电商系统,包括前端、后端和数据库”。可以将问题分解为多个小问题,逐一提问。
- 分步骤提问 :对于复杂的任务,可以分步骤提问。例如,“首先,我需要一个用户注册的前端表单页面代码;然后,我需要后端接收注册信息并存储到数据库的代码;最后,我需要一个登录验证的代码。”
利用模板和结构化提示
- 问题模板 :可以创建一些常用的问题模板,方便快速提问。例如,“问题描述:……;相关代码:……;遇到的错误:……;期望的解决方案:……”。
- 结构化提示 :使用结构化的提示词,让 AI 更容易理解你的需求。例如,“我需要一个函数,输入参数是……,输出结果是……,请提供代码实现。”
反馈和调整
- 反馈结果 :如果 AI 提供的答案不符合你的预期,不要直接放弃。可以对结果进行反馈,比如,“这个代码看起来不错,但我想知道为什么这里要使用这个函数?”或者“这个解决方案有点复杂,有没有更简单的方法?”。
- 调整提示词 :根据 AI 的回答,调整你的提示词。如果 AI 的回答过于宽泛,可以进一步细化问题;如果回答过于简单,可以要求更详细的解释或更复杂的解决方案。