Skip to content

贡献指南

感谢您考虑为 Matrix 做出贡献!这份指南将帮助您了解如何参与项目开发。

利用Cursor IDE快速贡献(推荐)

  • 确定需要贡献的模块,使用cursor的composer,输入@codebase,输入提示语,例如:
实现一个检查对象深度相等的函数,你根据docs/guide/index.md文档,确定这个函数应该放在哪个目录下(建议放在src/base/type/deepEqual.ts目录下),并且更新单元测试(test目录下),docs/api目录下对应的md文档
  • 输入完成后,cursor会根据你的提示语,生成代码,markdown文档,单元测试,示例代码
  • 需要检查src目录代码是否生成,test目录单元测试用例是否生成,docs/.vitepress/config入口和api文档是否更新
  • 如果需要更新,则使用cursor的composer,输入@codebase,继续输入提示语
  • 重复以上步骤,直到完成所有模块的贡献
  • 所有函数在window全局对象上已注入供验证功能,例如window.fuMatrix.isEmpty

设计原则

Matrix 专注于提供原生 JavaScript 缺失的实用功能:

✅ 推荐贡献的功能

  • 类型检查和验证工具
  • 性能优化工具(防抖、节流等)
  • 环境检测工具
  • 数据格式化工具
  • 客户端桥接工具
  • 复杂的业务逻辑工具

❌ 不推荐重复实现的功能

  • 原生数组方法(filter、map、reduce等)
  • 原生字符串方法(slice、replace等)
  • 原生对象方法(keys、values等)
  • 简单的数学运算

Pull Request 指南

  • 保持提交历史清晰
  • 遵循项目的代码风格
  • 更新相关文档
  • 添加必要的测试
  • 确保所有测试通过

代码审查

  • 所有代码变更需要至少一次审查
  • P0/P1 问题需要两人审查
  • 发布前进行完整测试

文档维护

  • API 文档随代码同步更新
  • 每个版本更新 changelog
  • 定期检查文档准确性

性能监控

  • 定期进行性能测试
  • 监控包体积变化
  • 跟踪依赖更新

质量保证

测试要求

  • 新增函数需要添加单元测试,通过率100%,(特殊场景除外,如客户端协议)
  • 性能测试达标

发布检查清单

  • [ ] 测试全部通过
  • [ ] 文档已更新
  • [ ] changelog 已更新
  • [ ] 版本号已更新
  • [ ] 依赖已更新
  • [ ] 性能指标达标

包体积

  • UMD 格式压缩后 < 50KB
  • ESM 格式压缩后 < 40KB
  • 每个独立模块 < 10KB

性能优化建议

  • 使用 Tree-shaking 优化
  • 延迟加载非关键模块
  • 缓存频繁使用的计算结果
  • 避免不必要的对象创建