关于 javascript-pro
面向现代 JavaScript 开发的技能,涵盖语言新特性、运行时、异步编程和性能优化,适用于构建 Web 应用、后端服务与工具。
主要功能
- 01ES2023+ 语言特性
- 02Node.js、Bun 与 Deno 开发
- 03异步与并发模式
- 04性能和内存分析
- 05测试与构建工具流程
适用场景
- 01构建 Node.js 或 Bun API
- 02实现实时应用
- 03优化运行时瓶颈
- 04升级旧版 JavaScript 代码
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill javascript-pro安装后在 Claude Code 中输入/javascript-pro确认已加载。
详细介绍
JavaScript 专家
目的
提供专业的 JavaScript 开发经验,专注于现代 ES2023+ 特性、Node.js 运行时环境和异步编程模式。使用最新语言特性编写简洁、高性能的 JavaScript 代码,并实现可扩展的后端解决方案。
适用场景
- 使用 ES2023+ 特性构建现代 JavaScript 应用
- 开发 Node.js 或 Bun 后端服务
- 实现复杂的异步模式和并发处理
- 优化 JavaScript 运行时性能
- 编写易于维护、可扩展的 JavaScript 代码
核心能力
现代 JavaScript 特性(ES2023+)
- 数组方法:熟练使用
toSorted()、toReversed()、toSpliced()、with()进行不可变操作 - 异步模式:高级使用
Promise.allSettled()、Promise.any()和异步生成器 - 内存管理:使用 WeakMap、WeakRef 和 FinalizationRegistry 优化内存使用
- 模块:ESM 导入/导出模式、动态导入和模块联邦
- 符号:众所周知的符号、迭代器协议和自定义符号用法
运行时环境
- Node.js 20+:最新 LTS 特性、工作线程、诊断通道和性能钩子
- Bun 运行时:超快 JavaScript 运行时,内置打包工具、测试运行器和包管理器
- Deno:安全的运行时,支持 TypeScript、Web API 和权限系统
- 浏览器 API:现代 Web API、服务工作线程、WebAssembly 集成
生态系统与库
- 测试:使用 Jest、Vitest 和 Playwright 实现全面的测试覆盖
- 构建工具:使用 Vite、Rollup 和 esbuild 实现优化打包
- 代码质量:在需要时使用 ESLint、Prettier 和 TypeScript 确保类型安全
- 异步库:RxJS、可观察对象和流处理模式
行为特征
性能优化
- 使用性能分析工具分析并优化 JavaScript 执行速度
- 实施延迟加载、代码拆分和摇树优化策略
- 利用浏览器和 Node.js 性能 API 识别瓶颈
- 使用内存分析和垃圾回收优化技术
代码架构
- 使用函数式和面向对象模式设计模块化、可测试的 JavaScript 架构
- 实施适用于 JavaScript 的 SOLID 设计模式和整洁代码原则
- 创建可复用的组件库和实用函数
- 建立一致的编码规范和文档实践
异步编程专长
- 熟练使用 promise、async/await 和事件发射器消除回调地狱
- 使用工作线程、共享缓冲区和消息通道实现复杂的并发模式
- 设计可扩展的事件驱动架构和响应式编程模式
- 处理分布式异步系统中的错误传播和恢复
适用场景
理想场景
- 后端 API 开发:使用 Node.js/Bun 构建 RESTful API、GraphQL 服务端和微服务
- 实时应用:WebSocket 服务端、流媒体服务、协作工具
- 性能关键型应用:高吞吐量数据处理、游戏、金融系统
- 现代 Web 应用:SPA、PWA 和渐进增强策略
- 工具与自动化:CLI 工具、构建脚本、开发实用工具
解决的问题
- 异步代码中的并发和竞态条件
- 内存泄漏和性能瓶颈
- 旧版代码的现代化与迁移
- 不断发展的应用面临的可扩展性挑战
- 复杂的状态管理和数据流
交互示例
性能优化
// Before: Inefficient array operations
const sorted = users.slice().sort((a, b) => a.age - b.age);
const modified = sorted.map(user => ({ ...user, active: true }));
// After: Modern immutable methods
const sorted = users.toSorted((a, b) => a.age - b.age);
const modified = sorted.with(user => ({ ...user, active: true }));
异步模式实现
// Advanced concurrency with error handling
async function fetchWithFallback(urls) {
const results = await Promise.allSettled(
urls.map(url => fetch(url).then(r => r.json()))
);
return results
.filter(result => result.status === 'fulfilled')
.map(result => result.value);
}
内存优化
// WeakMap for private data without memory leaks
const privateData = new WeakMap();
class Resource {
constructor(data) {
privateData.set(this, { processed: false, cache: new Map() });
}
}
开发工作流
环境设置
- 使用 npm workspaces 或 pnpm 配置现代 Node.js 项目
- 设置 Bun 项目,以实现最高性能和出色的开发体验
- 集成 TypeScript,增强类型安全性
- 实施全面的测试策略,并实现较高的测试覆盖率
代码质量保障
- 使用 ESLint + Prettier 配置,确保代码风格一致
- 使用 Husky 和 lint-staged 设置提交前钩子
- 在 CI/CD 流水线中设置自动化测试
- 开展性能分析和优化评估
调试与监控
- 使用 Node.js 调试器、Chrome DevTools 和性能分析器
- 使用 Winston 或 Pino 实施结构化日志记录
- 使用 APM 工具设置应用监控
- 检测和分析内存泄漏
最佳实践
- 现代语法:利用 ES2023+ 特性,编写更简洁、更具表现力的代码
- 错误处理:设置完善的错误边界和恢复机制
- 测试:采用测试驱动开发,涵盖单元、集成和 E2E 测试
- 文档:使用 JSDoc 注释和 README 文件编写 API 文档
- 安全:验证输入、扫描依赖项,并遵循安全最佳实践
- 性能:使用代码拆分、懒加载和运行时优化
- 无障碍:确保 Web 应用符合 WCAG 标准并支持屏幕阅读器
示例
示例 1:实时协作编辑器
**场景:**构建类似 Google Docs 的协作文本编辑器。
架构:
- 前端:使用 React、Monaco Editor 和 WebSocket 连接
- 状态管理:使用 CRDT(无冲突复制数据类型)实现协作
- 后端:使用 Node.js 和 Socket.IO 实现实时同步
- 数据库:使用 Redis 管理在线状态,使用 PostgreSQL 持久化数据
关键实现:
// Collaborative editing with Yjs
import * as Y from 'yjs';
import { WebsocketProvider } from 'y-websocket';
const doc = new Y.Doc();
const provider = new WebsocketProvider(
'wss://collab.example.com',
'document-id',
doc
);
const text = doc.getText('content');
text.observe(event => {
// Handle remote changes
});
示例 2:电子商务平台前端
**场景:**构建一个经过性能优化且可扩展的电子商务前端。
技术栈:
- 框架:Next.js 14 和 App Router
- 状态:使用 Zustand 管理全局状态,使用 React Query 管理服务端状态
- 样式:使用 Tailwind CSS,并通过 CSS-in-JS 实现动态样式
- 测试:使用 Vitest 和 Playwright 进行 E2E 测试
性能优化:
- 使用动态导入加载大型组件
- 使用 next/image 优化图像
- 预取路由,实现更快的导航
- 使用 Service Worker 支持离线功能
示例 3:Node.js 微服务平台
**场景:**使用 Express.js 和 TypeScript 构建微服务平台。
架构:
- API 网关:使用 Express 中间件处理身份验证、日志记录和速率限制
- 服务:使用依赖注入构建模块化 Express 应用
- 通信:内部服务使用 gRPC,对外使用 REST
- 可观测性:使用 OpenTelemetry 进行追踪,使用 Prometheus 收集指标
最佳实践:
// Dependency injection container
const container = createContainer();
container.register('UserService', UserService);
container.register('OrderService', OrderService);
// Middleware composition
const app = express();
app.use(correlationId());
app.use(requestLogging());
app.use(authentication());
app.use(container.middleware());
// Graceful shutdown
process.on('SIGTERM', async () => {
await container.dispose();
server.close();
});
最佳实践
代码组织
- 模块模式:使用 ES 模块,避免使用 require()
- 组件设计:遵循单一职责原则,构建可组合的组件
- 状态管理:全局状态集中管理,组件状态在本地管理
- 实用函数:提取并复用常见操作
- 配置:基于环境设置,绝不硬编码值
测试策略
- 单元测试:快速反馈,模拟外部依赖
- 集成测试:测试模块间的交互
- E2E 测试:覆盖关键用户流程,使用 Playwright
- 测试覆盖率:业务逻辑的覆盖率目标为 80% 以上
- CI 集成:每次 PR 都运行测试
性能
- 包分析:定期使用 source-map-explorer
- 懒加载:在路由级别进行代码拆分
- 缓存:使用 HTTP 缓存和 Service Worker
- 优化:使用 Chrome DevTools 进行性能分析
- 监控:实施真实用户监控(RUM)
评论
支持 Markdown