オープンソースにPull Requestするメリット


概要

PlayFrameworkというオープンソースに小さなPull Requestを出した時の話。

オープンソースにPull Requestするメリットが大きかった為記載する。


Pull Request提出時の修正内容

http requestを投げた時のエラーレスポンスコードが一部足りなかったので追加した。

javaファイルのみ修正。単体テストちょこっと。

・・・諸々レビューを受けた(後述)結果・・・


Pull Requestがマージされた時の修正内容

・javaとscalaのレスポンスコード追加

・単体テスト追加・修正(修正メソッドのケースが綺麗にカバーされた)

では、何が起きたのかも踏まえて以下メリットを記載する。


Pull Requestするメリット3点


1.プロから無料でレビューしてもらえる。

Pull Request時以下の指摘をもらった。


  1. javaだけでなくscalaコードもあるのでそっちも一緒に直してくれないか。

  2. xxのケースの単体テストを書いてくれないか。※絶妙に考えるヒントも添えてくれた。

数行の簡単な修正に対し丁寧に教えてくれる人は何人いるだろうか。

大概が

・スルーでOKされる。

・答えのコードが書かれて"はよ終わらせや"オーラのコメントを添えられる。

っていう流れが大概ではないだろうか。

オープンソースのPull Requestは確実に丁寧にゆっくり正確に教えてくれる。


2.プロのコードから単体テストの書き方が学べる

単体テストの書き方に悩む人は少なくない。

Pull Requestは大概単体テストも直せと言われるので、

他の人(プロ)が実装した他の単体テストも読むことになる。

つまりプロの単体テストを見ながら書き方を学ぶことができるのだ。

普段からオープンソースの単体テストを読んでる人は不要かもしれないが、

ただ利用するだけでそこまで読み倒す人は殆どいないはずだ。


3.小さな修正でもContributorになれる

有名ソースのコミットログに名前が載るってなんだかんだ嬉しいものだ。

"有名オープンソースのPull Requestだしてマージされた。"

はそのコミッターか少しでも認めてくれたってこと。

今後エンジニアとして自信を持つための材料になることだろう。


まとめ

オープンソースにPull Requestするメリットは以下3つ

・プロに時間をかけてレビューしてもらえる

・プロの単体テストの書き方が学べる

・ワタシコーディングチョットデキル感がでる


おわりに

当時コミットしたこの修正は既にリファクタリングされ現コードから消えた。

だが現コードの中に当時修正した内容が踏襲されていた。

自分が持って走ったバトンがいつの間にか誰かが持って走って良くなっていく。

それもオープンソースの魅力。