<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>微云</title>
    <description>微云的小小屋</description>
    <link>https://weiyun.xin</link>
    <language>zh-CN</language>
    <lastBuildDate>Thu, 25 Jun 2026 06:01:12 +0000</lastBuildDate>
    <item>
      <title>三天，我用 Vibe Coding 从零搭建了这个博客</title>
      <link>https://weiyun.xin/post/start-init</link>
      <guid>https://weiyun.xin/post/start-init</guid>
      <pubDate>Thu, 25 Jun 2026 06:01:12 +0000</pubDate>
      <description><![CDATA[<h2>契机</h2>
<p>5月底离职了，回家后增驾摩托驾照准备摩旅。不过出了点意外，挂了，重新预约需要等10天，于是有了点成片的空闲时间。自己呢，又在大厂外包，虽然接触的不是核心，但也实打实的算是搞了两年大模型。不过，惭愧的事，</p>
<h3>什么是 Vibe Coding</h3>
<p>Vibe Coding 的本质是<strong>用自然语言驱动开发</strong>。你不是一行行手写代码，而是向 AI 描述意图——&quot;给文章加个评论&gt;功能，支持嵌套回复&quot;、&quot;把这个页面改成两列网格布局&quot;——AI 负责实现，你负责审查和决策。</p>
<p>它跟传统开发最大的区别在于节奏。传统开发像写作文，从上到下构思好再落笔；Vibe Coding 像对话，说一句话看<br />
结果，不满意再来一句。五天的感受：<strong>它不会让你少做决策，但会让每个决策都落地极快。</strong></p>
<h3>为什么选择自己搭建</h3>
<p>市面上的博客方案很多，Hexo、Hugo、WordPress、Typecho，随便挑一个都能用。但我想把这个博客做成一个<strong>长期<br />
演进的个人项目</strong>——不只是记录文字，也是试验新技术的沙盒。后面计划集成向量搜索、RAG 问答、AI Agent 等能&gt;力，一个自己能完全掌控代码的项目是必要的。</p>
<h3>技术选型</h3>
<table>
<thead>
<tr>
<th>层</th>
<th>选择</th>
<th>理由</th>
</tr>
</thead>
<tbody>
<tr>
<td>框架</td>
<td>FastAPI + Jinja2</td>
<td>异步原生，Python 生态丰富，方便集成 AI</td>
</tr>
<tr>
<td>数据库</td>
<td>PostgreSQL + SQLAlchemy 2.0</td>
<td>后续 pgvector 向量搜索的基础</td>
</tr>
<tr>
<td>前端</td>
<td>Tailwind CSS + HTMX</td>
<td>无重前端，服务端渲染，极简部署</td>
</tr>
<tr>
<td>存储</td>
<td>阿里云 OSS</td>
<td>图片/文件 CDN 分发</td>
</tr>
<tr>
<td>AI</td>
<td>DeepSeek</td>
<td>OpenAI 兼容 API，性价比高</td>
</tr>
</tbody>
</table>
<h3>借鉴 &amp; 致敬</h3>
<p>UI 布局参考了 Typecho 社区的 <strong>Handsome 主题</strong>（作者：友人C），包括三栏响应式布局、侧边栏导航结构、卡</p>
<p>片式文章列表等。数据库表结构借鉴了 <strong>Typecho</strong> 的设计思路（Post、Category、Tag 的 M2M 关系、Comment 嵌<br />
套回复模型）。</p>
<p>站在巨人的肩膀上，用现代技术栈重新实现。</p>
<h3>项目数据</h3>
<ul>
<li>实际开发 5 天，138 次 commit</li>
<li>技术栈 Python 3.12 + FastAPI + SQLAlchemy + HTMX + Tailwind</li>
<li>约 3000+ 行 Python，1500+ 行模板/CSS/JS</li>
</ul>
<h3>已实现的功能</h3>
<p><strong>前台</strong></p>
<ul>
<li>文章列表 / 详情 / 分类 / 标签 / 归档</li>
<li>全文搜索、RSS Feed、Sitemap</li>
<li>嵌套评论 + AI 审核 + Honeypot 防 spam</li>
<li>相册（瀑布流网格 + 灯箱 + OSS 实时缩略图）</li>
<li>时间线（项目 / 人生双线）</li>
<li>留言板</li>
<li>暗色模式 + 多套配色主题</li>
<li>粒子网络动态背景</li>
<li>响应式三栏布局 + 移动端抽屉导航</li>
</ul>
<p><strong>后台</strong></p>
<ul>
<li>文章 / 页面 CRUD（Vditor 编辑器）</li>
<li>分类 / 标签管理</li>
<li>评论审核</li>
<li>相册管理（批量上传 + 拖拽排序）</li>
<li>时间线管理</li>
<li>站点设置</li>
<li>AI 润色 / 摘要 / 标签推荐 / Slug 生成</li>
</ul>
<p><strong>基础设施</strong></p>
<ul>
<li>本地存储 / OSS 双后端抽象，一键切换</li>
<li>Alembic 数据库迁移</li>
<li>JWT 认证</li>
<li>pytest 测试覆盖</li>
</ul>
<h3>Vibe Coding 的边界在哪里</h3>
<p>折腾下来，最深的体会是：<strong>AI 擅长实现，不擅长设计</strong>。</p>
<p>说&quot;加个相册功能&quot;，AI 能一口气写出模型、路由、模板、JS 灯箱。但相册的数据库怎么设计？上传流程怎么走？缩</p>
<p>另一个边界是<strong>持续迭代中的架构腐败</strong>。AI 没有&quot;简洁优先&quot;的意识，你让它加功能它就加，不会主动提醒你&quot;这里<br />
该重构了&quot;。五天的密集开发之后已经有了需要清理的角落：几处代码重复、CSS 变量散落、测试覆盖不均衡。Vibe Coding 之后还需要 Vibe Refactoring。</p>
<h3>下一步</h3>
<p>后续会逐步集成更深的 AI 能力——向量语义搜索、基于全站文章的 RAG 问答、写作风格分析等。这个博客也是我转&gt;向 Agent 应用开发的实验田，详细规划见 <code>AI_ROADMAP.md</code>。</p>
]]></description>
    </item>
  </channel>
</rss>