DUICUO

それは良い動きです。GitHub でオープンソース プロジェクトを効率的に検索するのが得意ですか?

オープンソース界におけるGitHubの人気と知名度は紛れもない事実です。それに加え、GitHubは本日、新たな大きな発表で注目を集めました。以前は有料サブスクリプションが必要だったプライベートリポジトリが、今後は無料で利用可能になるというものです。これは、MicrosoftによるGitHub買収によってGitHubの核となるアイデンティティが変わることなく、むしろ進化を遂げたことを示しています。

2つの異なる話題についてお話しましょう。今日はGitHubの重要性ではなく、その検索機能についてお話しします。

GitHubでコードを検索するとき、皆さんはどのようにしていますか?私のように、検索ボックスに検索したいものを入力して、リストをめくりながら必要なものを探していませんか?


あるいは、左側に言語フィルターを追加して、よりシンプルなフィルターを実行することもできます。

あるいは、リストの並べ替え方法を変更することもできます。


それだけですか?

ほとんどのシステム検索機能には「詳細検索」機能があります。これを使用すると、二次検索を実行するには別のインターフェースを開く必要があります。GitHubにも同様の機能はありますか?

答えは「はい」です。何千人ものエンジニアにサービスを提供するウェブサイトであるため、技術的なスキルだけでなく、高度な技術も必要です。

同様のアプリケーションを自分たちで開発する場合、どのように実装すればよいでしょうか?

それを念頭に置いて、GitHub がどのようにそれを実現するかを見てみましょう。

ここでは、Spring Cloud を学習しようとしており、参考と練習のために Spring Cloud のデモを探しているものと想定します。

1. 検索用語(リポジトリのタイトル、リポジトリの説明、README)を明確に定義します。

GitHub では便利な検索方法が提供されており、リポジトリのタイトル、説明、README などのみに検索を制限できます。

Spring Cloud を例にとると、典型的なリポジトリは次のようになります。


赤い矢印はそれぞれリポジトリ名と説明を示しています。特定のキーワードで検索を絞り込むこともできます。例えば、名前に「spring cloud」を含むリポジトリだけを検索したい場合は、以下の構文を使用します。

in:nameキーワード


記載されているコンテンツを見つけたい場合は、次の方法を使用できます。

in:descriptionキーワード


ここで、上記のプロジェクトの説明に記載されているコンテンツを検索します。

ほとんどのプロジェクトにはREADMEファイルがあります。そのファイルに特定のキーワードが含まれているかどうかを確認したい場合は、もうお分かりだと思います。

in:readmeキーワード

2. 特定の数以上の星とフォークの数字を検索条件として指定します。

プロジェクトに付けられた星の数は、一般的にその人気度を示す指標です。質の低いプロジェクトの中には、星の数を人為的に水増ししているものもありますが、そのようなプロジェクトは少数派であり、星の数は依然として信頼できる人気度指標です。

stars: > 数値キーワード。

たとえば、スター数が 3000 を超える Spring Cloud リポジトリを検索する場合は、次のようにします。

星:>3000 春の雲

>= を追加しないと、特定の数に等しい星の正確な数を見つける必要がありますが、これは通常非常に困難です。

指定された範囲内の数値を検索する場合は、... を使用します。

星: 10..20 キーワード

同じロジックがフォークの数にも適用されます。単に `stars` を `fork` に置き換えるだけで、残りの構文は同じままです。

3. 検索リポジトリのサイズを指定します。

たとえば、単純なデモだけを見たい場合や、複雑すぎるものやディスク容量を大量に消費するものは検索したくない場合は、検索時にリポジトリのサイズを制限できます。

使い方:

サイズ:>=5000 キーワード

この数字は K を表し、5000 は 5M を表すことに注意してください。

4. 倉庫がまだ更新およびメンテナンス中であるかどうかを判断します。

オープンソース製品やフレームワークを使用するかどうかを決める際には、それらが現在もメンテナンスされているかどうかが重要な要素です。古くなったり、メンテナンスが終了したりすると、問題が発生する可能性が高くなります。さらに、GitHubでプロジェクトを検索する際には、各プロジェクトの最新のプッシュ日を確認する必要がなくなり、検索ボックスを使用するだけで済みます。

元旦が過ぎたばかりですが、年末に向けて頻繁に更新されているプロジェクトを探している場合は、特定の日付の前または後の更新時間を直接指定することができます。

以下の検索を通じて:pushed:>2019-01-03 spring cloud

1月3日以降も更新が続いているプロジェクトを発見しました。


特定の時間の前または後に作成されたリポジトリを検索する場合は、「pushed」を「created」に変更します。

5. 検索リポジトリのライセンスを指定します。

私たちはオープンソースソフトウェアを頻繁に使用しており、オープンソースソフトウェアには様々な「流派」やライセンスが存在することも知っています。オープンソースだからといってすべてが無料というわけではなく、ライセンスによって要件は大きく異なります。2018年、FacebookはReactのライセンス契約を変更し、多くの企業がコードを修正し、代替フレームワークを探すようになりました。

たとえば、最も許容度の高いライセンスである Apache License 2 の下にあるコードを検索する場合は、次のようにします。

ライセンス:apache-2.0 スプリングクラウド


他のプロトコルの場合は、たとえば apache-2.0 を mit に置き換えるだけです。

6. リポジトリの検索に使用する言語を指定します。

例えば、Javaライブラリを探している場合、上記のように左側をクリックして選択するだけでなく、検索を絞り込むこともできます。次のようにします。

言語:java キーワード

7. 特定の個人または組織の倉庫を具体的に検索します。

例えば、GitHubで特定の開発者が新しい機能を提出したかどうかを確認したい場合は、開発者の名前を指定して検索できます。例えば、Josh Longが新しいSpring Cloudコードを提出したかどうかを確認するには、次のようにします。

ユーザー:joshlong


これらを組み合わせて使用​​し、複数のクエリをスペースで区切って Java プロジェクトを除外します。

ユーザー:joshlong 言語:java


特定の組織のコードを見つけるには、次の操作を実行します。

`org:spring-cloud` を使用すると、特定の `org` のリポジトリが一覧表示されます。


この検索機能、すごく便利だと思いませんか?一つのキーワードを探すために、何度もページをめくったりクリックしたりするよりもずっと効率的です。もし役に立ったと思ったら、ぜひ「いいね!」とシェアをお願いします!