菜单

贡献 Hello Algo

相关源文件

本指南概述了如何为 Hello Algo 项目做出贡献,这是一个开源、对初学者友好的数据结构和算法教程,提供了多语言的动画插图和可运行代码示例。

介绍

Hello Algo 是一个社区驱动的项目,欢迎各种形式的贡献,包括内容勘误、不同编程语言的代码实现以及翻译。本页面将指导您完成设置开发环境和为项目做出贡献的流程。

来源: README.md68-76 docs/chapter_preface/about_the_book.md32-38

存储库结构

在贡献之前,了解仓库的组织结构会很有帮助

来源: mkdocs.yml1-297 README.md1-89

仓库遵循清晰的结构

  • docs/:包含书籍内容的 Markdown 文件
  • codes/:包含各种编程语言的实现
  • .github/workflows/:包含用于测试的 CI/CD 配置

设置开发环境

安装 IDE

建议使用 Visual Studio Code 作为此项目的首选集成开发环境(IDE)。

  1. 下载并为您的操作系统安装 VS Code
  2. 安装您选择的编程语言所需的扩展

来源: docs/chapter_appendix/installation.md1-69

语言环境设置

根据您想贡献的语言,请遵循以下安装步骤

语言安装步骤
Python1. 安装 Miniconda3 (Python 3.10+)
2. 在 VS Code 中安装 Python Extension Pack
3. 可选:安装 pip install black 进行代码格式化
C/C++1. 安装 MinGW (Windows) 或使用内置的 Clang (MacOS)
2. 在 VS Code 中安装 C/C++ Extension Pack
Java1. 安装 OpenJDK (JDK 9+)
2. 在 VS Code 中安装 Extension Pack for Java
C#1. 安装 .Net 8.0
2. 在 VS Code 中安装 C# Dev Kit
Go1. 安装 Go
2. 在 VS Code 中安装 Go 扩展
3. 运行 Go: Install/Update Tools
JavaScript1. 安装 Node.js
2. 可选:安装 Prettier
Swift1. 安装 Swift
2. 安装 VS Code 的 Swift 扩展

来源: docs/chapter_appendix/installation.md13-59

贡献类型

Hello Algo 欢迎多种类型的贡献

来源: README.md68-76 en/CONTRIBUTING.md1-135

内容勘误

您可以通过以下方式帮助提高教程的质量

  • 修正语法错误
  • 识别并纠正不准确之处
  • 提出内容改进建议
  • 修复或报告损坏的链接
  • 查找或修复代码中的 bug

代码翻译

本项目支持多种编程语言。您可以通过以下方式贡献

  • 用尚未涵盖的语言实现示例
  • 改进现有实现
  • 确保不同语言实现之间的一致性

语言翻译

本项目目前已翻译成

  • 简体中文(原创)
  • 繁体中文
  • 英语

您可以为翻译工作做出贡献,尤其是中文到英文的翻译过程。

贡献工作流程

贡献 Hello Algo 的一般流程如下

来源: docs/chapter_appendix/contribution.md1-48

小型改动

对于拼写错误或轻微澄清等小改动

  1. 点击页面右上角的“编辑”图标
  2. 直接在 GitHub 界面中进行更改
  3. 添加描述您更改的提交信息
  4. 提交拉取请求

重大贡献

对于更重大的贡献

  1. 将存储库fork到你的GitHub账户
  2. 将您的 fork 克隆到本地机器: git clone https://github.com/your-username/hello-algo.git
  3. 为您的贡献创建一个新分支: git checkout -b your-feature-branch
  4. 进行更改并提交
  5. 将您的更改推送到您的 fork: git push origin your-feature-branch
  6. 从您的 fork 创建一个 pull request 到主仓库

文档和代码指南

文档指南

在贡献文档时

  • 在整个文档中保持一致的格式
  • 提供适合初学者的清晰解释
  • 在有价值的地方包含图表
  • 遵循现有的解释和代码示例的风格

代码指南

在贡献代码时

  • 遵循特定语言的风格指南
  • 确保代码有良好的文档
  • 编写清晰、可读的代码
  • 与现有代码保持一致
  • 包含适当的测试用例

来源: docs/chapter_preface/suggestions.md7-157

测试您的贡献

在提交 pull request 之前,请确保您的代码通过所有测试。

  1. 对于 Python 代码:运行 python codes/python/test_all.py
  2. 对于其他语言:运行位于 .github/workflows/ 中的 GitHub 工作流文件里找到的特定语言测试命令。

仓库使用 GitHub Actions 进行持续集成,它将在您提交 pull request 时自动测试您的代码。

来源: .github/workflows/python.yml1-42 .github/workflows/swift.yml1-26 .github/workflows/dotnet.yml1-40 .github/workflows/dart.yml1-37 codes/python/test_all.py1-34

Docker 部署(可选)

如需本地测试完整网站,您可以使用 Docker。

这将使项目可以在 http://:8000 访问。

要移除部署

来源: docs/chapter_appendix/contribution.md35-47

翻译指南

如果您参与中文到英文的翻译工作,请遵循以下具体指南

翻译工作流程

翻译过程包括

  1. 初步 AI 翻译:使用大型语言模型进行初步翻译
  2. 人工优化:手动完善机器生成的输出
  3. 审查:通过 pull request 工作流进行二次检查
  4. 迭代改进:根据反馈持续完善

翻译标准

专注于以下关键方面

  • 准确性:通过参考 Terminology 部分以保持术语一致性
  • 地道性:确保翻译在英语中自然流畅,同时保留原意
  • 格式:保留原始格式,包括图表和表格

来源: en/CONTRIBUTING.md1-135

社区与支持

如果您有任何疑问或在贡献方面需要帮助

  • 创建一个 GitHub Issue
  • 通过微信 krahets-jyd 联系维护者
  • 参与页面评论区的讨论

来源: README.md76 docs/chapter_preface/suggestions.md234-240

致谢贡献者

所有贡献者均已致谢

  • GitHub 仓库
  • 网页版
  • PDF 版本

您的 GitHub ID 将显示在主页上,以感谢您对开源社区的贡献。

来源: docs/chapter_appendix/contribution.md5-6 docs/chapter_preface/about_the_book.md32-38