アマチュアとしてオープンソースプロジェクトに参加するのは悪いことですか?


17

約6か月間、オープンソースのiPhoneまたはiPadプロジェクトに参加してObjective-Cのスキルを磨くべきだと考えていましたが、それをするたびに巨大なプロジェクトで数千行のコードが表示されます最終的に私は理解できないだろうと自分自身を納得させます。私のコミットはプロジェクト管理者や上級コントリビューターにとっては面倒なものになるといつも思うので、私はいつも最後の瞬間に撤回します。

私の質問は本質的に、中級経験のあるプログラマーがオープンソースプロジェクトに参加するのは面倒ですか?


1
Mackeの答えはより網羅的ですが、大胆な質問に対する簡潔な答えは「いいえ」です。
クリスブラウン

1
@ChrisBrowne:良い点。答えを一致するように編集しました。:)
マッケ

回答:


15

いいえ、ちがいます。

あなたが見ているプロジェクトのコードベースが非常に困難な場合は、以下を考慮してください

  • 作業する(偶数)小規模なプロジェクトの選択。
  • プロジェクト内の小さなタスクを選択します。
    • 何かの例/チュートリアル/デモを書く
    • ドキュメントの更新と修正(すべてのプロジェクト、OSの有無にかかわらず、より良いドキュメントが必要)
    • 多くの優先度は低いが修正が容易なバグを修正します(コードへの露出度が高く、開発者は通常幸せで、リスクは低いです)
  • コアソースへのコミットアクセスなしで貢献する方法があります。
    • コメント可能なパッチの提出。
    • プルリクエストのフォークと送信(上記を参照)
    • 分岐して自分で離れて、あなたがどこに行くかを見るために。満足している場合は、開発者にあなたがしたことを見て、それが理にかなっているかどうかを確認するよう依頼してください。

コミットが受け入れられないという「恐怖」を克服するには、最初に安全なポイントに進みます。これにより、あなたと開発チームの両方があなたの関係に自信を持ち、お互いの考え方を学ぶことができます。スキル(経験、コード品質、OSプロジェクトチームとそのダイナミクスの両方の理解)が向上するにつれて、手間をかけずに大きなタスクに取り組むことができるようになります。

また、適切な出発点を求め、チームがあなたに適していると思うものを確認するのに役立ちます。

例として、私は長年にわたって少しずつBuildbotに貢献してきました。いくつかの小さな問題の修正を始めただけで、目立ったバグを修正することでMercurialソースステップの品質を向上させました。最後に、ほとんどのWebページを書き直し、コード内のHTML貼り付けをテンプレートベースのHTML生成ソリューションに切り替えました。後者は、数か月のハードワークで数百件のコミットでした。

Mercurialの作業もいくつか行いましたが、それらの人たちはよりうるさく、技術はより複雑なので、コアの修正はまだ行われていません。いくつかのバグレポートを作成し、いくつかの小さな拡張機能を作成しましたが、現時点ではそれ以上大きなものはありません。

それが役に立てば幸い。


buildbotの+1-これは素晴らしいプロジェクトであり、非常に素晴らしく、役に立つメンテナーがいます。良いプロジェクトを開始したい場合は、一見の価値があります。
ネイト

完全なアマチュアはどうですか?プログラミングレベルが低く、公式の教育を受けていない人ですか?
ロイ

1
@Royその場合、まずはソースをいじって、そこから学ぶためにソースをいじるだけです。効果的に貢献するポイントに到達するには、もう少し時間がかかります。自分自身でいくつかの優れたチュートリアル(プロジェクトおよびそのフレームワーク/ライブラリ)を実行することから始めて、どこでどのように貢献するかを理解できるように知識を構築することをお勧めします。ゲームMOD(およびプラグイン)は、サンドボックスに単独で存在し、コア開発者のレベルを実現するのに最適です。
マッケ

4

飛び込んでください。しばらくの間開発リストを監視し、快適に感じたら自己紹介してください。多くのプロジェクトには、バグ修正やドキュメント作成の簡単なジョブがいくつかあり、常連が喜んで指摘します。ほとんどのプロジェクトは、新しい手にとって非常に友好的であり、プロジェクトの真の資産になるために十分な速さでスクラッチできるようになります。

しばらくすると、コードベースの構造と最も重要な部分に精通することになります。このようなコードを理解することはプログラミングの非常に重要な部分であり、オープンソースはそれを学ぶ素晴らしい方法です。


2

頑張れ。たくさんの初心者が同じことをしています。プロジェクトリーダーは、リーグから外れていないものを見つけるのに役立ちます。あなたは徐々に残りに成長します。

ああ、そしてあなたがコードを理解していないからといって、それが良いことを意味するわけではありません。ひどく恐ろしいコードが見られます。それのいくつかは、不完全に書かれており、本来よりもはるかに複雑になっているため、理解するのが困難です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.