Now vibe coding, so learning hammer FE ?
《W键在前端:技术与产品的协同进化》
标签:#前端工程化 #Electron #Vite #代码重构 #Monorepo #TailwindCSS #ShadcnUI #ReactRouter #性能优化 #Medal
总结:
文章要点:
1. **从"巨兽组件"说起**:作者用一张拥有30+ props的TextInput截图开场,生动展示了"反模式"组件的恐怖——职责混乱、默认值泛滥、DOM和自定义props杂糅,改一行代码要检查十个角落,开发体验堪比噩梦
2. **宏观手术刀**:不硬啃旧组件,而是先换"土壤"——迁移Monorepo+PNPM解决版本混乱,引入Vite+HMR让Electron本地开发告别"停启地狱",CEO亲自下场当普罗米修斯点火
3. **Marie Kondo式删代码**:统一导入路径(包名+清晰路径+文件后缀),减少barrel文件,让AI能精准识别"死代码"。结果疯狂删代码:单PR删除上万行,团队享受"五杀"快感,还提炼出跨平台通用包(utils/hooks/types)
4. **生产环境统一Vite**:干掉Rollup,用Glob Imports做代码分割,配合路由级动态加载,i18n文件懒加载,最终渲染包从巨大体积瘦身到2.7MB,构建速度快到QA都惊呼"嗖嗖嗖"
5. **组件层"换血"**:用Tailwind+Shadcn/Radix UI(后迁Base UI)替代Grommet和Styled Components,给旧组件挂ESLint"红牌"禁止令,同时写迁移指南。React Router v5→v7的大升级也顺势完成,现在搭个新页面只需一天
URL:https://medal.tv/blog/posts/w-key-in-frontend-synergizing-technology-and-product
标签:#前端工程化 #Electron #Vite #代码重构 #Monorepo #TailwindCSS #ShadcnUI #ReactRouter #性能优化 #Medal
总结:
文章要点:
1. **从"巨兽组件"说起**:作者用一张拥有30+ props的TextInput截图开场,生动展示了"反模式"组件的恐怖——职责混乱、默认值泛滥、DOM和自定义props杂糅,改一行代码要检查十个角落,开发体验堪比噩梦
2. **宏观手术刀**:不硬啃旧组件,而是先换"土壤"——迁移Monorepo+PNPM解决版本混乱,引入Vite+HMR让Electron本地开发告别"停启地狱",CEO亲自下场当普罗米修斯点火
3. **Marie Kondo式删代码**:统一导入路径(包名+清晰路径+文件后缀),减少barrel文件,让AI能精准识别"死代码"。结果疯狂删代码:单PR删除上万行,团队享受"五杀"快感,还提炼出跨平台通用包(utils/hooks/types)
4. **生产环境统一Vite**:干掉Rollup,用Glob Imports做代码分割,配合路由级动态加载,i18n文件懒加载,最终渲染包从巨大体积瘦身到2.7MB,构建速度快到QA都惊呼"嗖嗖嗖"
5. **组件层"换血"**:用Tailwind+Shadcn/Radix UI(后迁Base UI)替代Grommet和Styled Components,给旧组件挂ESLint"红牌"禁止令,同时写迁移指南。React Router v5→v7的大升级也顺势完成,现在搭个新页面只需一天
URL:https://medal.tv/blog/posts/w-key-in-frontend-synergizing-technology-and-product
《MDN 推出官方 MCP 服务器,让 AI 助手实时获取权威 Web 文档》
标签:#前端 #AI工具 #MCP #MDN #浏览器兼容性 #VSCode #Claude
总结:
MDN 官方发布了一款实验性 MCP(Model Context Protocol)服务器,旨在让 LLM 和编程助手直接访问 MDN 的搜索、文档及浏览器兼容性数据(BCD),解决 AI 回答中可能出现的过时或错误信息问题。开发者可通过远程服务或本地部署方式接入,支持 VS Code、Claude Code 等 MCP 兼容客户端,实现编码时一键查询 API 用法和兼容性,无需离开编辑器。
文章要点:
1. 官方出品,权威数据源:这是 MDN 官方推出的 MCP 服务器,直接对接 MDN 的搜索 API、文档 JSON API 以及浏览器兼容性数据(BCD),确保 AI 获取的是最新、最准确的 Web 平台技术资料,而不是训练数据中的"旧知识"
2. 六大核心工具,覆盖开发全场景:提供
3. 远程 + 本地双模式部署:既可以一键接入官方远程服务(
4. 无缝集成主流开发工具:完美支持 VS Code、Claude Code、Cursor 等 MCP 兼容客户端,配置简单,安装后直接在 AI 聊天中调用工具,真正实现"边写代码边查文档"的流畅体验
5. 实验性质,持续迭代中:目前处于实验阶段,Mozilla 会收集查询数据以优化服务(可 opt-out),且保留随时调整或下线服务的权利,建议开发者关注官方动态
URL:
https://developer.mozilla.org/en-US/blog/introducing-mdn-mcp-server/
标签:#前端 #AI工具 #MCP #MDN #浏览器兼容性 #VSCode #Claude
总结:
MDN 官方发布了一款实验性 MCP(Model Context Protocol)服务器,旨在让 LLM 和编程助手直接访问 MDN 的搜索、文档及浏览器兼容性数据(BCD),解决 AI 回答中可能出现的过时或错误信息问题。开发者可通过远程服务或本地部署方式接入,支持 VS Code、Claude Code 等 MCP 兼容客户端,实现编码时一键查询 API 用法和兼容性,无需离开编辑器。
文章要点:
1. 官方出品,权威数据源:这是 MDN 官方推出的 MCP 服务器,直接对接 MDN 的搜索 API、文档 JSON API 以及浏览器兼容性数据(BCD),确保 AI 获取的是最新、最准确的 Web 平台技术资料,而不是训练数据中的"旧知识"
2. 六大核心工具,覆盖开发全场景:提供
mdn_search(关键词搜索)、mdn_doc(获取完整文档)、mdn_compat(浏览器兼容性检查)、mdn_list(浏览 BCD 特性)、mdn_css(CSS 属性定义)、mdn_http(HTTP 参考)等工具,从查文档到看兼容性一站搞定3. 远程 + 本地双模式部署:既可以一键接入官方远程服务(
https://mcp.mdn.mozilla.net/),也可以克隆仓库本地运行,满足对数据隐私有顾虑的团队需求;本地模式支持 MCP Inspector 调试,开发体验友好4. 无缝集成主流开发工具:完美支持 VS Code、Claude Code、Cursor 等 MCP 兼容客户端,配置简单,安装后直接在 AI 聊天中调用工具,真正实现"边写代码边查文档"的流畅体验
5. 实验性质,持续迭代中:目前处于实验阶段,Mozilla 会收集查询数据以优化服务(可 opt-out),且保留随时调整或下线服务的权利,建议开发者关注官方动态
URL:
https://developer.mozilla.org/en-US/blog/introducing-mdn-mcp-server/
《关于SourceMap你需要知道的一切》
标签:#前端 #SourceMap #Vite #NextJS #Webpack #安全 #CI_CD
总结:SourceMap是前端开发中用于将压缩后的代码映射回原始代码的JSON文件,能极大提升调试体验。但文章重点警示了其安全隐患——默认配置下SourceMap会内联完整源代码,若不慎部署到生产环境,任何人都能通过浏览器或curl获取你的原始代码、目录结构甚至敏感信息。文章以Apple和Anthropic的泄露事件为例,详细说明了如何正确配置构建工具、设置服务器规则以及在CI/CD中自动化检测,防止源代码泄露。
文章要点:
1. SourceMap本质上是一个JSON文件,包含sources(原始文件路径)、names(原始变量名)、mappings(位置映射)和sourcesContent(完整源代码)四个关键字段,能将压缩后的代码精准还原
2. 构建流程通常是TypeScript编译→JS代码→压缩混淆,而SourceMap则反向执行这个流程,让浏览器DevTools能显示原始代码和变量名
3. 最大的安全风险在于sourcesContent默认会内联完整源代码,泄露后不仅暴露目录结构和模块名,还可能泄露API密钥、端点信息和未发布的功能开关
4. Apple在2025年11月因部署SourceMap到生产环境导致App Store前端源码泄露;Anthropic在2026年3月因npm包包含59.8MB的SourceMap文件,导致Claude Code核心代码被永久镜像传播
5. 防护措施包括:构建工具关闭生产环境SourceMap(Vite设sourcemap:false,NextJS设productionBrowserSourceMaps:false)、使用hidden模式仅上传错误追踪平台、服务器对.map请求返回404
6. 建议在CI/CD中添加自动化检查脚本,扫描输出目录中的.map文件,若包含sourcesContent则中断构建,从源头杜绝人为疏忽导致的泄露
URL:https://neciudan.dev/everything-you-need-to-know-about-sourcemaps
标签:#前端 #SourceMap #Vite #NextJS #Webpack #安全 #CI_CD
总结:SourceMap是前端开发中用于将压缩后的代码映射回原始代码的JSON文件,能极大提升调试体验。但文章重点警示了其安全隐患——默认配置下SourceMap会内联完整源代码,若不慎部署到生产环境,任何人都能通过浏览器或curl获取你的原始代码、目录结构甚至敏感信息。文章以Apple和Anthropic的泄露事件为例,详细说明了如何正确配置构建工具、设置服务器规则以及在CI/CD中自动化检测,防止源代码泄露。
文章要点:
1. SourceMap本质上是一个JSON文件,包含sources(原始文件路径)、names(原始变量名)、mappings(位置映射)和sourcesContent(完整源代码)四个关键字段,能将压缩后的代码精准还原
2. 构建流程通常是TypeScript编译→JS代码→压缩混淆,而SourceMap则反向执行这个流程,让浏览器DevTools能显示原始代码和变量名
3. 最大的安全风险在于sourcesContent默认会内联完整源代码,泄露后不仅暴露目录结构和模块名,还可能泄露API密钥、端点信息和未发布的功能开关
4. Apple在2025年11月因部署SourceMap到生产环境导致App Store前端源码泄露;Anthropic在2026年3月因npm包包含59.8MB的SourceMap文件,导致Claude Code核心代码被永久镜像传播
5. 防护措施包括:构建工具关闭生产环境SourceMap(Vite设sourcemap:false,NextJS设productionBrowserSourceMaps:false)、使用hidden模式仅上传错误追踪平台、服务器对.map请求返回404
6. 建议在CI/CD中添加自动化检查脚本,扫描输出目录中的.map文件,若包含sourcesContent则中断构建,从源头杜绝人为疏忽导致的泄露
URL:https://neciudan.dev/everything-you-need-to-know-about-sourcemaps
《为什么我放弃Next.js和RSC,回归传统SPA与独立后端》
标签:#前端 #Web开发 #React #NextJS #React_Server_Components #SPA #架构设计 #安全 #TanStack #Hono
总结:
作者回顾了自己从Next.js忠实用户到拥抱App Router/RSC,最终回归传统SPA+独立后端的完整历程。文章深入分析了RSC架构带来的心智负担、序列化开销和安全风险,结合2025-2026年多起严重CVE漏洞,论证了将渲染框架与安全边界解耦的必要性,并分享了当前基于React Router+Vite+Hono的简洁技术栈。
文章要点:
1. Next.js的黄金时代:Pages Router时期心智模型清晰,服务端/客户端边界一目了然,文件路由简单易懂,部署零成本
2. App Router带来的混乱:Server/Client Component区分成为负担,"use client"指令传染性强,开发/构建/生产环境缓存行为不一致,服务端客户端边界变得不可见
3. 安全漏洞敲响警钟:2025年CVE-2025-29927中间件绕过(CVSS 9.1)、2025年底RSC核心包10分满分漏洞CVE-2025-55182、2026年初多起Server Function DoS漏洞,攻击面集中在服务端渲染和反序列化环节
4. TanStack并非避风港:2026年5月TanStack遭遇供应链攻击,42个包被投毒,说明换框架不能免疫风险,减少依赖面才是关键
5. 序列化是根本原因:RSC的"无缝"本质是分布式系统的序列化问题,函数、类实例、错误栈都无法透明穿越边界,反序列化不可信输入成为高危攻击面
6. 当前架构选择:React Router框架模式+Vite纯SPA(仅营销页预渲染)+ Hono独立后端,API通过显式HTTP调用,无RSC负载,无服务端序列化
7. 安全设计原则:认证授权在API层强制执行,前端中间件只做UX跳转,CORS/CSRF/验证码/限流全部在可控的后端实现,与渲染框架彻底解耦
8. 核心收获:架构清晰可指认、无序列化税、前端攻击面趋近于零、后端语言自由选型、依赖更少爆炸半径更小——"无聊"在软件工程里是赞美
URL:https://dev.to/zulikram/why-i-walked-back-from-nextjs-and-rsc-to-a-plain-spa-and-a-separate-backend-4k8p
标签:#前端 #Web开发 #React #NextJS #React_Server_Components #SPA #架构设计 #安全 #TanStack #Hono
总结:
作者回顾了自己从Next.js忠实用户到拥抱App Router/RSC,最终回归传统SPA+独立后端的完整历程。文章深入分析了RSC架构带来的心智负担、序列化开销和安全风险,结合2025-2026年多起严重CVE漏洞,论证了将渲染框架与安全边界解耦的必要性,并分享了当前基于React Router+Vite+Hono的简洁技术栈。
文章要点:
1. Next.js的黄金时代:Pages Router时期心智模型清晰,服务端/客户端边界一目了然,文件路由简单易懂,部署零成本
2. App Router带来的混乱:Server/Client Component区分成为负担,"use client"指令传染性强,开发/构建/生产环境缓存行为不一致,服务端客户端边界变得不可见
3. 安全漏洞敲响警钟:2025年CVE-2025-29927中间件绕过(CVSS 9.1)、2025年底RSC核心包10分满分漏洞CVE-2025-55182、2026年初多起Server Function DoS漏洞,攻击面集中在服务端渲染和反序列化环节
4. TanStack并非避风港:2026年5月TanStack遭遇供应链攻击,42个包被投毒,说明换框架不能免疫风险,减少依赖面才是关键
5. 序列化是根本原因:RSC的"无缝"本质是分布式系统的序列化问题,函数、类实例、错误栈都无法透明穿越边界,反序列化不可信输入成为高危攻击面
6. 当前架构选择:React Router框架模式+Vite纯SPA(仅营销页预渲染)+ Hono独立后端,API通过显式HTTP调用,无RSC负载,无服务端序列化
7. 安全设计原则:认证授权在API层强制执行,前端中间件只做UX跳转,CORS/CSRF/验证码/限流全部在可控的后端实现,与渲染框架彻底解耦
8. 核心收获:架构清晰可指认、无序列化税、前端攻击面趋近于零、后端语言自由选型、依赖更少爆炸半径更小——"无聊"在软件工程里是赞美
URL:https://dev.to/zulikram/why-i-walked-back-from-nextjs-and-rsc-to-a-plain-spa-and-a-separate-backend-4k8p
《AI 正在重演前端的"失落十年"吗?》
标签:#前端 #AI编程 #职业发展 #软件工程 # craftsmanship #Bauhaus
总结:
作者将 AI 对编程行业的冲击与前十年 JavaScript 框架对前端的"去技能化"(deskilling)进行类比。框架把浏览器当作编译目标,让通用开发者无需理解 HTML 语义、无障碍、性能等底层知识就能"搞定"前端;AI 编码则进一步将手工写代码的技能消解为"操作半熟练工人使用的技术"。文章认为这降低了从业者议价能力、牺牲了质量,但也承认这是效率提升和抽象层级升高的必然趋势。作者借用 Bauhaus 运动的启示——不是对抗工业化,而是让工匠与工厂协作、以用户为中心重新设计——呼吁在 AI 时代依然需要"懂材料"的人,同时指出商业成功与软件质量本就很少相关,真正的 craft 只会成为更小的切片。
文章要点:
1. "去技能化"正在从特定领域扩散到整个编程行业:框架让前端从专精技能变成通用技能,AI 让编程本身面临同样命运
2. 现代"全栈开发者"往往不是前后端都精通,而是能用框架两边都糊弄的通才,企业因此获得成本节省和人员灵活调配
3. AI 编码是"非确定性抽象"——不像编译器那样稳定,输入或模型的微小变化会导致截然不同的结果,更像是"不会学习的初级工程师"
4. LLM 是 Stack Overflow 复制粘贴的终极进化:让懂行的人更快,让不懂的人也能凑出"能跑"的东西,但抽象泄漏时依然需要有人深入理解并修复
5. 商业成功与软件质量几乎不相关,糟糕的网站对转化率影响有限,且"没人因为选了 React 而被解雇"
6. Bauhaus 运动的启示:不复古也不对抗工业化,而是让设计师回到工坊、与材料共事,最终产出兼顾批量生产和用户体验的设计
7. 前端 craft 不会消失,但会成为更小的切片;就像字体设计不再是全职工作、塑料垃圾泛滥但好工业设计依然存在
8. 快速迭代和 MVP 有其价值,但需要知道自己在验证什么;性能和无障碍等基础如果一开始没做对,后期很难补救
9. AI 只是工具箱里的又一件工具,但 hype 周期内我们会看到丑陋的代码、破碎的沟通和借 AI 之名裁员
10. 作者自己的框架 Mastro 倡导"从简单栈开始、后续再添加功能",反对先上重型框架再试图优化
URL:https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/
标签:#前端 #AI编程 #职业发展 #软件工程 # craftsmanship #Bauhaus
总结:
作者将 AI 对编程行业的冲击与前十年 JavaScript 框架对前端的"去技能化"(deskilling)进行类比。框架把浏览器当作编译目标,让通用开发者无需理解 HTML 语义、无障碍、性能等底层知识就能"搞定"前端;AI 编码则进一步将手工写代码的技能消解为"操作半熟练工人使用的技术"。文章认为这降低了从业者议价能力、牺牲了质量,但也承认这是效率提升和抽象层级升高的必然趋势。作者借用 Bauhaus 运动的启示——不是对抗工业化,而是让工匠与工厂协作、以用户为中心重新设计——呼吁在 AI 时代依然需要"懂材料"的人,同时指出商业成功与软件质量本就很少相关,真正的 craft 只会成为更小的切片。
文章要点:
1. "去技能化"正在从特定领域扩散到整个编程行业:框架让前端从专精技能变成通用技能,AI 让编程本身面临同样命运
2. 现代"全栈开发者"往往不是前后端都精通,而是能用框架两边都糊弄的通才,企业因此获得成本节省和人员灵活调配
3. AI 编码是"非确定性抽象"——不像编译器那样稳定,输入或模型的微小变化会导致截然不同的结果,更像是"不会学习的初级工程师"
4. LLM 是 Stack Overflow 复制粘贴的终极进化:让懂行的人更快,让不懂的人也能凑出"能跑"的东西,但抽象泄漏时依然需要有人深入理解并修复
5. 商业成功与软件质量几乎不相关,糟糕的网站对转化率影响有限,且"没人因为选了 React 而被解雇"
6. Bauhaus 运动的启示:不复古也不对抗工业化,而是让设计师回到工坊、与材料共事,最终产出兼顾批量生产和用户体验的设计
7. 前端 craft 不会消失,但会成为更小的切片;就像字体设计不再是全职工作、塑料垃圾泛滥但好工业设计依然存在
8. 快速迭代和 MVP 有其价值,但需要知道自己在验证什么;性能和无障碍等基础如果一开始没做对,后期很难补救
9. AI 只是工具箱里的又一件工具,但 hype 周期内我们会看到丑陋的代码、破碎的沟通和借 AI 之名裁员
10. 作者自己的框架 Mastro 倡导"从简单栈开始、后续再添加功能",反对先上重型框架再试图优化
URL:https://mastrojs.github.io/blog/2026-05-23-is-AI-causing-a-repeat-of-frontends-lost-decade/
《用 Web Components 构建框架无关的设计系统(实践指南)》
标签:#前端 #WebComponents #设计系统 #Elena #VitePress #CSS #无障碍
总结:
本文是一份超详细的实战教程,手把手教你用 Web Components(通过 Elena 库)和 VitePress 搭建一个框架无关、可发布的设计系统。核心思路是"最低可行层级"——用 web 标准直接写原子组件,避免框架锁定;组件保持"最笨"状态,把复杂业务逻辑留给应用层。文章涵盖 monorepo 结构搭建、Elena 组件脚手架、条件渲染、@scope 样式隔离、CSS 自定义属性主题化,以及通过 JSDoc + Custom Elements Manifest 自动生成 Props 表格的文档工作流。最终产出的是一个可独立发布的组件包 + 可部署的静态文档站。
文章要点:
1. 设计系统从第一天就绑定特定框架(如 React)是"令人费解的"——web 标准组件才是可移植、可组合、经得起时间考验的选择
2. Elena 是"刚好够用的抽象":处理跨框架的 prop/attribute 同步、事件委托等脏活,但不掩盖 web 标准本质
3. 组件应保持"最笨"——被告知显式状态和内容的声明式组件,比内置复杂状态管理的"聪明"组件更健康
4. 设计决策应该在代码中而非 Figma 中完成:现代色彩空间、相对单位、对数排版比例等,设计工具只能模拟浏览器的很小一部分能力
5. 用 @scope 实现样式隔离 + 组件级 CSS 自定义属性作为"最终层 token",既保证封装又有主题化回退
6. JSDoc 注释即文档:Elena 自动生成 custom-elements.json,VitePress 通过 data loader 直接渲染 PropsTable 和 ComponentHeader
7. 文档即测试场:在 VitePress 中实时预览组件,确保跨框架可移植性;开发时 concurrent 运行 watch + docs:dev 实现热更新
8. 条件渲染示例:同一个组件通过 href prop 自动切换 button/a 标签,CTA 链接按钮的常见需求也能语义化实现
URL:https://piccalil.li/blog/framework-agnostic-design-systems-part-1/
标签:#前端 #WebComponents #设计系统 #Elena #VitePress #CSS #无障碍
总结:
本文是一份超详细的实战教程,手把手教你用 Web Components(通过 Elena 库)和 VitePress 搭建一个框架无关、可发布的设计系统。核心思路是"最低可行层级"——用 web 标准直接写原子组件,避免框架锁定;组件保持"最笨"状态,把复杂业务逻辑留给应用层。文章涵盖 monorepo 结构搭建、Elena 组件脚手架、条件渲染、@scope 样式隔离、CSS 自定义属性主题化,以及通过 JSDoc + Custom Elements Manifest 自动生成 Props 表格的文档工作流。最终产出的是一个可独立发布的组件包 + 可部署的静态文档站。
文章要点:
1. 设计系统从第一天就绑定特定框架(如 React)是"令人费解的"——web 标准组件才是可移植、可组合、经得起时间考验的选择
2. Elena 是"刚好够用的抽象":处理跨框架的 prop/attribute 同步、事件委托等脏活,但不掩盖 web 标准本质
3. 组件应保持"最笨"——被告知显式状态和内容的声明式组件,比内置复杂状态管理的"聪明"组件更健康
4. 设计决策应该在代码中而非 Figma 中完成:现代色彩空间、相对单位、对数排版比例等,设计工具只能模拟浏览器的很小一部分能力
5. 用 @scope 实现样式隔离 + 组件级 CSS 自定义属性作为"最终层 token",既保证封装又有主题化回退
6. JSDoc 注释即文档:Elena 自动生成 custom-elements.json,VitePress 通过 data loader 直接渲染 PropsTable 和 ComponentHeader
7. 文档即测试场:在 VitePress 中实时预览组件,确保跨框架可移植性;开发时 concurrent 运行 watch + docs:dev 实现热更新
8. 条件渲染示例:同一个组件通过 href prop 自动切换 button/a 标签,CTA 链接按钮的常见需求也能语义化实现
URL:https://piccalil.li/blog/framework-agnostic-design-systems-part-1/
《垂直代码库:告别按类型分层,拥抱按业务域组织》
标签:#前端 #代码组织 #架构设计 #Monorepo #React #软件工程
总结:
本文主张前端代码库应从"水平分层"(按 components/hooks/utils 技术类型划分)转向"垂直切片"(按业务域/功能域组织)。作者以 Sentry 代码库十年演进为例,指出水平分层会导致代码分散、认知负荷高、耦合混乱;而垂直组织将同一业务域的组件、工具、类型内聚到一起,配合 Monorepo 的显式边界(exports/eslint-plugin-boundaries),能显著提升可维护性。虽然确定正确的垂直划分需要更多团队沟通,但这是支撑代码库长期演进的必要投资。
文章要点:
- 水平分层的隐患:把代码按 components / hooks / utils / types 分类虽然上手简单,但随着项目膨胀,同一业务逻辑会被拆得七零八落——比如 PageFilters 的组件、类型、工具函数散落在三个目录,改一个小需求要跳来跳去, cognitive load 直接拉满
- 垂直切片的核心思想:不按"技术类型"而按"业务域"分组,把同一个功能域(如 dashboard、profiling、billing)相关的组件、Hook、工具、类型全部收进一个目录;就像当年我们把 HTML/CSS/JS 从三层文件合并成组件一样,这次是更高维度的"关注点内聚"
- 与团队结构天然对齐:现代产品团队通常是端到端的功能团队(dashboard 团队、replay 团队),垂直代码结构让 CODEOWNERS 和包边界直接对应团队职责,谁负责什么一目了然
- 解决跨域复用焦虑:不是所有代码都严格属于某个页面,像 PageFilters 这种被多页面使用的通用能力,完全可以作为独立垂直域存在;关键是按"逻辑关联"而非"物理位置"来划分
- 用边界守护架构:垂直化后还需降低耦合,推荐通过 Monorepo + package.json#exports 显式暴露公共 API,或借助 eslint-plugin-boundaries 禁止深路径导入,把"私有实现"真正保护起来
- 没有银弹,但值得投入:确定合理的垂直域确实比"丢进 utils"更难,也可能出现不同团队重复造轮子;但作者认为这恰恰促进了团队沟通,而沟通本就是软件工程最难也最重要的部分
文章URL:
https://tkdodo.eu/blog/the-vertical-codebase
标签:#前端 #代码组织 #架构设计 #Monorepo #React #软件工程
总结:
本文主张前端代码库应从"水平分层"(按 components/hooks/utils 技术类型划分)转向"垂直切片"(按业务域/功能域组织)。作者以 Sentry 代码库十年演进为例,指出水平分层会导致代码分散、认知负荷高、耦合混乱;而垂直组织将同一业务域的组件、工具、类型内聚到一起,配合 Monorepo 的显式边界(exports/eslint-plugin-boundaries),能显著提升可维护性。虽然确定正确的垂直划分需要更多团队沟通,但这是支撑代码库长期演进的必要投资。
文章要点:
- 水平分层的隐患:把代码按 components / hooks / utils / types 分类虽然上手简单,但随着项目膨胀,同一业务逻辑会被拆得七零八落——比如 PageFilters 的组件、类型、工具函数散落在三个目录,改一个小需求要跳来跳去, cognitive load 直接拉满
- 垂直切片的核心思想:不按"技术类型"而按"业务域"分组,把同一个功能域(如 dashboard、profiling、billing)相关的组件、Hook、工具、类型全部收进一个目录;就像当年我们把 HTML/CSS/JS 从三层文件合并成组件一样,这次是更高维度的"关注点内聚"
- 与团队结构天然对齐:现代产品团队通常是端到端的功能团队(dashboard 团队、replay 团队),垂直代码结构让 CODEOWNERS 和包边界直接对应团队职责,谁负责什么一目了然
- 解决跨域复用焦虑:不是所有代码都严格属于某个页面,像 PageFilters 这种被多页面使用的通用能力,完全可以作为独立垂直域存在;关键是按"逻辑关联"而非"物理位置"来划分
- 用边界守护架构:垂直化后还需降低耦合,推荐通过 Monorepo + package.json#exports 显式暴露公共 API,或借助 eslint-plugin-boundaries 禁止深路径导入,把"私有实现"真正保护起来
- 没有银弹,但值得投入:确定合理的垂直域确实比"丢进 utils"更难,也可能出现不同团队重复造轮子;但作者认为这恰恰促进了团队沟通,而沟通本就是软件工程最难也最重要的部分
文章URL:
https://tkdodo.eu/blog/the-vertical-codebase
《2026年JavaScript生态全景指南》
标签:#前端 #JavaScript #ECMAScript2025 #ECMAScript2026 #React #Vue #Svelte #NodeJS #TypeScript #Vite #Bun #Deno #TemporalAPI #IteratorHelpers #ImportAttributes
总结:
本文全面梳理了2026年JavaScript生态系统的最新发展,涵盖ECMAScript 2025(迭代器助手、Set方法、Promise.try等)和2026预期特性(Temporal API、资源管理),React/Vue/Svelte框架动态,Node.js原生TypeScript支持、Bun和Deno运行时竞争,Vite 8与Turbopack构建工具演进,TypeScript v6及AI编程趋势。文章强调掌握基础原理比追逐工具更重要,特别是在AI辅助编程时代,架构能力和代码品味尤为关键。
文章要点:
- **ECMAScript 2025超实用新玩具**:迭代器终于能链式调用`.map()
- **2026年最期待的Temporal API**:Date对象终于被拯救了!处理时区和日期计算不会再莫名其妙多出几天,浏览器原生支持即将到来,告别 moment.js 大礼包的时代要来啦~
- **框架圈的大新闻**:React 19的Server Components和Compiler还在消化中,Vue 3.6祭出Vapor Mode性能大招,Svelte 5的Runes API让响应式更细粒度; Next.js 16默认切到Turbopack,Astro被Cloudflare抱走,Remix正在酝酿去React化的大胆实验~
- **运行时三国杀**:Node.js 22+能直接跑.ts文件啦(虽然只是剥离类型),Bun被Anthropic(Claude家)收编后1.3版本速速飞起,Deno 2稳如老狗主打安全牌,三足鼎立格局越来越有意思~
- **TypeScript登顶GitHub第一**:v6严格模式默认开启,v7要用Go重写编译器提速10倍;92%的开发者都在用AI写代码,但文章提醒我们——基础原理和架构品味才是AI时代真正的护城河呀!
文章URL:https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition/
标签:#前端 #JavaScript #ECMAScript2025 #ECMAScript2026 #React #Vue #Svelte #NodeJS #TypeScript #Vite #Bun #Deno #TemporalAPI #IteratorHelpers #ImportAttributes
总结:
本文全面梳理了2026年JavaScript生态系统的最新发展,涵盖ECMAScript 2025(迭代器助手、Set方法、Promise.try等)和2026预期特性(Temporal API、资源管理),React/Vue/Svelte框架动态,Node.js原生TypeScript支持、Bun和Deno运行时竞争,Vite 8与Turbopack构建工具演进,TypeScript v6及AI编程趋势。文章强调掌握基础原理比追逐工具更重要,特别是在AI辅助编程时代,架构能力和代码品味尤为关键。
文章要点:
- **ECMAScript 2025超实用新玩具**:迭代器终于能链式调用`.map()
和.filter()`啦,而且是惰性求值不耗内存;Set之间可以玩集合运算,轻松找出技能交集和差集;`Promise.try()`让同步异步错误一网打尽;还有`RegExp.escape()`终于解决了用户搜索时特殊字符炸正则的问题~- **2026年最期待的Temporal API**:Date对象终于被拯救了!处理时区和日期计算不会再莫名其妙多出几天,浏览器原生支持即将到来,告别 moment.js 大礼包的时代要来啦~
- **框架圈的大新闻**:React 19的Server Components和Compiler还在消化中,Vue 3.6祭出Vapor Mode性能大招,Svelte 5的Runes API让响应式更细粒度; Next.js 16默认切到Turbopack,Astro被Cloudflare抱走,Remix正在酝酿去React化的大胆实验~
- **运行时三国杀**:Node.js 22+能直接跑.ts文件啦(虽然只是剥离类型),Bun被Anthropic(Claude家)收编后1.3版本速速飞起,Deno 2稳如老狗主打安全牌,三足鼎立格局越来越有意思~
- **TypeScript登顶GitHub第一**:v6严格模式默认开启,v7要用Go重写编译器提速10倍;92%的开发者都在用AI写代码,但文章提醒我们——基础原理和架构品味才是AI时代真正的护城河呀!
文章URL:https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition/