从新手到贡献者:您的第一个 Kotlin 项目 PR

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

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

开始课程

为什么现在就应该开始为 Kotlin 项目做贡献?

\n\n

您已经用 Kotlin 写代码几个月了。您了解协程,掌握了扩展函数,甚至使用了密封类。但您感觉自己在原地踏步?这很常见。开源不是关于“无偿劳动”。它是关于将您的成长速度提升 10 倍。当您为真实项目做贡献时,您会:

\n\n
    \n
  • 获得来自 JetBrains 和 Google 级别开发者的代码审查;
  • \n
  • 学会阅读和理解他人的代码(这占了高级开发者 80% 的工作时间);
  • \n
  • 用真实案例(而非学习任务)充实您的作品集;
  • \n
  • 在社区中建立有用的人脉。
  • \n
\n\n

在本文中,我将展示如何迈出第一步。没有恐惧,没有复杂的理论——只有实践。我们将探讨在哪里寻找任务,如何编写第一个有意义的 PR,以及如何避免犯错。

\n\n

从何开始:选择适合您水平的项目

\n\n

新手的主要错误是试图立即为 Kotlin 编译器或 Ktor 做贡献。停。这是通往倦怠的道路。您需要的项目应具备:

\n\n
    \n
  • 带有 good first issue 或 help wanted 标签;
  • \n
  • 支持最新的 Kotlin 版本(1.9+);
  • \n
  • 有清晰的 CONTRIBUTING.md;
  • \n
  • 社区在 1-3 天内回复问题。
  • \n
\n\n

Kotlin 开源入门的前 5 个项目

\n\n

以下是我推荐您查看的经过验证的仓库:

\n\n
    \n
  • detekt — 静态代码分析器。有许多关于文档和简单规则的任务;
  • \n
  • Kotlinx.serialization — JetBrains 的库。有为新手准备的 good first issue;
  • \n
  • Ktor — 用于服务器和客户端的框架。那里经常需要文档和测试方面的帮助;
  • \n
  • Exposed — Kotlin 的 ORM。如果您处理过数据库,这很理想;
  • \n
  • Anko — 虽然项目已冻结,但仍有许多关于文档的开放 issue。
  • \n
\n\n

重要提示:不要试图一次抓住所有。选择一个您真正感兴趣的项目。如果您喜欢编写测试,请选择 Ktor。如果您喜欢让代码更整洁,detekt 是您的选择。

\n\n

如何找到您的第一个任务:解析 GitHub Issues

\n\n

假设您已经选定了项目。进入 Issues 部分。您的目标是找到一个满足以下条件的任务:

\n\n
    \n
  • 标记为 good first issue 或 beginner friendly;
  • \n
  • 未分配给其他开发者(没有 assignee);
  • \n
  • 活跃的(最后评论不超过 2 周)。
  • \n
\n\n

一个现实生活中的例子。我进入了 detekt 仓库并找到了一个 issue:“为新规则 MagicNumber 添加文档”。任务:用中文或英文为新规则编写文档。这是一个理想的首个 PR——不需要深入的代码知识,但您已经在做出实际贡献。

\n\n

Fork、克隆、配置环境

\n\n

当任务选定后,按以下步骤操作:

\n\n
    \n
  1. Fork 仓库(右上角的 Fork 按钮);
  2. \n
  3. 在本地克隆 fork:git clone git@github.com:YOUR_USERNAME/detekt.git;
  4. \n
  5. 添加上游仓库:git remote add upstream https://github.com/detekt/detekt.git;
  6. \n
  7. 创建分支:git checkout -b docs/add-magic-number-rule。
  8. \n
\n\n

分支名称应有意义。使用前缀:docs/ 用于文档,fix/ 用于 bug 修复,feat/ 用于新功能。

\n\n

编写代码:Kotlin 真实示例

\n\n

假设我们在 Kotlinx.serialization 库中发现了一个 bug。issue 中写道:“当年份为负数时,LocalDate 的序列化器抛出异常”。让我们分析如何修复它。

\n\n

首先,找到

博客

书籍推荐