GSoC:我学到的东西

2014 年 8 月 14 日 | cbruckmayer | 无许可

在今年谷歌夏季代码项目 (GSoC) 的过去 4 个月里,这是一个为开源软件项目编写代码而向学生开发者提供津贴的全球项目,克里斯蒂安·布鲁克迈尔与其他学生和导师合作,为开源活动管理器 (OSEM) 编写了一个仪表板。在这个系列的文章中,克里斯蒂安将向你讲述他的项目以及他从这次经历中学到的东西。

Google Summer of Code 2014 Logo

克里斯蒂安·布鲁克迈尔大家好,我是克里斯蒂安,再次回来。这是我关于我的 GSoC 项目的系列文章的最后一篇。我已经解释了两个主要的功能,我已经实现了:仪表板会议目标与活动。我希望你喜欢这些文章,如果你还没有读过,我建议你过去阅读一下。今天我想告诉你 GSoC 对我个人来说最重要的部分:我这个夏天学到了什么!

开源的方式

Open 回顾我真的可以在 GSoC 期间获得很多经验,无论是在技术上还是在个人方面。以开源的方式一起工作是一次很棒的体验。它的过程是这样的:我会在 GitHub issue 中与 OSEM 团队讨论一个功能,然后我开始实现该功能并将 Pull Request 发送到我们的 Repository。导师们会审查我的代码并告诉我他们改进代码的建议。在我处理完建议后,这个过程就会重新开始。

这种反馈对我帮助很大。我们讨论了代码异味、糟糕的设计决策或错误的假设,就在 GitHub 上的代码旁边。而且正如四只眼睛胜过两只眼睛一样,这个过程确保只有好的代码才能进入仓库!

一起工作,但自我驱动

一方面,能够与经验丰富且技术娴熟的开发者一起工作真是太棒了。我对我的工作收到的建设性批评帮助我每天都变得更好,而且现在仍然如此。但另一方面,我负责自己的项目。这是一个挑战,因为没有人会告诉我什么时候工作,也没有人给我一个逐步的清单。我必须学会自己组织工作。由于我是自雇父母的孩子,这对我来说在 GSoC 中是一个很大的优势,因为我对优先排序、安排一天的时间和独立自主有一定的了解。尽管如此,与其他的学生和导师一起工作,但自我驱动是我这个夏天学到的东西。

测试驱动开发

另一件让我受益匪浅的事情是测试驱动开发。在以前的学生工作中,我已经编写过软件测试,但只有在其他开发者实现了功能之后。在我的 GSoC 项目中,我首先考虑测试,然后才开始实现功能。以这种方式实现,首先进行测试,你会被迫思考设计决策。‘它属于模型还是控制器?’或‘我如何将其拆分以使其更易于测试?’是我经常问自己的问题。我相信测试驱动开发是当今开发者的一项非常重要的技能,我很庆幸我能在 GSoC 期间熟悉它。

特性分支和 GIT

我以前已经使用过 Git 和其他版本控制系统,但我必须承认,我没有关注干净的提交历史(因为大多数时候只有我和一些大学同事一起工作),也没有利用分布式版本控制系统的优势,比如特性分支。特性分支真的很棒,我再也不想没有它们了。特性分支背后的基本概念意味着每个功能都会在自己的分支中开发。为什么它们对我们的项目(以及任何其他的 FOSS 项目)如此重要,是因为如果我完成了一个特定的功能,我必须等待我的导师审查它。由于导师们是非常忙碌的人,这有时可能需要几天时间。在此期间,我可以打开一个新的特性分支,开始为完全不同的功能编写代码。如果他们在编码新功能时添加了建议,我可以简单地切换回我的旧分支并开始修复建议。

Ruby 和 Rails

Rails 此外,我学到了很多关于 Ruby 和特别是 Ruby on Rails Web 框架的知识。在大学和其他学生工作中,我已经学习过 Django (Python) 和 JEE (Java)。我认为 GSoC 是一个学习新的编程语言和框架的好机会。最终,你能够比较和评估优点和缺点,并为工作选择合适的语言。最后,我可以说我真的很喜欢 Rails 的方式,因为它非常优雅、可读且简洁。使用 Rails,你能够很快地看到良好的结果。例如,脚手架功能对于快速原型设计和尝试不同的想法来说非常棒。此外,约定优于配置的范式会强制你遵循各种最佳实践。如果你不遵循这些,它会很快变得混乱,这表明你可能做错了什么;-)

我的代码对人们很重要

这个夏天有很多美好的时刻,但回顾过去,尤其有一个时刻让我记忆犹新。在六月初,ownCloud 的人们开始在我们的 GitHub 仓库中打开 issue。他们告诉我们他们将使用 OSEM 来组织 ownCloud Contributor Conference。 直到那时,OSEM 主要由 openSUSE 使用,正如我们所有人都知道的那样,吸引新的用户和贡献者对于自由和开源项目来说是一项非常重要的任务。在那一刻,我意识到我们将在这个夏天将 OSEM 推进一大步,我们的工作和努力确实很重要!顺便说一下,与此同时,其他一些组织也与我们联系,因为他们想使用 OSEM 来管理他们的会议。这真是太棒了!

谢谢你

最后,我想借此机会感谢所有 openSUSE GSoC 导师,特别是我的导师 Henne Vogelsang。Henne,如果没有像你这样伟大的人,他们花费了大量宝贵的时间来帮助和建议年轻的开发者,像 GSoC 这样的项目将是不可能的!谢谢你,这对我来说真的是一个很棒的夏天!

这是我关于我的 2014 年夏季代码项目的三篇系列文章的最后一篇,希望你喜欢。如果你有任何问题或意见,我期待在下面的评论中看到你的回复!别忘了查看我在这系列中的其他文章

分享此帖子