一个半月高强度 Claude Code :Vibe coding 是一种全新的思维模式

一个半月高强度 Claude Code :Vibe coding 是一种全新的思维模式

这篇文章是作者在使用 Claude Code(简称 CC)进行高强度编程实践一个半月后的总结。

笔记

1. Vibe Coding 的迭代速度

  • 核心观点:CC 带来的最大震撼是产品迭代速度的提升。CC 的更新频率极高,从自定义命令到 Hooks 功能,再到 Subagent 解决上下文窗口限制问题,短短一个半月内功能不断更新。
  • 现象:AI 辅助开发领域发展迅猛,几天甚至几小时完成一个产品成为可能。
  • 悖论:AI 提高了开发效率,但同时也加剧了竞争。开发者需要适应快速迭代的节奏,否则可能被市场淘汰。
  • 建议:在 vibe coding 时代,不要被工具束缚,保持思考和生活空间。

2. 从传统 Editor AI 的转换

  • 核心观点:传统编辑器 AI 工具(如 Cursor、Windsurf、GitHub Copilot 等)与 CC 的主要区别在于交互模式和全局感。
  • 问题分析
    • 编辑器 AI 的交互模式限制了开发者的视野,容易导致同步问题。
    • CC 作为命令行工具,更注重全局理解和项目整体操作。
  • 优势:CC 的模型质量和 token 使用量大,使其在效果上优于传统编辑器 AI。

3. 认识 CC 的边界和长处

  • 擅长领域:分析代码逻辑、理解模块调用关系、生成架构图、快速实现算法、搭建项目框架、编写测试用例等。
  • 不擅长领域:全局变量重命名、复杂重构(需要 100% 准确性的任务)。
  • 训练数据偏差:CC 在前端代码和 TypeScript 方面表现出色,但在 iOS/Swift 开发中表现较差,存在 API 使用过时或错误的问题。

4. 思考先行还是实践先行

  • Plan Mode:CC 提供的计划模式允许开发者与 AI 充分讨论后制定详细计划再开始编码。
  • 两种极端方式
    • 规划魔:详细规划每一个细节后再开始编码。
    • 莽夫流:直接让 AI 开始写代码,发现问题再迭代。
  • 作者建议:根据项目和开发者经验选择合适的方式。对于既有项目,规划先行更有利于代码质量和项目规范;对于探索性项目,先动手搞出原型再迭代可能更高效。

5. 小步迭代还是放飞自我

  • 核心观点:小步迭代(每次只完成一个小功能)通常比一次性完成所有代码更好。
  • 问题分析:一次性生成大量代码可能导致调试复杂度增加,开发者失去对代码的掌控。
  • 建议
    • 小步迭代的优点:可控性强、易于理解、保证质量、学习机会多。
    • 如果选择“放飞自我”,需要完善的测试、版本控制、分模块开发和交叉评审。

6. 任务规模和上下文制约

  • 上下文窗口限制:CC 的上下文窗口为 200k,容易在复杂任务中耗尽。
  • 解决方法
    • 任务拆解:将大任务拆解为小任务,逐一完成。
    • 使用 Subagent:通过 Subagent 分配任务,扩展上下文窗口。
    • 手动 compact:在合适时机手动压缩上下文,避免自动压缩带来的问题。

7. 善用命令和周边工具

  • Command 和 Hooks
    • Command:将重复的 prompt 配置为命令,提高效率。
    • Hooks:在特定事件触发时自动执行命令,适合固定工作流。
  • MCP(Model Customization Package)
    • 补充模型知识,如获取最新 Apple 文档、连接项目管理工具(JIRA)、支持 LSP 等。
  • 编译、分析和测试
    • 作者强调 AI 生成的代码必须经过测试。
    • 工作流程:编译、测试、运行 linter 和 formatter。
  • Code 之外,大有可为
    • CC 可用于代码提交、撰写技术文档、更新 JIRA、数据处理等。
    • 通过工具(如 VibeTunnel)实现随时随地工作。

8. 体感降智和更多限制

  • Opus 与 Sonnet:Opus 的效果明显优于 Sonnet,建议分级使用。
  • 时间玄学:美国半夜(北京时间白天)使用效果更好,可能与服务器负载有关。
  • 降智疑云:社区反馈近期体验不如之前,可能是资源紧张导致。
  • 限制的阴霾:Anthropic 实施 weekly 限制,未来可能有更严格限制。
  • 应对策略
    • 分级使用模型。
    • 错峰使用,避开高负载时段。
    • 提高 prompt 质量。
    • 合理使用 subagent。
    • 关注其他替代工具。

9. 总结和未来展望

  • 核心观点:Vibe coding 是一种全新的编程和思维模式,要求开发者重新思考编程的本质和价值。
  • 建议:技术应为人服务,保持清醒,不要被工具束缚。

空行在代码中的重要性

空行在代码开发中非常重要,日常代码复核中发现经常遇到一些代码堆在一起的情况,十分影响代码的可读性。代码不仅要让机器跑得通,更要让人类读得懂。

下面举一些 Python 的例子进行说明:

MongoDB 删除数据方案

我们在日常运营中会积累大量的数据,有时候需要把这些数据归档。

对于MongoDB来说,如果要快速删除大量数据,这里有几种方法可以考虑:

1 deleteMany() - 基础方案

1
2
3
4
5
6
7
8
// 基本用法
db.collection.deleteMany({ status: "inactive" })

// 带条件删除
db.collection.deleteMany({ 
  createdAt: { $lt: new Date("2023-01-01") },
  status: { $in: ["deleted", "expired"] }
})

优点: