seungwon

オープンソースへの貢献経験

作成: 2025-05-03

更新: 2025-05-27

作成: 2025-05-03 00:00

更新: 2025-05-27 09:42

この記事は、オープンソースに興味はあったけれど、「私には無理かも?」「どこから始めればいいの?」と恐れを抱いていた方々に、勇気を与えることを目標としています。

今日は、私が勇気を出してオープンソースの門を叩き、その過程で学び、感じた経験を共有したいと思います。

オープンソース?

開発の勉強をしていると、「オープンソース」という言葉をよく耳にするようになります。GitHubを覗いてみると、世界を動かす数多くのプロジェクトがコードを公開しています。

このようにコードを外部に公開するプロジェクトを「オープンソース」と呼びます。
例えば、OpenJDK、Spring Framework、Redis、Reactのような大規模なオープンソースがあります。

オープンソースへの貢献

私はこれまで合計4回、オープンソースに貢献してきました。世の中をひっくり返すような機能を追加するのではなく、オープンソースの小さく、些細な改善点を見つけて貢献しています。

私は上記のプロジェクトのコードスタイルも知らず、どのような動作をするのかも詳しく知りません。

このように、コードを完全に理解していなくても、コミュニティに貢献できるということがわかります。私はまだ開発に携わって2年しか経っておらず、それほど開発に才能があるとも感じていませんでした。

ただ、オープンソースに貢献し、開発者コミュニティでコミュニケーションをとるのが楽しいので、このような活動を続けています。

なぜオープンソースに貢献したいと思ったのか?

正直なところ、最初は「履歴書に1行追加できればいいな」という考えも全くなかったわけではありません。結構大きかったです。しかし、もっと大きな動機がありました。それは、「もっと深く学びたい」という熱望と、「自分が経験した問題を解決したい」という必要性でした。

チームプロジェクトでSpring WebFluxを使用し、その基盤技術であるProject Reactorを深く学ぶ機会がありました。本やドキュメントを通して概念は理解できましたが、実際の複雑なシステムでどのように動作し、最適化されるのかは、実際にコードを見てぶつかってみないとわからない領域でした。また、「自分がReactorを一生懸命勉強したことをどう証明しよう?」という悩みをよく抱き、「オープンソースに貢献しよう!」という気持ちになりました。

いざ「貢献したい!」と決心しても、どこから始めれば良いのか途方に暮れました。膨大なコードの中から、自分が修正する部分を見つけることから、自分の変更が全体システムにどのような影響を与えるのか予測することまで、すべてが恐ろしかったのです。

「私みたいなのがPR送って、変に叩かれたらどうしよう?」という思いが強く、最終的にPRを登録するまでに時間がかかったように思います。

私がReactive Stackとして使用していたRedis JavaクライアントであるLettuceのReactive CommandがReactor 기반であり、Reactor学習を基にReactorチェーンを直接修正して改善してみたいと思いました。

とりあえず、forkをした後、「Reactive」、「reactor」の文字列マッチングで含まれるすべてのコードを調べました。Mono、FluxのようなReactor Publisherでチェーンが構成されているコードはすべて確認したと思います。

コードを隅々まで見てみると、幸運なことに、Reactorチェーンを使用するコードの一つで、少し可読性が低く、メソッドチェーニングが正しく行われていないコードを発見しました。世間を騒がすような機能改善やアーキテクチャの変更ではありませんでしたが、自分が理解し、修正できる範囲内の小さく明確な問題でした。「ああ、これなら自分も貢献できる!」と思いました。

私が把握した内容を基に、慎重にコードを修正し、ローカル環境で簡単に動作するか確認しました。たとえ小さな変更であっても、既存のコードのスタイルを最大限に尊重し、他の部分に影響を与えないか何度も悩み、慎重にアプローチしました。

修正した内容をコミットし、いよいよPRを送る時が来ました。正直、「送信」ボタンを押すまで本当に多くの悩みと躊躇がありました。「この程度の変更でPRを送っても良いのだろうか?」「もしかして当たり前のことを修正しただけだと言われないだろうか?」「英語で説明をうまく書けるだろうか?」という心配が先に立ちました。

先に述べたように、変に自分の至らなさのせいで叩かれたらどうしようかという恐れが大きかったです。しかし、「始めが肝心」「ぶつかってみなければ何も学べない」という考えで、勇気を出して、私が変更した内容とその理由をできるだけ詳しく書いてPRを提出しました。

オープンソースへの貢献経験

redis/lettuce - #3061

ついに、私のPRが「Merged」され、私が書いて修正したコードが、数多くの開発者が使用する有名なオープンソースプロジェクトの一部になったという事実に、本当に大きな達成感と誇らしさを感じました。

何よりも「自分にもできるんだ!」という自信を得られたことが、最大の収穫でした。

もしかして、今オープンソースへの貢献を躊躇していますか?

完璧に理解できなくても大丈夫です。私のように小さな部分から始めれば良いのです。ドキュメントの誤字修正、翻訳への参加、簡単なバグレポートなど、貢献できる方法は本当にたくさんあります。重要なのは、恐れを乗り越え、第一歩を踏み出す勇気です。

もし、ミスをしても、そのミスを通してコミュニティからフィードバックを受け、さらに成長できる機会にもなります。

履歴書に1行追加できる貴重な機会でもありますが、学習に基づいたオープンソースへの貢献は、自分が本当に一生懸命勉強したことを証明する手段にもなりえます。

コメントを登録できない投稿です。