三个人,Cursor,和一场黑客松
三个人,Cursor,和一场黑客松
三个人,Cursor,和一场黑客松 三个人,Cursor,和一场黑客松 Modified October 1, 2024 拆得更小,测得更早 我们应该把插件的功能拆分开,各自在正式环境做验证,然后再合并和修改 UI. Lark 也提出了一个更容易调试浏览器插件的方案:把它写成一个简单的 html, 此时不太需要考虑交互的美观性,也可以设置一个日志打印窗口,更方便调试。 把一个已经正常运行的程序改写为插件的难度远低于把一个没有正常运行的插件修好。 完成没那么简单 能让一个程序,哪怕是不依赖部署的浏览器插件顺利运行,不是写完代码→运行这么直接简单的事,它往往就是一个 反复调试,反复修改,反复出现新 bug 的循环。 写代码≠编程 编程涉及非常多的细节,程序设计,环境管理,部署,运维….所以最近网上有不少人站出来给 Cursor 热泼冷水: 并不是有 AI 帮你写几行代码就叫会编程了! 我很认可这样的观点,但我仍然认为现在是不懂编程的人开始学习的最佳时机。 极其丰富的网络资源+ 随时可以提问的专业导师 (LLM) + 快速完成项目带来的正反馈 ,不要给自己设限,很多障碍都是自己想象出来的。 用户喜欢的≠投入多的 虽然在几年的产品生涯中早就明白了这个道理,但是现场看到的反差,依然震撼人心: 用户并不关心我们投入了多少,用户只会用脚投票。 如果再来一次 • 时间分配 :如果绝大部分时间分配给写代码,反而做不出好东西 • 更详细的需求设计 :如果更早意识到需求的模块拆解得不够细,也许这次就能按计划交付 • 更好的环境准备 :卡在环境问题很容易带来负反馈 • 调试方案 :一个好的报错→修改→运行方案能极大提升 AI 编程效率,极大! • 找准关键卡点 :分析需求难度, 先解决不确定的部分 • 下次还敢 • What’s next? 跨越 如果你满足以下某个条件,AI 编程就是一件极其值得尝试的事 • 有好奇心,爱玩 • 希望构建自己的产品 • 生活和工作中有一些需要反复做的事 • 想锻炼自己的逻辑思维 • 希望在 AI 时代加长自己的杠杆 我不是来制造焦虑的,我只想说 AI 工具真的很好玩 ,而 编程会为我们打通那些我们曾经不敢想的道路 与人为乐 在最后一小时,开发主力 Lark 已经被其他各组借走去帮忙解决问题(是不是该收租的 );而各组 demo 展示结束后,大家也对彼此有了更多了解,打开话匣子聊了起来。时间来到凌晨1点,但所有人都意犹未尽….. 能近距离认识新朋友,看到大家在做各种有趣的事,是线下活动无可替代的价值 ,这让我想起了上一次: 2050:一次惊喜,一些相遇 黑客松结束了,队伍没有 活动结束了,但我们的队伍并没有解散。Lark 已经把原本要做的插件完成(按他的话说,没做完内心有疙瘩),我们也正在把那个硬控了所有人的游戏做出来, 准备正式上线,面向用户 ,敬请期待🚩 玩下去 虽然遇到了很多问题,但体验是很好的, 现场认识的朋友们也都很有意思 ,收获远超我预期。此前我一直认为黑客松都是给技术大佬去玩,去秀的场所,但现在发现有这种面向非技术专家的玩法,有以 AI 编程为主题的玩法,不禁让我开始期待下一次。 「未完成」总会变成「完成」,再进化到「做得不错」 当然,我并不会等着下一次的开始。 手握 Cursor,每天都是自己举办的黑客松。 对「周周黑客松」感兴趣的朋友请点击⬆️ p.s. 下面是一些 Cursor 的小技巧,我还想说更多,但再写下去就跑题了,我们下次见🚩 配置 关闭 Claude 3.5 Sonnet 以外的模型,最多可以保留 GPT 4 o1 mini 和 o1 preview. 在 Rules for AI 里写上系统提示词,可以写“总是输出完整代码”之类的要求,以防 AI 偷懒。最近有博主建议可以加上“在所有地方都写好注释”,这 既能帮助我们理解代码,也能帮助 AI 在 debug 时理解代码。 Composer 通过 Ctrl/Commend +i 唤起,拥有很高的权限,可以创建文件、文件夹,批量修改代码并一键 Accept, 在开发效率上远大于 Chat 模式。 PRD 一个小 hack: 提前写好 PRD(这个 PRD 也可以来跟 AI 对话得到),将它保存为 .md 文件放到项目根目录下,需要时 @这个文件, 以便 AI 能随时理解完整的需求。 写文章 Cursor 是一个拥有修改权限的编辑器,而它背后的 AI 可不仅仅只会写代码, 别限制了自己的想象力 ,举个🌰 封面图 prompt minialist, si fi, 3 different robots sitting together, coding on laptops chaos 15 ar 7:3 personalize stylize 700 niji 6 资源推荐 🌈WayToAGI : 开源免费 的 AI 社区 https://www.waytoagi.com/ 不要只是读资料,这里有各个 AI 方向的社群,加入,动手玩起来! Midjourney 合集 • Midjourney 技巧分享:sref 种子 • Midjourney 技巧分享:用好官网 • Midjourney 技巧分享:如何复刻一个角色&制作黑神话二创 • Midjourney Editor:被严重低估的隐藏神器 其他平台 • 小红书:sobighead • B 站:https://space.bilibili.com/81761 • 微信(加群/ 交流,请说明来意) • 2050:一次惊喜,一些相遇 Midjourney 技巧分享:sref 种子 Midjourney 技巧分享:用好官网 Midjourney 技巧分享:如何复刻一个角色&制作黑神话二创 Midjourney Editor:被严重低估的隐藏神器 拆得更小,测得更早 我们应该把插件的功能拆分开,各自在正式环境做验证,然后再合并和修改 UI. Lark 也提出了一个更容易调试浏览器插件的方案:把它写成一个简单的 html, 此时不太需要考虑交互的美观性,也可以设置一个日志打印窗口,更方便调试。 把一个已经正常运行的程序改写为插件的难度远低于把一个没有正常运行的插件修好。 完成没那么简单 能让一个程序,哪怕是不依赖部署的浏览器插件顺利运行,不是写完代码→运行这么直接简单的事,它往往就是一个 反复调试,反复修改,反复出现新 bug 的循环。 写代码≠编程 编程涉及非常多的细节,程序设计,环境管理,部署,运维….所以最近网上有不少人站出来给 Cursor 热泼冷水: 并不是有 AI 帮你写几行代码就叫会编程了! 我很认可这样的观点,但我仍然认为现在是不懂编程的人开始学习的最佳时机。 极其丰富的网络资源+ 随时可以提问的专业导师 (LLM) + 快速完成项目带来的正反馈 ,不要给自己设限,很多障碍都是自己想象出来的。 用户喜欢的≠投入多的 虽然在几年的产品生涯中早就明白了这个道理,但是现场看到的反差,依然震撼人心: 用户并不关心我们投入了多少,用户只会用脚投票。 如果再来一次 • 时间分配 :如果绝大部分时间分配给写代码,反而做不出好东西 • 更详细的需求设计 :如果更早意识到需求的模块拆解得不够细,也许这次就能按计划交付 • 更好的环境准备 :卡在环境问题很容易带来负反馈 • 调试方案 :一个好的报错→修改→运行方案能极大提升 AI 编程效率,极大! • 找准关键卡点 :分析需求难度, 先解决不确定的部分 • 下次还敢 • What’s next? 跨越 如果你满足以下某个条件,AI 编程就是一件极其值得尝试的事 • 有好奇心,爱玩 • 希望构建自己的产品 • 生活和工作中有一些需要反复做的事 • 想锻炼自己的逻辑思维 • 希望在 AI 时代加长自己的杠杆 我不是来制造焦虑的,我只想说 AI 工具真的很好玩 ,而 编程会为我们打通那些我们曾经不敢想的道路 与人为乐 在最后一小时,开发主力 Lark 已经被其他各组借走去帮忙解决问题(是不是该收租的 );而各组 demo 展示结束后,大家也对彼此有了更多了解,打开话匣子聊了起来。时间来到凌晨1点,但所有人都意犹未尽….. 能近距离认识新朋友,看到大家在做各种有趣的事,是线下活动无可替代的价值 ,这让我想起了上一次: 2050:一次惊喜,一些相遇 2050:一次惊喜,一些相遇 黑客松结束了,队伍没有 活动结束了,但我们的队伍并没有解散。Lark 已经把原本要做的插件完成(按他的话说,没做完内心有疙瘩),我们也正在把那个硬控了所有人的游戏做出来, 准备正式上线,面向用户 ,敬请期待🚩 玩下去 虽然遇到了很多问题,但体验是很好的, 现场认识的朋友们也都很有意思 ,收获远超我预期。此前我一直认为黑客松都是给技术大佬去玩,去秀的场所,但现在发现有这种面向非技术专家的玩法,有以 AI 编程为主题的玩法,不禁让我开始期待下一次。 「未完成」总会变成「完成」,再进化到「做得不错」 当然,我并不会等着下一次的开始。 手握 Cursor,每天都是自己举办的黑客松。 对「周周黑客松」感兴趣的朋友请点击⬆️ p.s. 下面是一些 Cursor 的小技巧,我还想说更多,但再写下去就跑题了,我们下次见🚩 配置 关闭 Claude 3.5 Sonnet 以外的模型,最多可以保留 GPT 4 o1 mini 和 o1 preview. 在 Rules for AI 里写上系统提示词,可以写“总是输出完整代码”之类的要求,以防 AI 偷懒。最近有博主建议可以加上“在所有地方都写好注释”,这 既能帮助我们理解代码,也能帮助 AI 在 debug 时理解代码。 Composer 通过 Ctrl/Commend +i 唤起,拥有很高的权限,可以创建文件、文件夹,批量修改代码并一键 Accept, 在开发效率上远大于 Chat 模式。 PRD 一个小 hack: 提前写好 PRD(这个 PRD 也可以来跟 AI 对话得到),将它保存为 .md 文件放到项目根目录下,需要时 @这个文件, 以便 AI 能随时理解完整的需求。 写文章 Cursor 是一个拥有修改权限的编辑器,而它背后的 AI 可不仅仅只会写代码, 别限制了自己的想象力 ,举个🌰 封面图 prompt minialist, si fi, 3 different robots sitting together, coding on laptops chaos 15 ar 7:3 personalize stylize 700 niji 6 资源推荐 🌈WayToAGI : 开源免费 的 AI 社区 https://www.waytoagi.com/ 不要只是读资料,这里有各个 AI 方向的社群,加入,动手玩起来! Midjourney 合集 • Midjourney 技巧分享:sref 种子 Midjourney 技巧分享:sref 种子 • Midjourney 技巧分享:用好官网 Midjourney 技巧分享:用好官网 • Midjourney 技巧分享:如何复刻一个角色&制作黑神话二创 Midjourney 技巧分享:如何复刻一个角色&制作黑神话二创 • Midjourney Editor:被严重低估的隐藏神器 Midjourney Editor:被严重低估的隐藏神器 其他平台 • 小红书:sobighead • B 站:https://space.bilibili.com/81761 • 微信(加群/ 交流,请说明来意) • • 看到这里,如果觉得还不错可以点个 赞/ 在看 。愿意 关注 & 转发 就更好啦 想第一时间看到新内容的话可以给我个星标⭐ 感谢你的时间 Lark 老师,该开号啦 You don't have permission to access this synced block. Please log in and try again. Log In 🔗 原文链接: https://mp.weixin.qq.com/s/8c55sHTy... https://mp.weixin.qq.com/s/8c55sHTy... 原创 阿头 ATou 阿头的小屋 2024年10月01日 10:19 上海 这是三个黑客松新手,靠着最嚣张的队名壮胆,去参加了一场 AI 编程黑客松,最后没有做完作品但却觉得非常开心的故事。 在队友的鼓动下,把队名放出来..咳咳,反正线下已经社死过了 一点必要的背景 你是否曾经希望自己也能写代码,但又觉得学不会?如果是这样,那你应该了解一下 Cursor, 它正在改变普通人与编程的关系 ,至少已经改变了包括我在内的很多人。 https://www.cursor.com/ Cursor 是一个基于 VS code 开发, 目前使用体验最好的 AI coding IDE ,它让我这样不具备代码能力的人可以通过自然语言描述,快速开发一些项目,这种正反馈 让我对于自己能学会构建有了信心 。所以我最近遇人便推 Cursor,非常适合爱折腾,想构建的朋友们,目 前新账号有 2 周 pro 体验,成本为 0 ,非常推荐一试。 下面我用 AI 做的项目中最有意思的那几个(没错,这是一个钩子): • YouTube,X,B 站各类视频站的整合下载工具(超级简单) • 根据 BGM 节奏,精确、自动合成高频卡点视频的 Python 脚本 • 提取图片颜色,生成色板的 Chrome 插件:用于 Midjourney 创作 篇幅有限,本文只会对 Cursor 的功能做有限解释,之后会更新一些 Cursor 相关内容,想体验 “我也能写代码了!” 的朋友欢迎找我交流。(文末有一些简单的攻略) 让我们继续正题。 周周黑客松 2 周前,在逛 S 创活动时,遇到了一位女生(Wingo),她问我对智能穿戴设备是否感兴趣。聊着聊着,她提到自己是「周周黑客松」的成员。 我记得这是 WayToAGI 文档里看到过且好奇的一个组织 ,我立即决定加群一探究竟。在这奇妙的偶遇下,才有了本文的故事。 组队 进群后不久就看到了接下来的活动是位于上海的 Cursor 编程黑客松,这不巧了吗!本着 以赛代练 的思路,我果断询(gu)问(dong)了几位好友(某位拒绝了我的朋友,现在后悔了吗 ),和元子、Lark 组了队。作为没有玩过黑客松的新人,我们对此都感到 既兴奋又紧张 ,抱着“别太丢脸就行”的心态就冲了。 三人同框(对不起元子你只出镜了一半) 在简单脑暴后,我们敲定了方向:制作一个 Chrome 插件,可以一键把当前的网页转化为一张汉语新解卡片( AI 的语文比我强:汉语新解 ),并允许用户下载为图片。 AI 的语文比我强:汉语新解 叠个甲: 以下是我自己的体验和记录 ,如果有说得不对的,欢迎指出。 第一个小时 Cursor+协作=? 活动开始后,我们才意识到:Cursor 是一个很适合短时间编程的高效工具,但我们并不知道 如何在黑客松场景下利用 Cursor 进行协作 ,讨论后我们得出以下规则 1. 项目需要放到网络环境, 可以被所有团队成员读写 2. 对项目的修改是 近实时更新 的 3. 需求要拆解为 3 个模块, 每个人负责一个 4. 各自在负责的模块下工作, 避免修改其他人的内容 ;如需修改根目录下的文件,则只由一个人来完成 5. 完成单元测试后再 由一个人来进行合并、测试以及提交 在黑客松 + AI 编程这种高频修改的场景下,如果使用 GitHub 提交和管理版本,则会丧失 Cursor 带来的效率优势;于是我们现场开动脑洞,尝试了几种方案 • 通过 Wi Fi 网络互联:没有想象中容易,遇到一些奇怪的权限问题,迅速放弃 • 通过 Google Drive 连接在线项目:能读写,能联通,但 更新效率极低 ,而且不够自动 • 最后元子挖掘到了一个方案,通过 iCloud(幸亏当天大家都带的是 MacBook)共享文件,这样大家都可以同时修改项目,并且更新非常实时,能够发现这个方案已经让我们几个新手感到非常兴奋。当然,我们不知道的是,麻烦才刚开始 拆解需求(同步进行) 既然是 AI 编程,那就 AI 到底:让 Claude 帮我们拆解需求,prompt 如下 你是一个顶级架构师和产品设计者。我们三个人在参加一个 3 小时的黑客松,元子,lark 和阿头,我们想一起开发一个 chrome 插件,背景如下 1. 这个插件可以自动读取当前网页的主要内容,一般是文章、新闻等 2. 读取完成后会通过 API 将内容传输给一个 LLM agent bot 3. 这个 bot 会将内容处理为一段 html 代码,并返回给插件 4. 插件会读取这段 HTML,并进行渲染 5. 为用户提供选项,将当前的 HTML 渲染的结果保存为图片格式 6. 目前我们想进行方案设计和分工,我们会使用 AI coding 工具来开发,所以我们要确保 7. 程序架构设计是比较好的,可以很好地分离为 3 个主要模块,并放在 3 个文件夹内 8. 提前定义好接口 9. 各自开发完成后,我们会拼接程序并进行测试,如果有问题或者新的需求,我们会修改开发文档 10. 尽量多打印日志,方便我们 debug 我是一个产品经理,我觉得这样的开发模式是不错的,但我不确定是否是最好的,请给我建议,让我们一起来完成这件事 在简单几轮对话后,Claude 给出了完整的需求文档(太占篇幅,只放分工部分,大家可以自己找 Claude 测试) 5.1 元子:内容提取模块 负责: • 实现网页内容提取功能 • 内容清理和格式化 • 优化提取算法以提高准确性 5.2 lark:API 通信模块 负责: • 实现与 LLM agent bot 的 API 通信 • 处理关键词生成请求和响应 • 处理 HTML 内容生成请求和响应 • 实现错误处理和重试机制 5.3 阿头:UI 渲染模块 负责: • 设计和实现符合 Apple 风格的用户界面 • 渲染 API 返回的 HTML 内容 • 实现图片保存功能 • 确保良好的用户体验和交互设计 我一看,感觉不错(事后检讨:没有看得足够仔细,给团队挖了坑 ),便将这个需求文档保存为 prd.md 文件,放到了项目的根目录下,在 Composer(文末有解释) 中 @prd.md, 让 Cursor 生成对应的文件结构 ,然后我们三人便在各自的模块下忙活起来。 第二个小时 开发 我让 Cursor 基于需求文档开发我所负责的部分, 大概 1 分钟(没错)就写完了第一版 。就在我以为能马上进入调试期的时候,第一个麻烦开始了:为了进行单元测试,我们必须安装那些缺失的库;不确定是否因为我忘记给 Terminal 配置网络环境,安装进度特别慢,我很焦虑地看着它 花了 30 分钟才完成了测试的前置准备 。而在写单元测试脚本的时候,Cursor 偶尔也忘记自己必须在指定文件夹下工作,导致一些关键的文档反复放错位置,并 创建了很多垃圾文件。 解决掉这些烦人的小问题后,跑了十来次运行→ 报错→ AI 改代码 → 运行 → 报错循环,终于通过了单元测试,此时元子和 Lark 也已经各自完成单元测试,激动人心的合并时刻到了 。但是, 哪有第一次就能跑通的代码? 果不其然,合并后又需要安装环境,build 再上传到 Chrome 后,又是 30 分钟过去了,此时, 我满怀期待的点开了插件。 第三个小时 bug, debug, new bug 首先是界面,我想象中应该是一个简单、优雅的设计,但没想到它长这样 (你没看错) 在我点击按钮后,不仅没有达到预期的效果, 甚至看不出来它是否在工作 ,这可能也是 Chrome 插件的通病: 观察日志不够方便 。这也是需求拆解步骤做得不够好导致的问题, 没有把所有功能都拆得很干净,合并后乱成一锅粥 ,没法判断到底哪里出现了问题 接下来的思路也很朴实:如果第一步就错了,那要不就单独把它拆出来,看看是否能运行。于是我们把「获取当前网页内容」作为单独的步骤, 拆解交互按钮,添加更多中间日志来观察问题 。最终很可惜,在我能跑通这个功能之前,已经到了 DDL,我们队伍的第一次黑客松止步于“未完成” show time 虽然没有做出成品,但我们还是厚着脸皮上台讲了我们思路 ,展示了一下 prd.md, 已经完成的部分和预期的效果。 (为了凑时间 )Lark 展示了几个在练手期间他花了 5 分钟用 Cursor 做的小游戏 demo. 大家看到后尖叫起来“这是什么鬼?”,“哈哈哈,太魔性了吧!”。大家就这么对着 demo 玩了好几轮, 甚至表示后面的分享可以不用讲了 , 不如让大家留出时间继续玩游戏 猜猜是什么玩法 因为我们是唯一采用 3 人合作编程模式的团队,给大家讲解我们的方法后,大家觉得有意思, 给了我们很多正反馈 。于是我们又厚着脸皮讲了一些自己使用 Cursor 的心得体会,似乎也说到了一些对大家有用的方法,真是意外之喜。(这个环节不小心暴露了队名,感谢大家没有当场暴打我们 ) AI 编程的苦与乐 虽然没有完成,但总结了一些经验,希望能对你有用。 做好预期:第一版 = 垃圾 我们提出的 第一版需求往往不会那么清晰 ,即便能运行也可能缺失一些必要设计。所以不要对第一版有任何预期,把任何好的结果当做惊喜 环境很烦人 对于不懂开发的人而言,光是理解「环境」这个概念就有一定的门槛,而安装和管理环境更是编程新人的一大障碍。习惯了 Python 的我,并没有想过安装环境可能会很麻烦,很慢, 甚至成为黑客松上最浪费时间的一个环节。