deno.com
本页内容

贡献与支持

我们欢迎并感谢所有对 Deno 的贡献。

本页面旨在帮助您开始贡献。

项目 跳转到标题

denoland 组织中有众多仓库,它们都是 Deno 生态系统的一部分。

这些仓库有不同的范围,使用不同的编程语言,并且在贡献方面有不同的难度级别。

为了帮助您决定哪个仓库最适合开始贡献(以及/或符合您的兴趣),以下是一个简短的比较(代码库主要包含粗体所示的语言

deno 跳转到标题

这是提供 deno CLI 的主要仓库。

语言:RustJavaScriptTypeScript

deno_std 跳转到标题

Deno 的标准库。

语言:TypeScript、WebAssembly

fresh 跳转到标题

下一代 Web 框架。

语言:TypeScript、TSX

deno_lint 跳转到标题

deno lint 子命令提供支持的 Linter。

语言:Rust

deno_doc 跳转到标题

deno doc 子命令以及 https://docs.deno.org.cn/apihttps://jsr.deno.org.cn 上的参考文档提供支持的文档生成器。

语言:Rust

rusty_v8 跳转到标题

V8 JavaScript 引擎的 Rust 绑定。技术性强,且处于底层。

语言:Rust

serde_v8 跳转到标题

一个在 V8 和 Rust 对象之间提供双射层的库。基于 serde 库。技术性强,且处于底层。

语言:Rust

deno_docker 跳转到标题

Deno 的官方 Docker 镜像。

一般说明 跳转到标题

  • 阅读样式指南

  • 请不要让基准测试结果变差。

  • 社区聊天室寻求帮助。

  • 如果您打算处理某个问题,请在开始工作之前在该问题的评论中提及。

  • 如果您打算处理新功能,请在开始工作之前创建一个问题并与其他贡献者讨论;我们感谢所有贡献,但并非所有提议的功能都会被接受。我们不希望您花费数小时编写可能不会被接受的代码。

  • 请在论坛中保持专业。我们遵循Rust 的行为准则 (CoC)。有问题?请发送电子邮件至 ry@tinyclouds.org

提交拉取请求 跳转到标题

在向任何仓库提交 PR 之前,请确保完成以下事项:

  1. 为 PR 提供一个描述性标题。

好的 PR 标题示例

  • fix(std/http): 修复服务器中的竞态条件
  • docs(console): 更新文档字符串
  • feat(doc): 处理嵌套的重新导出

糟糕的 PR 标题示例

  • fix #7123
  • 更新文档
  • 修复 Bug
  1. 确保存在相关问题,并在 PR 正文中引用。
  2. 确保有测试覆盖这些更改。

文档化 API 跳转到标题

文档化所有公共 API 至关重要,我们希望将文档与代码内联。这有助于确保代码和文档紧密结合。

JavaScript 和 TypeScript 跳转到标题

所有公开暴露的 API 和类型,无论是通过 deno 模块还是全局/window 命名空间,都应该有 JSDoc 文档。这些文档会被解析并提供给 TypeScript 编译器,因此便于下游使用。JSDoc 块位于其所应用语句的正前方,以 /** 开头,以 */ 结尾。例如:

/** A simple JSDoc comment */
export const FOO = "foo";

更多信息请访问:https://jsdoc.node.org.cn/

Rust 跳转到标题

参考本指南在 Rust 代码中编写文档注释。

性能分析 跳转到标题

在对代码库中对性能敏感的部分进行贡献时,对您的更改进行性能分析很有帮助,以确保它们不会对性能产生负面影响,或验证您的优化是否有效。

使用 Samply 跳转到标题

Samply 是一款适用于 macOS 和 Linux 的采样分析器,与 Deno 配合良好。它能生成火焰图,帮助您可视化 CPU 时间的消耗位置。

# Basic usage
samply record -r 20000 deno run -A main.js

您可以分析生成的火焰图以识别:

  • 大部分 CPU 时间消耗的热点
  • 意外的函数调用
  • 潜在的优化区域

提交与性能相关的贡献时,包含性能分析数据可以帮助团队理解和验证您的改进。

您找到所需内容了吗?

隐私政策