オープンソースプロジェクトに貢献する方法

プログラミングを学ぶのは決して簡単なことではありません。 オープン ソース コミュニティは、意欲的なプログラマーが自分自身を際立たせるための素晴らしい機会を提供します。 しかし、最も重要なことは、人々が好む素晴らしいエクスペリエンスを構築できることを証明できることです。

前回は、オープン ソース プロジェクトとは何か、なぜオープン ソースがビジネスにとって良いのかについて説明しました。 この記事では、なぜそのようなプロジェクトに貢献する必要があるのか、どのように貢献すればよいのか、どのようなプロジェクトを選べばよいのかについて説明します。 この記事は、キャリアをスタートしたばかりで、コミュニティに参加したい(そして、もしかしたらコーディングの天才になりたい)開発者向けです。

Why contribute to open source projects?

OSS(オープンソース ソフトウェア)に貢献する理由はいくつもあります。 1286>

まず、コードがオープンであるべきだと単純に信じている多くの熱狂的な人々がいます。 彼らは世界をより良い場所にしたいという理想主義者であり、それがコードを貢献する原動力となっています。

第二に、OSS は素晴らしいスタートを与えてくれます。 初心者は、ライブラリのバグを直したり、プルリクエストを送ったり、あるいはドキュメントを書いたりといった、ちょっとしたことから始めるかもしれません。 しかし、初心者はオープンソースプロジェクトに貢献しながら、いわゆる「クリーンコード」(読みやすく保守性の高いコード)を書くことを学ぶこともできます。 開発者は、自分のコードが世の中にさらされていることを実感すると、そのコードを理解しやすく、サポートしやすくすることに集中できるようになるのです。 プログラマーは、インデント、メソッドやクラスの記述、変数名、「同じことを繰り返さない」というルールなど、チーム内で一般的に受け入れられているルールに従います。 一言で言えば、無料のプロジェクトに貢献する場合、プロジェクトの規範に従うことが義務付けられています。

第三に、同じ考えを持つ人々や支援者に出会える、活発なオープンソース・コミュニティの一員になる機会を得られます。 さらに、フリーランサーでオープン ソース プロジェクトに積極的に貢献すれば、潜在的な雇用主から注目される可能性が高まります。

開発者が修正を自由に行えるプロジェクトに参加する主な理由は、認められること、プログラミング スキルを磨くこと、そして活気のあるコミュニティの一員になることです。

オープンソースを始める前に考慮すべきこと

さて、最初の OSS プロジェクトを始めるのが待ち遠しくなりましたね。

プログラミング言語

あらゆるアプリケーションの背後にある最も基本的な技術は、プログラミング言語です。 GitHub (共同コード ホスティング プラットフォーム) で最も人気のある言語は、JavaScript、Python、Java、Ruby、および PHP です。 あなたのスキルや好みに合うかもしれない多数のプロジェクトがあります。

私たちRubyGarageはRubyとそのエコシステムを愛しているので、初心者のための生きたOSSコードベースをいくつか紹介したいと思います。

  • Sinatra: Rails を使わないアプリケーションを作るための Ruby ベースのライブラリ;
  • Hanami: Ruby で作られたモダンな Web フレームワーク;
  • Chef: サーバでの作業を自動化するための Rubyベースのフレームワーク;
  • Goby: テキストロールプレイゲームを作るためのフレームワーク;
  • JRuby、セカンドトップの Ruby インタプリタ…。

助けを必要としているアクティブなオープンソースプロジェクトを5つだけ挙げましたが、これらのプロジェクトで Ruby コントリビューターとして仕事を始めることができます。

Type of project

作業したい言語を選択したら、プロジェクトの種類を選択する必要があります。 GitHub のプロジェクトは、Showcases と呼ばれるフォルダに分類されます。 以下はShowcasesの例です。 “セキュリティ”、”バーチャルリアリティ”、”テキストエディタ”、”CSSプリプロセッサー”

しかし、私たちは、幅広い人々に使用されるようなプロジェクトに特に注意を払い、実際の大規模なオーディエンスに対して自分のコードをテストする機会を持つことをお勧めします。 例えば、「Emoji」ショーケースには25のリポジトリがあり、その人気を表しています。 OSSプロジェクトの選び方のもう一つのコツは、すでに使っているソフトウェアや、これから使いたいと思っているソフトウェアに取り組み始めることです。 1286>

プロジェクトボリューム

VLCメディアプレイヤーやSpreeのような大規模なソフトウェアプロジェクトは、数千行のコードがあり、初心者には最適とは言えません。 巨大なプロジェクトに貢献する場合、そのチーム内で確立された要件を満たすことが期待されるからです。 もうひとつ、小さなヒントがあります。 課題によっては、「初めての人限定」「初心者向け」「簡単」などというラベルが貼られていることがあります。 Github には、初心者に適したプロジェクトを集めたリストもあります。

貢献するプロジェクトを選ぶ際には、これらのヒントを考慮してください。 そして常に、興味のあるソフトウェアを選び、前もって時間を配分することを忘れないでください。

How to contribute to open source projects

フリーソフトウェアについて語るとき、GitHub と関連ツールについて語らないわけにはいかないでしょう。 GitHubとは何か、オープンソースプロジェクトに参加するためにどのように役立つか見ていきましょう。

GitHubを知る

