mcpField
W
web-coder

web-coder

github.com/github开发40.5k5.5k 次安装1 天前更新
代码仓库

关于 web-coder

web-coder 面向从事 Web 开发的人员,覆盖标记语言、JavaScript、网络及基础设施等领域。它按专业主题整理标准、实现建议、调试、性能、无障碍和安全实践,并提供相应工作流。

主要功能

  1. 01HTML、CSS 与 JavaScript 指导
  2. 02Web API 与网络协议知识
  3. 03无障碍与安全实践
  4. 04性能优化建议
  5. 05按场景组织的实现和调试工作流

适用场景

  1. 01根据需求实现 Web 功能
  2. 02排查跨浏览器问题
  3. 03优化页面加载和渲染性能
  4. 04检查 Web 安全与无障碍要求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/github/awesome-copilot --skill web-coder

安装后在 Claude Code 中输入/web-coder确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
accessibility.md
architecture-patterns.md
browsers-engines.md
css-styling.md
data-formats-encoding.md
development-tools.md
glossary.md
html-markup.md
http-networking.md
javascript-programming.md
media-graphics.md
performance-optimization.md
security-authentication.md
servers-infrastructure.md
web-apis-dom.md
web-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 术语时,确保准确解读:

评估术语准确性
  1. 高置信度术语:诸如 "API"、"DOM"、"HTTP" 等标准术语——按原样使用
  2. 歧义术语:具有多重含义的术语(例如 "Block"——CSS 盒模型与代码块)
  3. 错误术语:被误用的术语——翻译为正确的对应术语
  4. 过时术语:遗留术语——更新为现代对应术语
常见术语问题
协作者说可能的意思正确的实现
"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 相关的需求时:

  1. 确定领域 - 这属于 15 个能力领域中的哪一个?
  2. 查阅相关参考 - 阅读相应的参考文件以了解术语和最佳实践
  3. 转换术语 - 将口语化表述转换为技术等价术语
  4. 应用 Web 标准 - 以 W3C/WHATWG 规范作为指导
  5. 按最佳实践实现 - 遵循现代模式和约定
  6. 对照标准进行验证 - 检查无障碍性、性能、安全性
示例:“让表单具备无障碍性”
  1. 领域:无障碍性(能力 #8)
  2. 参考:无障碍性参考
  3. 转换:“无障碍” = 符合 WCAG、对屏幕阅读器友好、可通过键盘导航
  4. 标准:WCAG 2.1 AA 级
  5. 实现:
    • 添加适当的 <label> 元素
    • 在需要处包含 ARIA 属性
    • 确保键盘导航
    • 提供错误提示信息
    • 使用屏幕阅读器进行测试
  6. 验证:运行无障碍审计工具
工作流 2:调试 Web 问题

当遇到与 Web 相关的问题时:

  1. 对问题进行分类 - 属于哪一层(HTML、CSS、JS、网络等)?
  2. 使用浏览器开发者工具 - 检查 Elements、Network、Console、Performance 标签页
  3. 检查浏览器兼容性 - 这是跨浏览器问题吗?
  4. 查阅相关标准 - 规范中规定应该发生什么?
  5. 验证假设 - 修复根本原因能否解决该问题?
  6. 实现解决方案 - 应用符合标准的修复
工作流 3:优化 Web 性能

当被要求提升性能时:

  1. 测量基线 - 使用 Lighthouse、WebPageTest 或性能 API
  2. 识别瓶颈 - 网络、渲染、JavaScript 执行?
  3. 应用有针对性的优化:
    • 网络:压缩、CDN、缓存标头
    • 渲染:关键 CSS、懒加载、图片优化
    • JavaScript:代码分割、tree shaking、压缩
  4. 测量改进 - 将指标与基线进行比较
  5. 迭代 - 持续优化,直到满足性能预算
工作流 4:实现 Web 安全

在实现安全功能时:

  1. 识别威胁 - XSS、CSRF、注入、MitM 等。
  2. 应用纵深防御:
    • 传输:使用带 TLS 1.3 的 HTTPS
    • 标头:设置 CSP、HSTS、X-Frame-Options
    • 输入:验证并清理所有用户输入
    • 身份验证:使用安全的会话管理
    • 授权:实现适当的访问控制
  3. 测试安全性 - 使用安全扫描工具
  4. 监控 - 设置日志记录和告警

最佳实践

应该做的
  • ✅ 使用语义化 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 开发的各个方面:

  1. HTML 与标记 - 语义化 HTML、元素、属性
  2. CSS 与样式 - 选择器、布局、响应式设计
  3. JavaScript 与编程 - ES6+、类型、模式
  4. Web API 与 DOM - 浏览器 API、DOM 操作
  5. HTTP 与网络 - 协议、头、REST
  6. 安全与认证 - HTTPS、认证、安全
  7. 性能与优化 - Core Web Vitals、优化
  8. 无障碍 - WCAG、ARIA、包容性设计
  9. Web 协议与标准 - W3C、WHATWG、规范
  10. 浏览器与引擎 - 渲染引擎、兼容性
  11. 开发工具 - Git、构建工具、测试
  12. 数据格式与编码 - JSON、编码、格式
  13. 媒体与图形 - Canvas、SVG、图片、视频
  14. 架构与模式 - MVC、SPA、SSR、模式
  15. 服务器与基础设施 - 服务器、CDN、部署

验证清单

在认为 Web 开发完成之前:

  • HTML 验证无错误(W3C 验证器)
  • CSS 遵循最佳实践并通过验证
  • JavaScript 无控制台错误
  • 无障碍审计通过(Lighthouse、axe)
  • 性能达到 Core Web Vitals 目标
  • 安全头已正确配置
  • 已完成跨浏览器测试
  • 响应式设计在所有断点下正常工作
  • SEO meta 标签存在且正确
  • 表单具有适当的验证和错误处理
  • 图片已优化并具有 alt 文本
  • 强制使用 HTTPS
  • 已实现缓存策略
  • 错误处理覆盖边界情况
  • 代码已为生产环境精简和压缩

概述

Web Coder 技能可将你转变为一名专家级 10x 工程师,全面掌握 Web 开发的各个方面。借助对 Web 标准、协议和最佳实践的深入理解——这些内容被组织为 15 项核心能力——你可以准确转化需求、实现现代化的 Web 解决方案,并与任何专业水平的协作者就 Web 概念进行有效沟通。

请记住:Web 开发是多学科的。掌握基础知识,遵循标准,优先考虑无障碍性和性能,并始终跨浏览器和设备进行测试。

评论

支持 Markdown