<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://blog.zhangsong.site/</loc></url><url><loc>https://blog.zhangsong.site/about/</loc></url><url><loc>https://blog.zhangsong.site/blog/</loc></url><url><loc>https://blog.zhangsong.site/blog/2/</loc></url><url><loc>https://blog.zhangsong.site/blog/3/</loc></url><url><loc>https://blog.zhangsong.site/blog/4/</loc></url><url><loc>https://blog.zhangsong.site/blog/5/</loc></url><url><loc>https://blog.zhangsong.site/blog/ai-agent-frontend-ui/</loc></url><url><loc>https://blog.zhangsong.site/blog/ai-assisted-coding-workflow/</loc></url><url><loc>https://blog.zhangsong.site/blog/ai-observability-eval/</loc></url><url><loc>https://blog.zhangsong.site/blog/becoming-frontend-architect/</loc></url><url><loc>https://blog.zhangsong.site/blog/bff-layer-design/</loc></url><url><loc>https://blog.zhangsong.site/blog/browser-cache-strategy/</loc></url><url><loc>https://blog.zhangsong.site/blog/browser-rendering-pipeline/</loc></url><url><loc>https://blog.zhangsong.site/blog/bundle-analysis-optimization/</loc></url><url><loc>https://blog.zhangsong.site/blog/code-splitting-lazy-load/</loc></url><url><loc>https://blog.zhangsong.site/blog/core-web-vitals-2026/</loc></url><url><loc>https://blog.zhangsong.site/blog/css-container-queries-has/</loc></url><url><loc>https://blog.zhangsong.site/blog/css-grid-subgrid-masonry/</loc></url><url><loc>https://blog.zhangsong.site/blog/design-system-tokens/</loc></url><url><loc>https://blog.zhangsong.site/blog/edge-cdn-optimization/</loc></url><url><loc>https://blog.zhangsong.site/blog/esm-http-build-impact/</loc></url><url><loc>https://blog.zhangsong.site/blog/frontend-a11y-guide/</loc></url><url><loc>https://blog.zhangsong.site/blog/frontend-ai-transition/</loc></url><url><loc>https://blog.zhangsong.site/blog/frontend-cicd-pipeline/</loc></url><url><loc>https://blog.zhangsong.site/blog/frontend-monitoring-rum/</loc></url><url><loc>https://blog.zhangsong.site/blog/frontend-security-xss-csp/</loc></url><url><loc>https://blog.zhangsong.site/blog/frontend-testing-strategy/</loc></url><url><loc>https://blog.zhangsong.site/blog/function-calling-tool-use/</loc></url><url><loc>https://blog.zhangsong.site/blog/image-optimization-avif/</loc></url><url><loc>https://blog.zhangsong.site/blog/inp-optimization/</loc></url><url><loc>https://blog.zhangsong.site/blog/langgraph-multi-agent/</loc></url><url><loc>https://blog.zhangsong.site/blog/llm-rag-architecture/</loc></url><url><loc>https://blog.zhangsong.site/blog/lora-qlora-finetuning/</loc></url><url><loc>https://blog.zhangsong.site/blog/memory-leak-devtools/</loc></url><url><loc>https://blog.zhangsong.site/blog/micro-frontend-module-federation/</loc></url><url><loc>https://blog.zhangsong.site/blog/mini-react-scheduler/</loc></url><url><loc>https://blog.zhangsong.site/blog/monorepo-pnpm-turborepo/</loc></url><url><loc>https://blog.zhangsong.site/blog/nextjs-cache-guide/</loc></url><url><loc>https://blog.zhangsong.site/blog/pnpm-hardlink-ghost-deps/</loc></url><url><loc>https://blog.zhangsong.site/blog/prompt-engineering-handbook/</loc></url><url><loc>https://blog.zhangsong.site/blog/react-19-actions-optimistic/</loc></url><url><loc>https://blog.zhangsong.site/blog/react-compiler/</loc></url><url><loc>https://blog.zhangsong.site/blog/react-rendering-fiber/</loc></url><url><loc>https://blog.zhangsong.site/blog/react-server-components/</loc></url><url><loc>https://blog.zhangsong.site/blog/state-management-2026/</loc></url><url><loc>https://blog.zhangsong.site/blog/suspense-streaming-ssr/</loc></url><url><loc>https://blog.zhangsong.site/blog/transformer-attention/</loc></url><url><loc>https://blog.zhangsong.site/blog/turbopack-rspack-2026/</loc></url><url><loc>https://blog.zhangsong.site/blog/typescript-type-gymnastics/</loc></url><url><loc>https://blog.zhangsong.site/blog/vector-database-semantic-search/</loc></url><url><loc>https://blog.zhangsong.site/blog/view-transitions-api/</loc></url><url><loc>https://blog.zhangsong.site/blog/vite-rolldown-evolution/</loc></url><url><loc>https://blog.zhangsong.site/blog/wasm-worker-multithread/</loc></url><url><loc>https://blog.zhangsong.site/blog/webgpu-intro/</loc></url><url><loc>https://blog.zhangsong.site/blog/webllm-browser-inference/</loc></url><url><loc>https://blog.zhangsong.site/blog/webpack-to-rspack-migration/</loc></url><url><loc>https://blog.zhangsong.site/tags/</loc></url><url><loc>https://blog.zhangsong.site/tags/%E5%AE%89%E5%85%A8/</loc></url><url><loc>https://blog.zhangsong.site/tags/%E5%B7%A5%E7%A8%8B%E5%8C%96/</loc></url><url><loc>https://blog.zhangsong.site/tags/%E6%9E%B6%E6%9E%84/</loc></url><url><loc>https://blog.zhangsong.site/tags/%E6%80%A7%E8%83%BD/</loc></url><url><loc>https://blog.zhangsong.site/tags/%E6%88%90%E9%95%BF/</loc></url><url><loc>https://blog.zhangsong.site/tags/%E6%A1%86%E6%9E%B6/</loc></url><url><loc>https://blog.zhangsong.site/tags/%E6%B5%8F%E8%A7%88%E5%99%A8/</loc></url><url><loc>https://blog.zhangsong.site/tags/%E8%B4%A8%E9%87%8F/</loc></url><url><loc>https://blog.zhangsong.site/tags/AI/</loc></url><url><loc>https://blog.zhangsong.site/tags/CSS/</loc></url><url><loc>https://blog.zhangsong.site/tags/React/</loc></url><url><loc>https://blog.zhangsong.site/tags/TypeScript/</loc></url></urlset>