Now vibe coding, so learning hammer FE ?
#文章 本文深入解析了GitHub Copilot CLI三秒ASCII开机动画背后的复杂工程实现,揭示了终端动画在缺乏统一标准的环境下,如何通过自定义工具链、语义化颜色映射和无障碍优先设计,解决跨终端兼容性与可访问性挑战。
https://github.blog/engineering/from-pixels-to-characters-the-engineering-behind-github-copilot-clis-animated-ascii-banner/
https://github.blog/engineering/from-pixels-to-characters-the-engineering-behind-github-copilot-clis-animated-ascii-banner/
#文章 2026 年,Favicon 最佳实践的文章。
https://evilmartians.com/chronicles/how-to-favicon-in-2021-six-files-that-fit-most-needs
https://evilmartians.com/chronicles/how-to-favicon-in-2021-six-files-that-fit-most-needs
#文章 有开发者大胆预测,微软迟早会放弃 Windows,转战“Windows 外壳的 Linux”。大胆,确实挺有想象空间。
https://gamesbymason.com/blog/2026/microsoft/
https://gamesbymason.com/blog/2026/microsoft/
#文章 这是一条关于 tanstack start 中间件的文章。
https://frontendmasters.com/blog/introducing-tanstack-start-middleware/
https://frontendmasters.com/blog/introducing-tanstack-start-middleware/
#文章 利用 ES2022 的
- 错误链非枚举,不污染日志;可逐层访问 `err.cause` 获取完整堆栈与类型。
- 自定义错误类只需
- 使用场景
- 多层架构(服务→服务、包装函数、微调用)中,顶层抛出的同时需要追踪根因。
- 数据库/网络异常被重新包装为业务错误(如
- 单元测试断言:`expect(err.cause).toBeInstanceOf(原始错误类)`。
- 最佳实践
- 只在关键上下文加链,避免过度包装导致调试噪音。
- 手动记录:`console.error(err)
- 保持错误类型清晰,自定义类命名语义化,方便日志与监控筛选。
https://allthingssmitty.com/2025/11/10/error-chaining-in-javascript-cleaner-debugging-with-error-cause/
Error.cause 在构造函数中保留原始错误:`new Error(msg, { cause: err })`。- 错误链非枚举,不污染日志;可逐层访问 `err.cause` 获取完整堆栈与类型。
- 自定义错误类只需
super(message, { cause }) 即可自动继承该能力;TypeScript 需 `target/lib ≥ es2022`。- 使用场景
- 多层架构(服务→服务、包装函数、微调用)中,顶层抛出的同时需要追踪根因。
- 数据库/网络异常被重新包装为业务错误(如
ConnectionTimeoutError → DatabaseError → `ServiceUnavailableError`)。- 单元测试断言:`expect(err.cause).toBeInstanceOf(原始错误类)`。
- 最佳实践
- 只在关键上下文加链,避免过度包装导致调试噪音。
- 手动记录:`console.error(err)
后紧跟 `console.error('Caused by:', err.cause)`;使用递归辅助函数 `logErrorChain/logFullErrorChain 打印完整链。- 保持错误类型清晰,自定义类命名语义化,方便日志与监控筛选。
https://allthingssmitty.com/2025/11/10/error-chaining-in-javascript-cleaner-debugging-with-error-cause/
#文章 Navigation API即将全面支持所有浏览器:这项令人振奋的新 Web 平台 API 很快将在所有浏览器中上线,它将重新定义我们构建客户端/单页应用导航的方式。不再需要使用原本并非为单页应用设计的笨拙 History API,也不再需要一个 <Link> 组件来拦截点击事件以调用 event.preventDefault() 和 history.pushState() ,取而代之的是,将有一个统一的中心位置来处理和拦截导航事件。React 团队正在开发一项过渡指示器功能,该功能将利用这一 API 提供原生的加载状态反馈。
#文章 #CSS 文章示范了用容器查询、
https://ishadeed.com/article/modern-css-section-layout/
:has()、clamp()等现代 CSS,让“头部+卡片网格”这一简单布局随卡片数量与宽度自动切换形态。https://ishadeed.com/article/modern-css-section-layout/
#文章 作者在使用 Next.js App Router 和 React Server Components(RSC)一年后的不满和失望,并解释了他们为什么选择迁移到 TanStack Start。作者详细分析了 Next.js App Router 和 RSC 的设计缺陷,包括:乐观更新不可、每次导航都是另一次获取、布局人为受限、内容双重下载、Turbopack 表现不佳。
https://paperclover.net/blog/webdev/one-year-next-app-router
https://paperclover.net/blog/webdev/one-year-next-app-router
#文章 #JS JavaScript 中的异步循环,作者对比总结了部分实践
https://allthingssmitty.com/2025/10/20/rethinking-async-loops-in-javascript/
https://allthingssmitty.com/2025/10/20/rethinking-async-loops-in-javascript/
#UX #文章 主要介绍了ARIA属性在无障碍网络应用中的关键作用,特别是aria-selected、aria-pressed、aria-current和aria-checked这四个容易混淆的属性。文章详细解释了每个属性的用途、适用场景、常见值以及最佳实践,同时指出了开发者在使用这些属性时常见的错误,并强调了正确使用ARIA属性对于确保辅助技术准确传达界面状态的重要性。
https://www.tpgi.com/what-state-aria-in/
https://www.tpgi.com/what-state-aria-in/
#文章 Next.js App Router 结合 React Server Components 带来 零 JS 前端渲染、流式 SSR 与自动代码分割 等亮点,却同时陷入 乐观更新缺失、每次导航重复取数、布局受限、双倍内容下载与调试痛苦 的深度缺陷;作者用一年实战证明,这套架构对动态应用既浪费带宽又折磨开发者,最终迁往 TanStack Start 才重获性能与可维护性。
https://paperclover.net/blog/webdev/one-year-next-app-router
https://paperclover.net/blog/webdev/one-year-next-app-router
#文章 React Server Components 本身并不“神奇”,真正的性能提升来自“服务器端数据获取 + Streaming + Suspense”的正确组合。 如果只用 RSC 而不重构数据流,性能甚至可能倒退。
https://www.developerway.com/posts/react-server-components-performance
https://www.developerway.com/posts/react-server-components-performance
#文章 2025 年的 Node.js 已内置全套现代 Web 标准与开发工具,升 20.x 即可零依赖写 ESM、fetch、测试、watch、权限、单文件部署,彻底告别“装包装到哭”的旧时代。
https://kashw1n.com/blog/nodejs-2025/
https://kashw1n.com/blog/nodejs-2025/
#AI #文章 原型≠产品:作者指出,氛围编码工具适合创意验证,但无法替代专业开发。
https://thenewstack.io/as-vibe-coding-fades-woz-offers-production-ready-alternative/
https://thenewstack.io/as-vibe-coding-fades-woz-offers-production-ready-alternative/
#React #文章 文章介绍了如何使用React的`useDeferredValue()`和`useSuspenseQuery()`构建响应式的异步组合框组件,通过将数据获取逻辑提取到单独组件中并利用Suspense和错误边界,简化了加载和错误状态管理,同时通过`useDeferredValue()`优化渲染,实现平滑的用户体验和过时数据更新体验。
https://certificates.dev/blog/building-an-async-combobox-with-usesuspensequery-and-usedeferredvalue
https://certificates.dev/blog/building-an-async-combobox-with-usesuspensequery-and-usedeferredvalue
#文章 如何给 Astro 静态站点添加极速的前端搜索
https://evilmartians.com/chronicles/how-to-add-fast-client-side-search-to-astro-static-sites
https://evilmartians.com/chronicles/how-to-add-fast-client-side-search-to-astro-static-sites
#文章 解密 Object.groupBy 和 Map.groupBy 的用法。不过caniuse 显示浏览器需要 117+ 。就当看个乐子,探索精神是好的,实际用的时候还是有限 lodash ,因为兼容。
https://allthingssmitty.com/2025/10/06/grouping-arrays-in-modern-javascript-object-groupby-and-map-groupby/
https://allthingssmitty.com/2025/10/06/grouping-arrays-in-modern-javascript-object-groupby-and-map-groupby/