开源已经从软件开发中的重要角色转变为许多人的中心,尤其是感谢Github 。 我们大多数人都是OSS(开源软件)的简单用户,但是勇敢并勇往直前,成为贡献者甚至所有者,可以通过不同的方式为您提供大量帮助:
- 与聪明的人合作,无论其居住地在哪里。
- 通过远程沟通提高社交技能。 性格外向只是成功参与的要素之一,OSS为您提供舒适安全的环境,让您可以探索其他社交技能。
- 回馈社区。
- 以实用的方式学习工具,语言或方法的好方法。
但是,很难与OSS很好地结合。 让我与您分享一些提示,这些提示可以帮助您缓解这种经历:
贡献者的观点
寻找专案
这听起来很愚蠢,但是有时候,您甚至不知道从哪里开始。 项目离您越近,就越容易参与其中。 按接近顺序征集:
- 与您的同事交谈。 许多人都在秘密地从事激动人心的项目。 您可能真的很惊讶!
- 探索您使用和喜欢(或讨厌:)的工具)
- 使用一些搜索工具: Github趋势存储库 , Open Hatch或Code Triage
探索项目
下载代码,运行测试,使用该工具,进行一些小的更改……每个人对于要使用哪种好的代码都有不同的想法,请确保您要花时间在该代码库上。 您应该耐心并且理解,有时您会浪费时间试图弄清楚该项目是否适合您,没有自述文件或博客文章可以告诉您您是否喜欢从事该项目。
通过这样做,您可以提出一些以后可以解决的问题,例如:
- 过时的文档。
- 难以阅读的代码。
- 片状测试套件或非测试区域。
项目不仅是其代码,因此您也应该探索其社会方面。 聊天,邮件列表,问题,请求请求,Wiki…想象一下,自己向一家公司申请工作,并能够花费尽可能多的时间阅读其内部大部分文档。 您可以利用OSS做到这一点,利用这个机会。 您甚至可以看到机器人相互交谈 :
要谦虚
在OSS中进行协作并不一定意味着要在Linux内核上工作。 如果这是您第一次来,请谦虚并掌握一些可管理的基本复杂性。 由于您之前的探索,您应该拥有足够的信息。 通常要注意意外的复杂性,这是懒惰的标志,从长远来看,这是疯狂的标志。
同样,不要开始参与该项目进行大规模重构或完成一些雄心勃勃的问题。 您可以花一些时间来熟悉一下代码库,然后再根据自己的判断力做出任何决定,从而有所作为。
相信项目
正如罗伯·泰勒(Rob Taylor)前几天向我指出的那样, 丹尼尔·平克 ( Daniel Pink)认为,工作需要激发三个要素:自治,精通和目标。 如果您不相信所选择的OSS项目,那么您将失去相当多的目标,因此请尝试拿起真正让您兴奋的东西。 海里有很多鱼,所以如果您没有乐趣,可以随意走动并寻找新的项目。 这是OSS的好东西,对于我们大多数人来说,它不付账单,因此我们可以随时离开。
可访问
OSS的大多数所有者正在寻找贡献者。 为了吸引合适的人,您需要提供以下内容:
- 切入点:并非每个人都有相同的技能或兴趣。 围绕不同类别组织问题对于新手确实很有帮助。
- 初学者友好型:如您在此版本库中所见,有几个OSS项目初学者友好型。
- 指南:在PR(拉动请求)上投入大量时间,然后获得大量反馈确实令人沮丧。 您可能会认为您的标准是通用的,但是即使是诸如测试或干净代码之类的东西,也不是每个人的共同价值。 该项目应在自述文件或Wiki中明确说明对PR的期望。 不要降低标准,而要明确指出。 最终,您的项目需要有价值的代码,贡献者完成任务所需的时间并不重要。
- 交流工具:即使项目有大量文档,您也需要提供社区相互交流的方式。 Gitter是一个很棒的聊天工具,而Google 网上论坛也可以用于邮件列表。 在那里容易接近,如果没人回答问题,则在自述文件中包含Gitter徽章是没有用的。
清楚
我发现的大多数项目都缺少适当水平的文档(如果想要一个好的相反的例子,请查看ScalaTest 。如果要开发工具,请提供不同用例的生动示例。)新成员阅读大量文档可能是不现实的,一个生动的例子可能是解释您的项目的最简单方法。
不要吓people人
当然,除非您想要:)。 看看Linus Torvalds是如何处理Linux内核中的部分内容的 。 我可以想象他们有一个项目需要更多的志愿者,而且我了解他们必须对合并代码的质量非常谨慎,但是除非您想吓到大多数新手,否则请不要那样做不愉快的代码。
结论
我很幸运能有机会与Marco Vermeulen一起工作, Marco Vermeulen是一个很棒的OSS工具(称为SDKMAN)的创建者。 对于我来说,第一步非常容易,因为该项目已记录在案, Cucumber BDD测试套件非常详尽,而且确实如此,因为Marco的可用性。 但是,在过去,由于我的失误,我在OSS项目中参与了几次失败,并且大多数时候都失败了。 我希望这些技巧将对那些正在考虑与OSS合作的人们有所帮助。 将来,我将更详细地介绍我与SDKMAN合作时所学的内容。
翻译自: https://www.javacodegeeks.com/2015/11/tips-for-a-friendly-open-source-experience.html