我的 Vibe Coding 的第一个项目
大家好,我是 Immerse,一名独立开发者、内容创作者。
- 关注公众号:#沉浸式趣谈,获取最新文章(更多内容只在公众号更新)
- 个人网站:
https://yaolifeng.com也同步更新。 - 转载请在文章开头注明出处和版权信息。
我会在这里分享关于编程、独立开发、AI干货、开源、个人思考等内容。
如果本文对您有所帮助,欢迎动动小手指一键三连(点赞、评论、转发),给我一些支持和鼓励,谢谢!
作为一名开发者,大家都会面临长时间 Coding 忘记休息,忘记喝水。我们也都知道这其中的危害,但在工作中却很难自觉地执行这些健康习惯。已经有多位同事因长期久坐出现肾结石等健康问题。
基于这个真实的小痛点,尝试用 Vibe Coding 方式开发一个健康提醒插件
Health Reminder:一个极简的 VS Code 插件,提供久坐和喝水的强制提醒功能。
这个项目的价值不仅在于插件本身,更在于展示如何利用 AI 从零开始快速构建有实际应用价值的工具。
GitHub:https://github.com/yaolifeng0629/Health-Reminder
插件市场:https://marketplace.visualstudio.com/items?itemName=Immerse.health-reminder
Vibe Coding 开发全流程详解
Vibe Coding 是什么?
可以直接翻译为“氛围编程”,不是简单的让 AI 按照你的命令去写代码,而是结合你的规划、直觉和迭代的一种新型开发方式。
但我个人觉得它是一种通过自然语言与AI共同协作完成编程任务的一种新的开发方式。不同于之前的的" Ctrl C、V 代码片段",它更像是你与一个资深的开发小伙伴结对编程,只不过这个小伙伴变成了 AI。
下面我会分享初次体验 Vibe Coding 这个开发流程
1. Requirements & Plan
我用自然语言描述了核心功能,让 Gemini 2.5 Pro 帮我扩展和完善。
这个阶段的关键是将模糊的想法转化为结构化的功能需求。与之前不同的是,我不需要再写详细产品交互文档,只需要描述核心功能和使用的场景
你给我一款VSCode插件,其核心功能:久坐、喝水强制提醒。
**核心功能 (Core Functionality):**
1. **独立计时器 (Independent Timers):**
* **久坐计时器:** 跟踪上次提醒后或开始工作后的时间。
* **喝水计时器:** 跟踪上次提醒后或开始工作后的时间。
* **自动重置:** 每次提醒触发并被用户“确认”后,对应计时器自动重置。
2. **强制性全屏提醒弹窗 (Mandatory Full-Screen Reminder Pop-up):**
* 当任一计时器达到预设阈值时,自动在 VS Code/Cursor 界面上方弹出一个 **全屏或占据大部分屏幕、不可关闭** 的模态窗口。
* **UI 锁定:** 此窗口必须完全覆盖编辑器界面,并暂时禁用所有键盘输入和鼠标操作,直到用户进行互动。
* **提醒信息:** 窗口内显示明确、简洁的提醒信息:
* 久坐提醒时显示:“该起身活动了!”或“休息一下眼睛,伸展身体。”
* 喝水提醒时显示:“该喝水了!”或“补充水分,保持健康。”
* **强制确认按钮:** 窗口底部必须有一个明确的按钮,如“我知道了”、“已休息”或“已喝水”。用户 **必须点击** 此按钮,才能关闭弹窗、解除 UI 锁定,并重置相应的计时器。
* **(可选但推荐)短暂延迟:** 弹窗出现后,可在确认按钮激活前强制用户等待 3-5 秒,以确保提醒被注意到。
3. **极简配置 (Minimal Configuration):**
* 通过 VS Code/Cursor 的设置 (`settings.json`) 或图形化设置界面,仅提供以下关键配置项:
* **久坐提醒间隔 (Sit Reminder Interval):** 默认 60 分钟,可调整(单位:分钟)。
* **喝水提醒间隔 (Drink Reminder Interval):** 默认 45 分钟,可调整(单位:分钟)。
* **启用/禁用提醒 (Enable/Disable Reminders):** 可单独开启/关闭久坐提醒和喝水提醒。
这个步骤 AI 会根据扩展的功能需求,开始给我实现初步的功能代码。
2. Debug & Testing
直接按 F5 选择 VS Code Extension 启动调试,在新 VS Code 窗口中体验和测试功能。
3. 打包与发布
调试验证无误后,使用 vsce 工具打包插件:
npm install -g @vscode/vsce # 安装打包工具
vsce package # 打包插件
生成的 .vsix 文件就是插件安装包。
最后,在 VS Code Marketplace 上创建账号,然后发布插件。
整个过程出人意料地顺利。
Vibe Coding 体验心得
1. 角色的转变
传统开发中,需要在多个角色间切换:需求分析师、架构师、开发者、测试员等。而在 Vibe Coding 中,AI 能够同时扮演多个角色,让开发过程更加流畅。
2. 自然语言的局限
用自然语言描述需求和问题,对于一些小细节地方的处理可能还是不够完善,需要人为多次介入。
GitHub:https://github.com/yaolifeng0629/Health-Reminder
插件市场:https://marketplace.visualstudio.com/items?itemName=Immerse.health-reminder
其他好文推荐
搞定 XLSX 预览?别瞎找了,这几个库(尤其最后一个)真香!
【完整汇总】近 5 年 JavaScript 新特性完整总览
我的 Vibe Coding 的第一个项目的更多相关文章
- CODING DevOps 微服务项目实战系列第一课,明天等你
CODING DevOps 微服务项目实战系列第一课<DevOps 微服务项目实战:DevOps 初体验>将由 CODING DevOps 开发工程师 王宽老师 向大家介绍 DevOps ...
- 笔记-django第一个项目
笔记-django第一个项目 1. 创建项目 安装 Django 之后,现在有了可用的管理工具 django-admin.可以使用 django-admin 来创建一个项目: 看下djang ...
- Surprise团队第一周项目总结
Surprise团队第一周项目总结 团队项目 基本内容 五子棋(Gobang)的开发与应用 利用Android Studio设计一款五子棋游戏,并丰富其内涵 预期目标 实现人人模式:2个用户可以在同一 ...
- [Asp.net MVC]Asp.net MVC5系列——第一个项目
目录 概述 创建第一个项目 添加控制器 总结 概述 本教程是个人一步一步学习的总结,希望能帮到正在进入ASP.Net MVC5方向的朋友,个人也是准备进入ASP.NET MVC5领域,虽然艰辛,但是乐 ...
- AndroidStudio第一个项目HelloWorld
实验内容 在Android Studio中创建项目 创建并启动Android模拟器 项目的编译和运行 实验要求 在安装好的AndroidStudio上建立第一个工程 创建并启动Android模拟器 编 ...
- 自我总结(六)---(学习j2ee+j2ee第一阶段项目)
自我完善的过程就是在不断的自我总结不断的改进. 学习了Struts2 Spring Hibernate. 十天前结束了这个课程.也考试了.这次考试老师说机试考的还不错.其实就是一个简单的用户登录,进行 ...
- Django 创建第一个项目(转)
转自(http://www.runoob.com/django/django-first-app.html) 前面写了不少python程序,由于之前都是作为工具用,所以命令行就足够了,最近写的测试用例 ...
- 菜鸟成长日记之新手备忘录-IOS开发第一个项目总结
2013年5月3号,开始找IOS开发工作(自学了大半年,做了一个功能不全的Demo,该出去见见世面了!),5月4号面试了第一家公司(是家刚成立一段时间的外包公司),5月5号第一家公司已二轮电话面试,5 ...
- Cracking the coding interview 第一章问题及解答
Cracking the coding interview 第一章问题及解答 不管是不是要挪地方,面试题具有很好的联系代码总用,参加新工作的半年里,做的大多是探索性的工作,反而代码写得少了,不高兴,最 ...
- Angular安装及创建第一个项目
Angular简介 AngularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJ ...
随机推荐
- OpenGL绘制YUV、OpenGL 实现画质模糊以及 OpenGL ES 实现画质模糊
本文介绍如何采用 Qt + OpenGL 绘制 YUV 数据,并通过 OpenGL 来实现画质模糊. 前言 我们在开发音视频程序的时候,对于解码后帧的渲染往往有几个操作需要做: 将 YUV420 格式 ...
- 【DXP】如何在原理图中批量修改
零.问题 想要修改所有电阻的封装,怎么解决? 一.解决 以修改所有电阻封装为例,可举一反三. 在电阻上右键,选择"查找相似对象". 注意在右键的时候鼠标应该是放在元器件图标上的,而 ...
- addAll(Collection<? extends E> c)的方法源码
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess ...
- JAVA基础之多线程三期--线程安全问题
一.线程安全问题就是指:多个线程并发访问同一个资源而发生安全性的问题, 线程安全问题都是由全局变量及静态变量引起的. 若每个线程中对全局变量.静态变量只有读操作,而无写 操作,一般来说,这个全局变量是 ...
- Java 中有哪些垃圾回收算法?
Java 中的垃圾回收算法 Java 中的垃圾回收(Garbage Collection,GC)机制通过多种算法实现对堆内存的管理.以下是常见的垃圾回收算法: 1. 标记-清除算法(Mark-Swee ...
- 2025dsfz集训Day8:线段树
Day8:线段树 前言:线段树听起来很高大尚,就是儿子节点表示法的树.几乎一样. \[Designed\ By\ FrankWkd\ -\ Luogu@Lwj54joy,uid=845400 \] 特 ...
- .Net Core全局的json配置
.Net Core全局的json配置 参照文档: 怎样将枚举展示成字符串类型:https://code-maze.com/csharp-serialize-enum-to-string/ 全局配置:a ...
- 【SQL周周练】给你无酸纸、变色油墨,你能伪造多少美金?
大家好,我是"蒋点数分",多年以来一直从事数据分析工作.从今天开始,与大家持续分享关于数据分析的学习内容. 本文是第 2 篇,也是[SQL 周周练]系列的第 2 篇.该系列是挑选或 ...
- 【HUST】代数学|理想的分解习题
以下内容中,背景知识部分尽数由GPT生成,生成的方式是直接对问题进行提问,存在错误的小节我已经标注,不保证不存在其他错误. 习题部分是GPT生成后,我将看不懂的地方自己重写了一遍的结果.不保证完全正确 ...
- 遇到的问题之“web container destroy and kill the job.-Web容器销毁和终止作业”
一.问题 JobThread toStop, stopReason:web container destroy and kill the job. 2023-11-22 18:10:10 [com.x ...