C++ 开源:晚间无惧的首次提交

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

从何开始?C++ 开源的迷思与现实



许多 C++ 开发者梦想为开源做贡献,但又心存畏惧。“太难了”、“需要十年经验”、“那里全是大师”——这些借口是否似曾相识?实际上,开源贡献不在于天赋,而在于系统化的方法和学习的意愿。本文将探讨如何迈出第一步,避免倦怠和失望。您将了解在哪里寻找适合新手的任务,如何避免代码风格错误,以及在提交信息中写什么才能不让维护者翻白眼。



无论您使用 C++ 11、17 还是 20 进行开发,开源领域总有适合您的工作。即使您刚刚开始学习这门语言,您的代码也可能是有用的。关键在于意愿和正确的策略。



第一步:选择项目——不是 Google Chrome,而是力所能及的项目



新手常犯的错误是试图为 LLVM、Boost 或 TensorFlow 等巨型仓库做贡献。这些项目的代码库庞大,代码审查可能持续数周。请从那些明确标记新手任务的仓库开始。在仓库描述中寻找以下标签:good first issue、help wanted、junior-friendly。



在哪里寻找 C++ 开源项目?

  • GitHub Explore——按 C++ 语言和 good-first-issue 标签筛选。
  • Up For Grabs——聚合新手任务的网站。
  • CodeTriage——订阅包含开放 issue 的邮件列表。
  • Awesome for Beginners——标记为“适合初学者”的仓库集合。


适合起步的真实 C++ 项目示例:

  • SerenityOS——用 C++ 编写的类 Unix 操作系统。有文档和 bug 修复任务。
  • fmtlib——字符串格式化库(类似 std::format)。有许多小 bug 和改进点。
  • Dear ImGui——工具图形界面。项目积极接受 pull request。
  • YAML-CPP——YAML 解析器。代码库简单,非常适合初次接触。


不要害怕带有“archived”或“inactive”标签的项目——它们可能已被弃用,但代码仍然可用。最好选择一个有活跃维护者的活跃项目。



第二步:像侦探一样阅读代码——理解架构



在修改任何内容之前,需要了解项目的结构。不要盲目复制他人的风格——要理解其逻辑。以下是行动步骤:



  1. 克隆仓库并构建项目。如果构建失败,这本身就是一个 issue 任务。
  2. 找到测试。运行它们,查看测试内容。测试是最好的文档。
  3. 阅读 CONTRIBUTING.md。其中描述了格式化规则、代码风格和提交要求。
  4. 研究几个已接受的 pull request。看看其他新手是如何进行修改的。


如何理解 C++ 代码风格?

大多数项目使用 clang-format 或 astyle。通常仓库根目录下有一个 .clang-format 文件。安装它并配置 IDE。基本配置文件示例:



# .clang-formatBasedOnStyle: GoogleIndentWidth: 4UseTab: NeverBreakBeforeBraces: AllmanAllowShortFunctionsOnASingleLine: None


在提交前对整个文件应用格式化。这向维护者表明您尊重他们的规则。



第三步:第一个任务——bug 和文档是您的好朋友



最安全的首次贡献是修复 bug或改进文档。不要试图立即重写架构。寻找带有 bug 或 documentation 标签的 issue。



示例:您发现了一个内存泄

博客

书籍推荐