为什么现在就应该开始为 Kotlin 项目做贡献?
\n\n您已经用 Kotlin 写代码几个月了。您了解协程,掌握了扩展函数,甚至使用了密封类。但您感觉自己在原地踏步?这很常见。开源不是关于“无偿劳动”。它是关于将您的成长速度提升 10 倍。当您为真实项目做贡献时,您会:
\n\n- \n
- 获得来自 JetBrains 和 Google 级别开发者的代码审查; \n
- 学会阅读和理解他人的代码(这占了高级开发者 80% 的工作时间); \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
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
重要提示:不要试图一次抓住所有。选择一个您真正感兴趣的项目。如果您喜欢编写测试,请选择 Ktor。如果您喜欢让代码更整洁,detekt 是您的选择。
\n\n如何找到您的第一个任务:解析 GitHub Issues
\n\n假设您已经选定了项目。进入 Issues 部分。您的目标是找到一个满足以下条件的任务:
\n\n- \n
- 标记为
good first issue或beginner friendly; \n - 未分配给其他开发者(没有 assignee); \n
- 活跃的(最后评论不超过 2 周)。 \n
一个现实生活中的例子。我进入了 detekt 仓库并找到了一个 issue:“为新规则 MagicNumber 添加文档”。任务:用中文或英文为新规则编写文档。这是一个理想的首个 PR——不需要深入的代码知识,但您已经在做出实际贡献。
\n\nFork、克隆、配置环境
\n\n当任务选定后,按以下步骤操作:
\n\n- \n
- Fork 仓库(右上角的 Fork 按钮); \n
- 在本地克隆 fork:
git clone git@github.com:YOUR_USERNAME/detekt.git; \n - 添加上游仓库:
git remote add upstream https://github.com/detekt/detekt.git; \n - 创建分支:
git checkout -b docs/add-magic-number-rule。 \n
分支名称应有意义。使用前缀:docs/ 用于文档,fix/ 用于 bug 修复,feat/ 用于新功能。
编写代码:Kotlin 真实示例
\n\n假设我们在 Kotlinx.serialization 库中发现了一个 bug。issue 中写道:“当年份为负数时,LocalDate 的序列化器抛出异常”。让我们分析如何修复它。
\n\n首先,找到