<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>架构设计 | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《为什么我放弃Next.js和RSC，回归传统SPA与独立后端》</title><link>https://channel.meo-ai.com/posts/654</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/654</guid><pubDate>Mon, 01 Jun 2026 00:06:54 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《为什么我放弃Next.js和RSC，回归传统SPA与独立后端》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Web%E5%BC%80%E5%8F%91&quot; title=&quot;#Web开发&quot;&gt;#Web开发&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23NextJS&quot; title=&quot;#NextJS&quot;&gt;#NextJS&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React_Server_Components&quot; title=&quot;#React_Server_Components&quot;&gt;#React_Server_Components&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23SPA&quot; title=&quot;#SPA&quot;&gt;#SPA&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1&quot; title=&quot;#架构设计&quot;&gt;#架构设计&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%AE%89%E5%85%A8&quot; title=&quot;#安全&quot;&gt;#安全&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TanStack&quot; title=&quot;#TanStack&quot;&gt;#TanStack&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Hono&quot; title=&quot;#Hono&quot;&gt;#Hono&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;&lt;br /&gt;作者回顾了自己从Next.js忠实用户到拥抱App Router/RSC，最终回归传统SPA+独立后端的完整历程。文章深入分析了RSC架构带来的心智负担、序列化开销和安全风险，结合2025-2026年多起严重CVE漏洞，论证了将渲染框架与安全边界解耦的必要性，并分享了当前基于React Router+Vite+Hono的简洁技术栈。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;&lt;br /&gt;1. &lt;b&gt;Next.js的黄金时代&lt;/b&gt;：Pages Router时期心智模型清晰，服务端/客户端边界一目了然，文件路由简单易懂，部署零成本&lt;br /&gt;2. &lt;b&gt;App Router带来的混乱&lt;/b&gt;：Server/Client Component区分成为负担，&quot;use client&quot;指令传染性强，开发/构建/生产环境缓存行为不一致，服务端客户端边界变得不可见&lt;br /&gt;3. &lt;b&gt;安全漏洞敲响警钟&lt;/b&gt;：2025年CVE-2025-29927中间件绕过(CVSS 9.1)、2025年底RSC核心包10分满分漏洞CVE-2025-55182、2026年初多起Server Function DoS漏洞，攻击面集中在服务端渲染和反序列化环节&lt;br /&gt;4. &lt;b&gt;TanStack并非避风港&lt;/b&gt;：2026年5月TanStack遭遇供应链攻击，42个包被投毒，说明换框架不能免疫风险，减少依赖面才是关键&lt;br /&gt;5. &lt;b&gt;序列化是根本原因&lt;/b&gt;：RSC的&quot;无缝&quot;本质是分布式系统的序列化问题，函数、类实例、错误栈都无法透明穿越边界，反序列化不可信输入成为高危攻击面&lt;br /&gt;6. &lt;b&gt;当前架构选择&lt;/b&gt;：React Router框架模式+Vite纯SPA（仅营销页预渲染）+ Hono独立后端，API通过显式HTTP调用，无RSC负载，无服务端序列化&lt;br /&gt;7. &lt;b&gt;安全设计原则&lt;/b&gt;：认证授权在API层强制执行，前端中间件只做UX跳转，CORS/CSRF/验证码/限流全部在可控的后端实现，与渲染框架彻底解耦&lt;br /&gt;8. &lt;b&gt;核心收获&lt;/b&gt;：架构清晰可指认、无序列化税、前端攻击面趋近于零、后端语言自由选型、依赖更少爆炸半径更小——&quot;无聊&quot;在软件工程里是赞美&lt;br /&gt;&lt;br /&gt;URL：&lt;a href=&quot;https://dev.to/zulikram/why-i-walked-back-from-nextjs-and-rsc-to-a-plain-spa-and-a-separate-backend-4k8p&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://dev.to/zulikram/why-i-walked-back-from-nextjs-and-rsc-to-a-plain-spa-and-a-separate-backend-4k8p&quot;&gt;https://dev.to/zulikram/why-i-walked-back-from-nextjs-and-rsc-to-a-plain-spa-and-a-separate-backend-4k8p&lt;/a&gt;</content:encoded></item><item><title>《Claude架构图生成器：AI一键绘制专业系统架构图》</title><link>https://channel.meo-ai.com/posts/603</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/603</guid><pubDate>Sun, 19 Apr 2026 23:44:56 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《Claude架构图生成器：AI一键绘制专业系统架构图》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23AI%E5%B7%A5%E5%85%B7&quot; title=&quot;#AI工具&quot;&gt;#AI工具&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Claude_Skill&quot; title=&quot;#Claude_Skill&quot;&gt;#Claude_Skill&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%9E%B6%E6%9E%84%E5%8F%AF%E8%A7%86%E5%8C%96&quot; title=&quot;#架构可视化&quot;&gt;#架构可视化&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BC%80%E5%8F%91%E6%95%88%E7%8E%87&quot; title=&quot;#开发效率&quot;&gt;#开发效率&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E5%9B%BE&quot; title=&quot;#系统架构图&quot;&gt;#系统架构图&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;这是一款专为Claude AI设计的Skill工具，让用户只需用自然语言描述系统架构，即可生成精美的暗色系专业架构图。输出为独立的HTML/SVG文件，无需任何设计技能或额外软件，适合快速迭代和团队协作分享。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;- 零门槛使用：不需要设计基础，用大白话描述系统组件和连接关系，Claude就能帮你画出专业级架构图&lt;br /&gt;- 多种输入方式：可以让AI分析代码库自动生成描述，也可以自己手写组件列表，还能直接问Claude要典型架构模板&lt;br /&gt;- 精美视觉风格：采用暗色主题（Slate-950背景），组件按类型着色（前端青色、后端翠绿、数据库紫色、云服务琥珀色），自带网格底纹和JetBrains Mono字体&lt;br /&gt;- 独立文件输出：生成单个HTML文件，内嵌CSS和SVG，任何浏览器都能直接打开，方便分享、打印或嵌入文档&lt;br /&gt;- 实时迭代优化：生成后可以继续在对话中要求修改，比如&quot;加上Redis缓存&quot;或&quot;调整布局&quot;，Claude会即时更新图表&lt;br /&gt;- 多平台安装：支持Claude.ai网页版（Pro/Max/Team/Enterprise）、Claude Code CLI、以及Projects知识库三种方式&lt;br /&gt;- 丰富示例覆盖：内置Web应用（React+Node+PostgreSQL）、AWS无服务器（Lambda+API Gateway）、微服务（K8s+多语言服务）等典型场景模板&lt;br /&gt;&lt;br /&gt;文章URL：&lt;a href=&quot;https://github.com/Cocoon-AI/architecture-diagram-generator&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://github.com/Cocoon-AI/architecture-diagram-generator&quot;&gt;https://github.com/Cocoon-AI/architecture-diagram-generator&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://github.com/Cocoon-AI/architecture-diagram-generator&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Generate beautiful dark-themed system architecture diagrams as standalone HTML/SVG files. Works as a Claude AI skill.     - Cocoon-AI/architecture-diagram-generator&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;GitHub&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;GitHub - Cocoon-AI/architecture-diagram-generator: Generate beautiful dark-themed system architecture diagrams as standalone HTML/SVG…&quot; src=&quot;/static/https://cdn4.telesco.pe/file/FCIqr97nDGC4xaOGyvQT8gvaG0f2QgwotUInntcWFy40mp8q25gzesGcEy_R6V_I8-e0CkpZhuVkc8pEGQ2WJ0Pn5W610MD_Q0Rd8seuPl04Eh2ZEKWNKe3zxyv7wRFGaI4p2Mw00AiFOP4VEbKrEx6XPr4sACjsZlBDY-Ovt9FzpTUO-D36YwSyVi3txoBE2CoO_HghtcDknfTNxzCMIAfEhDIkPdsjsujk-TUexGv2Pncztdw1MNWbTSP3-ScDya_NM8icvv6ujcA1AfUfwXoQLKMA3VXszLKz_5itAYD4Wqgl88ckBgzEsf6MX4yuO1cCVIHiOsT209wdbmKZuA.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;GitHub - Cocoon-AI/architecture-diagram-generator: Generate beautiful dark-themed system architecture diagrams as standalone HTML/SVG…&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Generate beautiful dark-themed system architecture diagrams as standalone HTML/SVG files. Works as a Claude AI skill.     - Cocoon-AI/architecture-diagram-generator&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>《垂直代码库：告别按类型分层，拥抱按业务域组织》</title><link>https://channel.meo-ai.com/posts/599</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/599</guid><pubDate>Sat, 18 Apr 2026 08:12:54 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《垂直代码库：告别按类型分层，拥抱按业务域组织》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E4%BB%A3%E7%A0%81%E7%BB%84%E7%BB%87&quot; title=&quot;#代码组织&quot;&gt;#代码组织&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1&quot; title=&quot;#架构设计&quot;&gt;#架构设计&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Monorepo&quot; title=&quot;#Monorepo&quot;&gt;#Monorepo&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B&quot; title=&quot;#软件工程&quot;&gt;#软件工程&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;&lt;br /&gt;本文主张前端代码库应从&quot;水平分层&quot;（按 components/hooks/utils 技术类型划分）转向&quot;垂直切片&quot;（按业务域/功能域组织）。作者以 Sentry 代码库十年演进为例，指出水平分层会导致代码分散、认知负荷高、耦合混乱；而垂直组织将同一业务域的组件、工具、类型内聚到一起，配合 Monorepo 的显式边界（exports/eslint-plugin-boundaries），能显著提升可维护性。虽然确定正确的垂直划分需要更多团队沟通，但这是支撑代码库长期演进的必要投资。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;&lt;br /&gt;- 水平分层的隐患：把代码按 components / hooks / utils / types 分类虽然上手简单，但随着项目膨胀，同一业务逻辑会被拆得七零八落——比如 PageFilters 的组件、类型、工具函数散落在三个目录，改一个小需求要跳来跳去， cognitive load 直接拉满&lt;br /&gt;- 垂直切片的核心思想：不按&quot;技术类型&quot;而按&quot;业务域&quot;分组，把同一个功能域（如 dashboard、profiling、billing）相关的组件、Hook、工具、类型全部收进一个目录；就像当年我们把 HTML/CSS/JS 从三层文件合并成组件一样，这次是更高维度的&quot;关注点内聚&quot;&lt;br /&gt;- 与团队结构天然对齐：现代产品团队通常是端到端的功能团队（dashboard 团队、replay 团队），垂直代码结构让 CODEOWNERS 和包边界直接对应团队职责，谁负责什么一目了然&lt;br /&gt;- 解决跨域复用焦虑：不是所有代码都严格属于某个页面，像 PageFilters 这种被多页面使用的通用能力，完全可以作为独立垂直域存在；关键是按&quot;逻辑关联&quot;而非&quot;物理位置&quot;来划分&lt;br /&gt;- 用边界守护架构：垂直化后还需降低耦合，推荐通过 Monorepo + package.json#exports 显式暴露公共 API，或借助 eslint-plugin-boundaries 禁止深路径导入，把&quot;私有实现&quot;真正保护起来&lt;br /&gt;- 没有银弹，但值得投入：确定合理的垂直域确实比&quot;丢进 utils&quot;更难，也可能出现不同团队重复造轮子；但作者认为这恰恰促进了团队沟通，而沟通本就是软件工程最难也最重要的部分&lt;br /&gt;&lt;br /&gt;文章URL：&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://tkdodo.eu/blog/the-vertical-codebase&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://tkdodo.eu/blog/the-vertical-codebase&quot;&gt;https://tkdodo.eu/blog/the-vertical-codebase&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://tkdodo.eu/blog/the-vertical-codebase&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Let&apos;s take a look at why the common, horizontal code structure is not ideal, where it breaks down, and what we can do about it.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;tkdodo.eu&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;The Vertical Codebase&quot; src=&quot;/static/https://cdn4.telesco.pe/file/UQNHQ5CBOo9YPc282-wjXkZj4PZ5DB5zFN6AcdBCGzJE5sJnuaw-V2V6sKibIvd5vfa9ekRtzuXoI6OnOZ_k1DF5YFoVfMgJHKVvA63WGg59BKOYzxTqmJaAxqyMw3QUQzlh3zNnw-BVDfmzabcFfGTp6KoV8nnXsMcAzd22mQ1iQg3o9vmfA9Scfo5p3viArCt5tGzxf-n2LhFYLOFxTKAPQtqhrcCjrFgB_maNEZlyJsUk_23V0odEQqqA-gZltg6z0v0kM7ke4letXnHXh4H8E2GYkTFJeFigVwwOpDsOhjT3Uq5wsaF5jXy-cAm6b1bXPEjfKWYiK3s8IC41Yg.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;The Vertical Codebase&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Let&apos;s take a look at why the common, horizontal code structure is not ideal, where it breaks down, and what we can do about it.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>