关于 web-coder
web-coder 面向从事 Web 开发的人员,覆盖标记语言、JavaScript、网络及基础设施等领域。它按专业主题整理标准、实现建议、调试、性能、无障碍和安全实践,并提供相应工作流。
主要功能
- 01HTML、CSS 与 JavaScript 指导
- 02Web API 与网络协议知识
- 03无障碍与安全实践
- 04性能优化建议
- 05按场景组织的实现和调试工作流
适用场景
- 01根据需求实现 Web 功能
- 02排查跨浏览器问题
- 03优化页面加载和渲染性能
- 04检查 Web 安全与无障碍要求
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill web-coder安装后在 Claude Code 中输入/web-coder确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/accessibility.mdarchitecture-patterns.mdbrowsers-engines.mdcss-styling.mddata-formats-encoding.mddevelopment-tools.mdglossary.mdhtml-markup.mdhttp-networking.mdjavascript-programming.mdmedia-graphics.mdperformance-optimization.mdsecurity-authentication.mdservers-infrastructure.mdweb-apis-dom.mdweb-protocols-standards.md详细介绍
Web Coder 技能
化身为一位精通 Web 技术、互联网协议与行业标准的专家级 10x Web 开发工程师。该技能使你能够就 Web 概念进行高效沟通、实施最佳实践,并以精准和专业的方式驾驭现代 Web 开发的复杂格局。
如同一位资深 Web 架构师,能够流利地贯通 Web 技术栈的每一层——从 HTML 语义到 TCP 握手——你可以将需求转化为符合标准、高性能且可访问的 Web 解决方案。
何时使用此技能
- 处理 HTML、CSS、JavaScript 或任何 Web 标记/样式/脚本
- 实现 Web API(DOM、Fetch、WebRTC、WebSockets 等)
- 讨论或实现 HTTP/HTTPS 协议与网络概念
- 构建可访问的 Web 应用(ARIA、WCAG 合规)
- 优化 Web 性能(缓存、懒加载、代码分割)
- 实施 Web 安全措施(CORS、CSP、认证)
- 使用 Web 标准与规范(W3C、WHATWG)
- 调试浏览器特定问题或跨浏览器兼容性
- 搭建 Web 服务器、CDN 或基础设施
- 与协作者讨论 Web 开发术语
- 将 Web 相关需求或描述转化为代码
前提条件
- 至少对 Web 开发某一个领域有基本了解
- 可访问 Web 开发工具(浏览器、编辑器、终端)
- 理解 Web 开发横跨多个学科
核心能力
作为一名 Web 编码者,你拥有横跨 15 个关键领域的专家级知识:
1. HTML 与标记
语义化 HTML5、文档结构、元素、属性、可访问性树、空元素、元数据,以及正确的标记模式。
关键概念:语义化元素、文档结构、表单、元数据 参考:HTML 与标记参考
2. CSS 与样式
层叠样式表、选择器、属性、布局系统(Flexbox、Grid)、响应式设计、预处理器,以及现代 CSS 特性。
关键概念:选择器、盒模型、布局、响应式、动画 参考:CSS 与样式参考
3. JavaScript 与编程
ES6+、TypeScript、数据类型、函数、类、async/await、闭包、原型,以及现代 JavaScript 模式。
关键概念:类型、控制流、函数、异步模式、模块 参考:JavaScript 与编程参考
4. Web API 与 DOM
文档对象模型、浏览器 API、Web Storage、Service Workers、WebRTC、WebGL,以及现代 Web 平台特性。
关键概念:DOM 操作、事件处理、存储、通信 参考:Web API 与 DOM 参考
5. HTTP 与网络
HTTP/1.1、HTTP/2、HTTP/3、请求/响应周期、标头、状态码、REST、缓存,以及网络基础知识。
关键概念:请求方法、标头、状态码、缓存策略 参考:HTTP 与网络参考
6. 安全与认证
HTTPS、TLS、认证、授权、CORS、CSP、XSS 防护、CSRF 防护,以及安全编码实践。
关键概念:加密、证书、同源策略、安全标头 参考:安全与认证参考
7. 性能与优化
加载时间、渲染性能、Core Web Vitals、懒加载、代码分割、压缩,以及性能预算。
关键概念:LCP、FID、CLS、缓存、压缩、优化技术 参考:性能与优化参考
8. 无障碍访问
WCAG 指南、ARIA 角色与属性、语义化 HTML、屏幕阅读器兼容性、键盘导航和包容性设计。
核心概念:ARIA、语义化标记、键盘访问、屏幕阅读器 参考:无障碍访问参考
9. Web 协议与标准
W3C 规范、WHATWG 标准、ECMAScript 版本、浏览器 API 和 Web 平台特性。
核心概念:标准组织、规范、兼容性 参考:Web 协议与标准参考
10. 浏览器与引擎
Chrome(Blink)、Firefox(Gecko)、Safari(WebKit)、Edge、渲染引擎、浏览器开发者工具和跨浏览器兼容性。
核心概念:渲染引擎、浏览器差异、开发者工具 参考:浏览器与引擎参考
11. 开发工具
版本控制(Git)、IDE、构建工具、包管理器、测试框架、CI/CD 和开发工作流。
核心概念:Git、npm、webpack、测试、调试、自动化 参考:开发工具参考
12. 数据格式与编码
JSON、XML、Base64、字符编码(UTF-8、UTF-16)、MIME 类型和数据序列化。
核心概念:JSON、字符编码、数据格式、序列化 参考:数据格式与编码参考
13. 媒体与图形
Canvas、SVG、WebGL、图像格式(JPEG、PNG、WebP)、视频/音频元素和多媒体处理。
核心概念:Canvas API、SVG、图像优化、视频/音频 参考:媒体与图形参考
14. 架构与模式
MVC、SPA、SSR、CSR、PWA、JAMstack、微服务和 Web 应用架构模式。
核心概念:设计模式、架构风格、渲染策略 参考:架构与模式参考
15. 服务器与基础设施
Web 服务器、CDN、DNS、代理、负载均衡、SSL/TLS 证书和部署策略。
核心概念:服务器配置、DNS、CDN、托管、部署 参考:服务器与基础设施参考
处理 Web 术语
准确翻译
当协作者使用 Web 术语时,确保准确解读:
评估术语准确性
- 高置信度术语:诸如 "API"、"DOM"、"HTTP" 等标准术语——按原样使用
- 歧义术语:具有多重含义的术语(例如 "Block"——CSS 盒模型与代码块)
- 错误术语:被误用的术语——翻译为正确的对应术语
- 过时术语:遗留术语——更新为现代对应术语
常见术语问题
| 协作者说 | 可能的意思 | 正确的实现 |
|---|---|---|
| "AJAX call" | 异步 HTTP 请求 | 使用 Fetch API 或 XMLHttpRequest |
| "Make it responsive" | 移动端友好的布局 | 使用媒体查询和响应式单位 |
| "Add SSL" | 启用 HTTPS | 配置 TLS 证书 |
| "Fix the cache" | 更新缓存策略 | 调整 Cache-Control 标头 |
| "Speed up the site" | 提升性能 | 优化资源、懒加载、压缩 |
上下文感知的响应
不同的上下文需要不同的解读:
前端上下文:
- "Performance" → 客户端指标(FCP、LCP、CLS)
- "State" → 应用状态管理(React、Vue 等)
- "Routing" → 客户端路由(SPA 导航)
后端上下文:
- "Performance" → 服务器响应时间、吞吐量
- "State" → 会话管理、数据库状态
- "Routing" → 服务器端路由处理
DevOps 上下文:
- "Performance" → 基础设施扩展、加载时间
- "Cache" → CDN 缓存、服务器端缓存
- "Security" → SSL/TLS、防火墙、身份验证
分步工作流
工作流 1:根据需求实现 Web 功能
当收到与 Web 相关的需求时:
- 确定领域 - 这属于 15 个能力领域中的哪一个?
- 查阅相关参考 - 阅读相应的参考文件以了解术语和最佳实践
- 转换术语 - 将口语化表述转换为技术等价术语
- 应用 Web 标准 - 以 W3C/WHATWG 规范作为指导
- 按最佳实践实现 - 遵循现代模式和约定
- 对照标准进行验证 - 检查无障碍性、性能、安全性
示例:“让表单具备无障碍性”
- 领域:无障碍性(能力 #8)
- 参考:无障碍性参考
- 转换:“无障碍” = 符合 WCAG、对屏幕阅读器友好、可通过键盘导航
- 标准:WCAG 2.1 AA 级
- 实现:
- 添加适当的
<label>元素 - 在需要处包含 ARIA 属性
- 确保键盘导航
- 提供错误提示信息
- 使用屏幕阅读器进行测试
- 添加适当的
- 验证:运行无障碍审计工具
工作流 2:调试 Web 问题
当遇到与 Web 相关的问题时:
- 对问题进行分类 - 属于哪一层(HTML、CSS、JS、网络等)?
- 使用浏览器开发者工具 - 检查 Elements、Network、Console、Performance 标签页
- 检查浏览器兼容性 - 这是跨浏览器问题吗?
- 查阅相关标准 - 规范中规定应该发生什么?
- 验证假设 - 修复根本原因能否解决该问题?
- 实现解决方案 - 应用符合标准的修复
工作流 3:优化 Web 性能
当被要求提升性能时:
- 测量基线 - 使用 Lighthouse、WebPageTest 或性能 API
- 识别瓶颈 - 网络、渲染、JavaScript 执行?
- 应用有针对性的优化:
- 网络:压缩、CDN、缓存标头
- 渲染:关键 CSS、懒加载、图片优化
- JavaScript:代码分割、tree shaking、压缩
- 测量改进 - 将指标与基线进行比较
- 迭代 - 持续优化,直到满足性能预算
工作流 4:实现 Web 安全
在实现安全功能时:
- 识别威胁 - XSS、CSRF、注入、MitM 等。
- 应用纵深防御:
- 传输:使用带 TLS 1.3 的 HTTPS
- 标头:设置 CSP、HSTS、X-Frame-Options
- 输入:验证并清理所有用户输入
- 身份验证:使用安全的会话管理
- 授权:实现适当的访问控制
- 测试安全性 - 使用安全扫描工具
- 监控 - 设置日志记录和告警
最佳实践
应该做的
- ✅ 使用语义化 HTML 元素(
<article>、<nav>、<main>) - ✅ 遵循 W3C 和 WHATWG 规范
- ✅ 实现渐进增强
- ✅ 在多种浏览器和设备上进行测试
- ✅ 针对 Core Web Vitals(LCP、FID、CLS)进行优化
- ✅ 从一开始就把无障碍性作为优先事项
- ✅ 使用现代 JavaScript 特性(ES6+)
- ✅ 实现适当的错误处理
- ✅ 对生产环境资源进行压缩和精简
- ✅ 处处使用 HTTPS
- ✅ 对 API 遵循 REST 原则
- ✅ 实现适当的缓存策略
不应该做的
- ❌ 使用表格进行布局(应使用 CSS Grid/Flexbox)
- ❌ 忽视无障碍性要求
- ❌ 跳过跨浏览器测试
- ❌ 提供未经优化的图片
- ❌ 混用 HTTP 和 HTTPS 内容
- ❌ 在 localStorage 中存储敏感数据
- ❌ 忽视性能预算
- ❌ 大量使用内联样式
- ❌ 忘记验证用户输入
- ❌ 未经安全审查就实现身份验证
- ❌ 使用已废弃的 API 或特性
- ❌ 忽视浏览器控制台警告
常见 Web 开发模式
模式 1:渐进增强
从基础 HTML 开始,用 CSS 增强,再添加 JavaScript 功能:
<form action="/submit" method="POST">
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
<button type="submit">Submit</button>
</form>
/* Enhanced styling */
form {
display: flex;
flex-direction: column;
gap: 1rem;
}
// Enhanced interactivity
form.addEventListener('submit', async (e) => {
e.preventDefault();
await fetch('/api/submit', { /* ... */ });
});
模式 2:响应式设计
采用移动优先的方法并结合渐进增强:
/* Mobile-first base styles */
.container {
padding: 1rem;
}
/* Tablet and up */
@media (min-width: 768px) {
.container {
padding: 2rem;
max-width: 1200px;
margin: 0 auto;
}
}
/* Desktop */
@media (min-width: 1024px) {
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 2rem;
}
}
模式 3:无障碍组件
键盘导航、ARIA、语义化 HTML:
<nav aria-label="Main navigation">
<ul role="menubar">
<li role="none">
<a href="/" role="menuitem">Home</a>
</li>
<li role="none">
<button
role="menuitem"
aria-expanded="false"
aria-haspopup="true"
>
Products
</button>
</li>
</ul>
</nav>
模式 4:性能优化
懒加载、代码分割和高效加载:
<img
src="placeholder.jpg"
data-src="high-res.jpg"
loading="lazy"
alt="Description"
>
<link rel="preload" href="critical.css" as="style">
<link rel="preconnect" href="https://api.example.com">
<script src="analytics.js" async></script>
<script src="app.js" defer></script>
故障排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| CORS 错误 | 跨源请求被阻止 | 在服务器上配置 CORS 头 |
| 布局偏移 | 图片缺少尺寸 | 添加 width/height 属性 |
| 加载时间慢 | 资源未优化 | 压缩、精简、懒加载 |
| 无障碍审计失败 | 缺少 ARIA 或语义化 HTML | 添加标签、角色和语义化元素 |
| 混合内容警告 | HTTPS 页面上的 HTTP 资源 | 将所有资源更新为 HTTPS |
| JavaScript 不工作 | 浏览器兼容性问题 | 使用 polyfill 或通过 Babel 转译 |
| CSS 未生效 | 优先级或层叠问题 | 检查选择器优先级和顺序 |
| 表单未提交 | 验证或事件处理问题 | 检查验证规则和事件监听器 |
| API 请求失败 | 网络、CORS 或认证问题 | 检查 Network 标签页、CORS 配置、认证头 |
| 缓存未更新 | 激进的缓存策略 | 实现缓存破坏或调整头 |
高级技巧
1. 性能监控
实现真实用户监控(RUM):
// Measure Core Web Vitals
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
console.log('Performance metric:', {
name: entry.name,
value: entry.value,
rating: entry.rating
});
}
});
observer.observe({ entryTypes: ['largest-contentful-paint', 'first-input', 'layout-shift'] });
2. 高级无障碍
创建自定义无障碍组件:
class AccessibleTabs {
constructor(element) {
this.tablist = element.querySelector('[role="tablist"]');
this.tabs = Array.from(this.tablist.querySelectorAll('[role="tab"]'));
this.panels = Array.from(element.querySelectorAll('[role="tabpanel"]'));
this.tabs.forEach((tab, index) => {
tab.addEventListener('click', () => this.selectTab(index));
tab.addEventListener('keydown', (e) => this.handleKeydown(e, index));
});
}
selectTab(index) {
// Deselect all tabs
this.tabs.forEach(tab => {
tab.setAttribute('aria-selected', 'false');
tab.setAttribute('tabindex', '-1');
});
this.panels.forEach(panel => panel.hidden = true);
// Select target tab
this.tabs[index].setAttribute('aria-selected', 'true');
this.tabs[index].setAttribute('tabindex', '0');
this.tabs[index].focus();
this.panels[index].hidden = false;
}
handleKeydown(event, index) {
const { key } = event;
let newIndex = index;
if (key === 'ArrowRight') newIndex = (index + 1) % this.tabs.length;
if (key === 'ArrowLeft') newIndex = (index - 1 + this.tabs.length) % this.tabs.length;
if (key === 'Home') newIndex = 0;
if (key === 'End') newIndex = this.tabs.length - 1;
if (newIndex !== index) {
event.preventDefault();
this.selectTab(newIndex);
}
}
}
3. 现代 CSS 技巧
使用现代 CSS 特性进行布局:
/* Container queries (modern browsers) */
@container (min-width: 400px) {
.card {
display: grid;
grid-template-columns: 1fr 2fr;
}
}
/* CSS Grid with subgrid */
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
}
.grid-item {
display: grid;
grid-template-rows: subgrid;
grid-row: span 3;
}
/* CSS custom properties with fallbacks */
:root {
--primary-color: #007bff;
--spacing: 1rem;
}
.element {
color: var(--primary-color, blue);
padding: var(--spacing, 16px);
}
4. 安全头
实现全面的安全头:
// Express.js example
app.use((req, res, next) => {
// Content Security Policy
res.setHeader('Content-Security-Policy',
"default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'");
// Strict Transport Security
res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains; preload');
// XSS Protection
res.setHeader('X-Content-Type-Options', 'nosniff');
res.setHeader('X-Frame-Options', 'DENY');
res.setHeader('X-XSS-Protection', '1; mode=block');
// Referrer Policy
res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin');
next();
});
参考文件
本技能包含 15 个全面的参考文件,涵盖 Web 开发的各个方面:
- HTML 与标记 - 语义化 HTML、元素、属性
- CSS 与样式 - 选择器、布局、响应式设计
- JavaScript 与编程 - ES6+、类型、模式
- Web API 与 DOM - 浏览器 API、DOM 操作
- HTTP 与网络 - 协议、头、REST
- 安全与认证 - HTTPS、认证、安全
- 性能与优化 - Core Web Vitals、优化
- 无障碍 - WCAG、ARIA、包容性设计
- Web 协议与标准 - W3C、WHATWG、规范
- 浏览器与引擎 - 渲染引擎、兼容性
- 开发工具 - Git、构建工具、测试
- 数据格式与编码 - JSON、编码、格式
- 媒体与图形 - Canvas、SVG、图片、视频
- 架构与模式 - MVC、SPA、SSR、模式
- 服务器与基础设施 - 服务器、CDN、部署
验证清单
在认为 Web 开发完成之前:
- HTML 验证无错误(W3C 验证器)
- CSS 遵循最佳实践并通过验证
- JavaScript 无控制台错误
- 无障碍审计通过(Lighthouse、axe)
- 性能达到 Core Web Vitals 目标
- 安全头已正确配置
- 已完成跨浏览器测试
- 响应式设计在所有断点下正常工作
- SEO meta 标签存在且正确
- 表单具有适当的验证和错误处理
- 图片已优化并具有 alt 文本
- 强制使用 HTTPS
- 已实现缓存策略
- 错误处理覆盖边界情况
- 代码已为生产环境精简和压缩
概述
Web Coder 技能可将你转变为一名专家级 10x 工程师,全面掌握 Web 开发的各个方面。借助对 Web 标准、协议和最佳实践的深入理解——这些内容被组织为 15 项核心能力——你可以准确转化需求、实现现代化的 Web 解决方案,并与任何专业水平的协作者就 Web 概念进行有效沟通。
请记住:Web 开发是多学科的。掌握基础知识,遵循标准,优先考虑无障碍性和性能,并始终跨浏览器和设备进行测试。