web-dev-qa-db-ja.com

オープンソースから学ぶ方法

この問題はよく見られます。私はオープンソースプロジェクトの特定のバリュープロポジションが好きです。基本的なチュートリアルを試してみます。すごい。できます!しかし、もっと複雑な問題に移ると、調査、デバッグ、フラストレーションなどに何時間も費やします。

オープンソースのモチベーションを維持するための戦略は何ですか?基本的なチュートリアルが成功した後のオープンソースの見返りは何ですか?オープンソースのどのような「成功」を経験しましたか?

8
poseid

Githubにあるような小さなオープンソースライブラリを見ていると思います。私の場合、特定の問題を解決するためによく使用しています。それがうまく解決しない場合は、私は掘り下げて、コードがどのように機能するかを学び、必要に応じて変更を加えます。私の変更が何か有用なものやバグ修正のためのものである場合、私はオープンソースの所有者に連絡するか、自分のブランチをフォークしようとします。

また、自分のニーズに近いものを適応させている場合もあります。その場合は、変更を加えて先に進みます。時計を追加するか、定期的にチェックインして、更新内容を確認します。

ただし、メモにあるように、これがソフトウェア開発の人生です。それは絶えず変化する環境です。

4
Bill Leeper

sing特定のオープンソースAPIプロジェクトでモチベーションを維持する方法を尋ねますか?

秘訣は、どのオープンソースプロジェクトが優れているかを理解することです。オープンソースの主な資格は、ソースコードにアクセスできるという事実です。これは、物事がどのように機能するかを調べる必要がある場合(通常、状況によっては動作を変更する必要がある場合に発生します)に非常に役立ちますが、そうではありません。それ以外のことを意味します。これには、ソースのオープン性とはまったく関係のないプロジェクトの品質が含まれます。

コードプロジェクトについて言えば、品質は多かれ少なかれ微妙なもので構成されています。

  • APIはどの程度うまく設計されていますか? APIを実際に呼び出すために作成する必要のあるコードは簡単に読み取れますか?
  • APIの実際のコードはどの程度適切に記述されていますか?何が起こっているのか理解するのは簡単ですか?データ構造は適切に選択されており、高価な実行時特性がありませんか?変数名は適切に選択されていますか?コードはコーディング標準に準拠していますか?
  • APIは文書化されていますか?これは実際のコードの設計とjavadocの両方であり、役に立ちますか?これは、コードの成熟度を示すため、想像以上に重要です。
  • プロジェクトにはWebページがありますか?更新されており、リンク切れはありませんか?ソースコード、ダウンロード、ドキュメントに簡単にアクセスできますか?
  • プロジェクトにはコミュニティとメーリングリストがありますか?アーカイブは利用可能でアクセス可能ですか?コミュニティは役に立ちましたか?

これらすべてのことは、特定のオープンソースプロジェクトを使用するかどうかを選択するときに覚えておくと便利です。最高のものから派生したものは、これが最善のプロジェクトではないことを示しているため、頭の中で警告サインが点滅するはずです。

次に、プロジェクトを見つけたら、見たものが気に入ったら、最終テストがあります。

  • 便利な方法でAPIを呼び出す単純なプログラムを使用して、最初から起動して実行するのはどれほど難しいですか?

これは

  1. プロジェクトのWebサイトやダウンロードバンドルのドキュメントで簡単に見つけられる場所で説明されています。
  2. 正しく理解するのは簡単です-ドキュメントは正確で、プログラムは与えられた単純な例から簡単に記述または適応でき、十分に説明され、簡単に理解できる必要があります。
  3. すぐに正しく理解できます-説明どおりにプログラムを実行するために、この時点でanyデバッグを行う必要がある場合は、何かが非常に間違っています。

これが予想され、優先順位が付けられたユースケースであることが明らかな場合、これは簡単なはずです。プロジェクトがこの特定のことを気にしていないことが明らかな場合は、それを使用しないことを強く検討します!ここで上り坂になると、何度も何度も上り坂になりますので、使わない方がいいでしょう。

4
user1249