:Hacktoberfest是一个为期一个月的活动,鼓励开发者为开源做出贡献--提交四个有效的拉动请求,你就可以赢得一件T恤。尽管今年有批评和争议,但我是这个活动的粉丝,它确实有助于激励我做出一些贡献。
我想分享我为Hacktoberfest提交的材料,因为我认为这是一个很好的样本,说明希望为Ruby和Rails做出贡献的人们可以有哪些选择。在主要的rails/rails 仓库之外,还有很多方法可以回馈。

视图组件
拉动请求:允许通过配置选项来定制预览控制器
view_component gem可以帮助你将服务器上的视图参数组织成由Ruby类支持的 "组件"。如果你熟悉内置的Railspartials 和实现装饰器或演示器模式的 gem(如draper ),你可以把view_component 看作是这两种方法的混搭。
我一直在我自己的项目中玩这个宝石,并认为它正朝着一个伟大的方向发展。我发现了一个现有的带有 "需要帮助 "标签的问题,并决定看看我是否可以添加这个功能。
view_component gem允许你在沙盒模式下测试你的组件(类似于Rail的mailer previews)。有一个功能请求是支持自定义用于渲染这些预览的控制器,以防你想添加授权或其他特殊应用的东西。
该请求已被合并,并在2.20.0版本中发布。
像这样的宝石是一个很好的贡献起点。与深入研究Rails内部结构相比,你肯定有更多在自己的应用中使用gem的经验,所以在gem中添加功能或修复bug会更容易接近。
维护者将问题标记为 "需要帮助",而且 "流量 "很低,我能够很快得到问题的回答和代码的审查,这对我很有帮助。
子弹
存储库: flyerhzm/bullet
拉动请求:更新页脚通知的设计
bullet gem是我在构建Rails应用程序时常用的工具之一。这个宝石会在你开发一个功能时标记N+1个查询,并提醒你应该预加载的关联。在你开发过程中发现并解决这些性能问题,而不是在几个月后它们出现在生产中,这要好得多。
你可以配置bullet 通知你问题的方式。我的默认偏好是浏览器弹出 - 它很烦人,但它确实促使我去解决这个问题,而不是忽视它。但有时会出现误报,或者我正在制作一个功能的原型,这就变得太多。所以我去切换配置,使用 "页脚",它将在页面上添加一个带有错误信息的横幅。
但我真的不喜欢这个设计:它占用了大量的空间,而且,很难看。
所以我决定改变它。你可以在这里看到 "之前 "和 "之后"。新的设计是可扩展的,而且不碍事。
拉动请求已被合并,并将包含在下一个版本的宝石中。
LRUG
存储库: lrug/lrug.org
LRUG是伦敦当地的一个Ruby聚会小组。虽然在GitHub上的这个贡献很小(仅仅是在他们的网站上更新了我的一个讲座的幻灯片链接),但它仍然是一个如何为Ruby社区做出贡献的例子。
Meetups总是在寻找志愿演讲者,考虑到许多团体在2020年做虚拟聚会,我想从我的本地聚会(印第安纳波利斯)中分支出来并提供在欧洲的两个团体中演讲可能会很有趣。我给柏林的Ruby用户组和伦敦的用户组做了关于使用StimulusJS的演讲。作为一个 "国际演讲者",这很酷,而且我能够利用时区差异,简单地将演讲安排在我的正常工作日程中(美国的午餐时间在欧盟是晚上)。
总的来说,我有一个很好的经历,并且受到了来自世界另一端的Ruby新朋友的热烈欢迎。
Ruby for Good:传阅
拉动请求:为项目添加电源字段
我在寻找可以贡献的项目时遇到了Ruby For Good组织,发现他们管理着许多Ruby和Rails项目,帮助那些需要软件开发工作的非营利组织。这里有帮助保护、尿布银行、志愿者管理等方面的应用。
我发现一个项目正在为工具借阅图书馆建立一个库存管理系统。这个想法是,你可以从社区库中借到工具,或者安排时间来使用通常对个人来说太昂贵的机器。
Ruby for Good项目似乎都有一个团队来帮助分流和定义工作项目,并且有一个Slack频道来协调和提出问题。我认为能够为一个开源项目做出贡献真的很不错,在这个项目中,你可以像大多数开发人员那样编写功能,作为他们 "正常 "工作的一部分。编写框架和库是非常重要的,但它需要的技能和思维方式与开发应用程序不同。
我能够在一个小时内让项目在本地启动和运行,我开发了一个功能,在系统中为Item,以记录工具使用何种电源。
该拉动请求被合并并部署到芝加哥工具库应用程序中。
收尾工作
尽管有缺陷和激励措施的问题,我发现Hacktoberfest个人是一个非常有动力的努力。有几种方法可以为Ruby或Rails开源生态系统做出贡献--即使你并不热衷于潜入一个巨大的框架或项目。
你可以从查看一些你喜欢的宝石开始,看看是否有你能做的改进--毕竟,你作为一个最终用户的观点是非常宝贵的。
考虑在当地(或远程!)的用户组做一次演讲。无论你在编程的道路上走了多远,你总是可以分享一些你所学到的东西来帮助别人。
最后,如果你想练习更多日常的Rails开发技能,可以考虑看看我们的Ruby for Good。这些项目对于初级开发人员来说是一个很好的环境,因为他们有专门的人参与,帮助审查代码和编写功能规范。