GitHubはオープンソース共同作業のための最も人気のあるプラットフォームなので、OSSの世界を探求するときに使うことが多いのではないでしょうか? まず、GitHubのアカウントを作成し、入門に役立つガイドを読む必要があります。 GitHubでは、課題の提出とコードの提供によって、プロジェクトに貢献することができます。 課題の提出とは、アプリケーションのエラーに関するメッセージを送信し、その修正方法を提案することです。

基本を学ぶ

GitHubで作業する場合、最も人気のあるバージョン管理ツール(改訂管理ツールとしても知られている)の1つであるGitの使用方法を知っておく必要があります。 開発者は常に自分のコードに変更を加えるため、それらの変更を中央リポジトリで管理できるシステムが必要です。 このようにして、開発プロセスに関与する誰もが、与えられたソフトウェアの一部をダウンロードし、変更を加え、更新を提出することができます。

リビジョン管理ツールに慣れていることに加え、必須のスキルとして、リポジトリのクローン作成とプルリクエストを送信できることが挙げられます。 プルリクエストは、コードに加えられた変更をコードメンテナーに通知します。彼らは、これらの変更をレビューし、それらについて議論を開始し、あるいは、それらをさらなるコミットに割り当てることができます。 メーリングリストは、公式サイトやGitHubのページで見つけることができます。 メーリングリストに登録された後は、チームメンバーとコミュニケーションをとり、必要に応じてサポートを受けることができます。 ほぼすべての OSS プロジェクトに存在する活気あるコミュニティのおかげで、質問に対して迅速な回答が得られる可能性があります。

あらゆるスキルを歓迎します

プログラマーでなくてもオープンソースプロジェクトに貢献できます! ドキュメントはすべてのプロジェクトで必要ですが、時にはこれがうまく書かれておらず、メンテナンスされていないことがあります。 したがって、あなたはドキュメントを書いたり、更新したり、あるいは翻訳することで助けることができます。 また、あなたのデザイン・スキルも役に立つかもしれません:結局のところ、すべてのアプリケーションにはインタフェースが必要なのです。 最後に、質問に答えたり、新しい人を指導したりして、コミュニティを管理することで貢献できます。

Ways to contribute to open source projects

OSS プロジェクトに貢献する最も一般的な方法を強調しましょう。 GitHub や Bitbucket にある既存のプロジェクトが、構築したい機能を提供していないと感じたら、独自のオープン ソース ソリューションを作成します。

  1. プロジェクトに必要なスキルは何か。
  2. プロジェクトに費やす時間はどのくらいか。
  3. あなたの製品の潜在的なユーザーはどれくらいいますか?

商用ソフトウェアに代わるオープンソースを作成する

今日の商用プロジェクトは、オープンソース ソリューションに積極的に取り組んでいます。 多くの企業は、無料のツールをベースにプロジェクトを進めています。 ソフトウェアの膨大な選択肢がある場合、車輪を再発明する必要はありません。 このため、同様のプロプライエタリなソフトウェアを置き換えることができる、あるいは、最近直面した問題を修正するフリー ソフトウェアを使って遊んでみると便利です。

商用ソリューションをオープン ソース ソフトウェアに置き換えるもうひとつの理由は、真の革新と成長に対する熱意です。 商用ソフトウェアは、革新的であると主張していますが、その最終目標は利益を上げることです。 オープン ソース ソフトウェアは、ベスト プラクティス、優れたコードの品質、そして、ただ好きだからという理由でコードを書きたいという情熱的な開発者を結びつけています。

既存のオープン ソース プロジェクトに貢献する

開発者向けのプラットフォームで、シンプルだが不可欠な機能のセットを持つ GitHub では、自由に参加できる多くのプロジェクトが見つかります。 GitHub は、公開 API、洗練された頻繁に更新される UI、コードの一部やアプリケーション全体を共有できる gist (Git リポジトリ) などで開発者を惹きつけます。 フリーソフトウェアには様々な方法で貢献することができます。 開発者は、プロジェクトをフォークしたり、コードに変更を加えたり、プルリクエストを送ることができます。 そして、品質保証は常に感謝されます。 開発者が忙しすぎたり、怠けすぎたりして、自分のコードの品質をチェックできないことがあります。 ですから、バグを報告したり、修正を試みたりしてください。

「トレンド」リンクをたどると、最もホットな GitHub プロジェクトに到達できます。 そして、検索をより関連性の高いものにするために、高度な検索を使用します:コーディングしたい言語を選択し、「ベストマッチ」条件を選択します。 ベストマッチは、フォーク数(プロジェクトがどれだけ活発に更新されているかを表す)とスター(Facebookでいうところの「いいね!」)を考慮し、関連性の高い順にプロジェクトをランク付けします。 ほとんどのプロジェクトには、”bug”, “discussion”, “security”, “refactor” などのラベルや、難易度に応じたラベルを持つ既知の問題があります(ただし、そうでないものもあります)。 「簡単」、「中程度」、「難しい」。

Conclusion

オープンソース プロジェクトは参加する人に多くの利益をもたらし、その経験は履歴書に記載するのにも最適です。 同じ志を持つ人々のコミュニティに参加し、スキルを磨くことで、意欲的な開発者としてのステップアップを図ることができるのです。 ここまで、OSSプロジェクトに参加する一般的な理由と、参加するための様々な方法をご紹介しました。 OSSプロジェクトへの貢献についてもっと知りたい方は、「オープンソースプロジェクトがIT市場に浸透する方法」や「フリーソフトウェアのセキュリティ」についての過去の記事もご覧ください

コメントを残す

メールアドレスが公開されることはありません。