JavaRush /Java Blog /Random-JA /GitHub コード検索: より多くの検索を、より少ない検索で - GitHub が検索エンジンを開始しました
Roman Beekeeper
レベル 35

GitHub コード検索: より多くの検索を、より少ない検索で - GitHub が検索エンジンを開始しました

Random-JA グループに公開済み
親愛なる友人の皆さん、こんにちは!GitHub の新機能の愛好家として、私は間もなく GitHub コード ベースを迅速かつ効率的に検索できるようになるということを知り、非常に興味を持っていました。これは、特にツールを使用する洗練された方法を見つける必要がある場合に非常に便利です。 「GitHub コード検索: より多くの検索を、より少ない検索で」 - GitHub が検索エンジンを開始しました - 1これは特に、GitHub の将来の競合となるサービスがロシアでオープンされたという事実と共鳴します。したがって、GitHub は間違いなく市場のリーダーであるにもかかわらず、その栄誉に甘んじるべきではありません。私たちは先に進んで開発する必要があります。そうしないと、1 時間も経たずに競合他社が追いつき、追い払ってしまいます。それが信じられないほど信じられないようにしましょう。例として、Nokia の携帯電話をまだ使用している人は何人いますか? 彼らが電話を作ったことを誰が知っているでしょうか?かつては、それらは単に到達不可能で、議論の余地のない市場リーダーでした...そして今では、それらは統計誤差の領域のどこかに表示されます。

第一印象

GitHub は、コードと GitHub で公開されている数十億行のコードを検索、移動、分析できるプロジェクトを作成しました。検索はスケーラブルで高速かつ正確であることに注意することが重要です。コード検索専用にゼロから作成されました。ナビゲーションは設定なしで 10 の主要なプログラミング言語で機能します (将来的にリストが増えることを期待しています)。正規表現を使用して検索できます。これは非常に便利です。他のフィルターも使用できます。
  • 組織によって。
  • プログラミング言語による。
  • 特定の所有者による。
  • ファイル拡張子別;
  • 正規表現で。
リストはすでに印象的です! 検索エンジンを使用すると、検索が必要な境界を明確に定義できる複雑な検索クエリを作成する機会が得られることがわかりました。エンジンの 2 番目に重要な部分はコード ナビゲーションです 😳 開発環境は何に便利で、なぜ人々はそれにお金を払うのでしょうか? これらは私たちの作業を容易にし、コード内をナビゲートするのに役立ち、コードの開発と読み取りの速度が向上します。そして、GitHub がこの素晴らしい機能を提供するようになりました。これが信じられない。はい、現時点ではすでに GitHub にナビゲーションに似た機能があることは知っていますが、その機能はまだ非常に短く、粗雑です。つまり、開発環境がなくても、特定のメソッドが使用されている場所や定義された場所を検索できます。ただただ素晴らしいですね。GitHub あなたは私を幸せにします。クラス内のインポートのナビゲーションも利用できます。これにより、GitHub で特定のライブラリを検索して調査する際の多くの問題が解決されます。現在、このプロセスは何倍にも加速されています。しかもすべて無料です。ただ素晴らしい。彼は需要があるだろうか?きっとそうですよ!

検索について詳しく説明しましょう

実際に見て自分で探してみるのは非常に興味深いです。彼らが言うほど便利ですか? 現時点では、この機能は一般公開されていないため、リンクを使用して待機リストに自分を追加できます。そこですべてのポイントを記入します。質問は簡単です。ここでは説明しません。その結果、待機リストに追加され、次に進みます。その結果、答えはこうなります。 「GitHub コード検索: より多くの検索を、より少ない検索で」 - GitHub が検索エンジンを開始しました - 2ただ待つだけです。私が追加されたら、必ずすべてをお見せします。先延ばしにしないで、後で理解して喜んで使えるように自分自身を追加してください) そしてもちろん、新しいツールをすぐに試すことができないのは残念なので、ドキュメントを分析して説明しましょうこのツールを仕事に使用する方法について詳しく説明します。さて、検索についてです。私が作成しているライブラリで意味のあるクラスと構成要素を使用します。そうすることで、私にとってもより明確かつ簡単になるでしょうし、あなたにとってもより簡単になることを願っています。

基本検索

ImageComparison は、ファイル名とその内容のクエリを正確に検索する最も単純な検索です。ここではすべてが非常に単純に見えます。クラス名、それが宣言されている場所、使用されている場所で明確に見つけたい場合は、このような検索が役立ちます。スペースで区切って複数の単語を入力すると、結果としてそれらすべてが個別に検索されます: Image Comparison 。つまり、 ImageComparison の両方のファイルとコードが検索されます。スペースを含む文字列を検索する必要がある場合は、引用符を使用するだけです。たとえば、 「ImageComparison 比較 = new ImageComparison()」と指定すると、検索は文字列全体に一致します。エスケープにはいつものように「\」を使用します。これまでのところ、すべてが直感的であり、多くの場合、そのように行われます。さらに、この基本的な検索にフィルターを追加できます。したがって、それぞれについて説明しましょう。これらは、すでに作成したフィルターに対する論理「AND」になります。

リポジトリでフィルタリングする

基本的なフィルターが準備できたら、検索を絞り込んだり、特定のリポジトリで検索したりすることができ、非常に便利です。クラスがどのフォルダーにあるかを探す必要はなく、次のように記述するだけで済みます。
repo:romankh3/image-comparison ImageComparisonResult
ここでrepo:${user_name}/${repo_name} を指定する必要があります。OR を追加するだけで、複数のリポジトリを検索することもできます。
repo:romankh3/image-comparison または repo:romankh3/usage-image-comparison ImageComparisonResult
GitHub で述べられているように、現時点では、名前が正規表現として指定されているリポジトリでの検索はサポートされていません。これは、そのような機能の追加を計画していることを意味し、宣言された時点でプロジェクトが停止しないことを意味します。機能性も向上し、さらに発展していきます。

組織でフィルタリングする

組織またはユーザーによる検索は、リポジトリによる検索とまったく同じ方法で行われます。キーワードがrepoではなくorgになる点のみです。
org:romankh3 画像比較
その後、ユーザー/組織のすべてのリポジトリを検索します。

プログラミング言語でフィルタリングする

特定のプログラミング言語でのファイルの検索を指定することもできます。ここでの構造はリポジトリと組織の場合と同じですが、キーワードがlanguageであるだけです。
言語:java 画像比較
リポジトリと同様に、OR キーワードを使用して複数の言語で同時に検索することができます。
言語:java または 言語:ruby ImageComparison
GitHub でサポートされている言語の完全なリストは、こちらで ご覧いただけます。BrainFuckってあるのかな?😂

ファイルパスでフィルタリングする

プロジェクト内の各ファイルには独自のパスがあり、フィルターを追加してファイルを検索することもできます。たとえば、ImageComparisonResult というファイルがあり、そのパスは次のとおりです。
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
したがって、パスがsrc/main/java/com/github/romankh3/imageで始まるすべてのクラスを検索するには、次のものが必要です。
パス:src/main/java/com/github/romankh3/image
テストクラスを検索結果から除外したくない場合に役立ちます。またはその逆、テストのみ。これにより、検索がより柔軟になります。ファイルパスによるフィルターは正規表現を使用して指定できます。たとえば、次のことを見つける必要があります。
パス:src/*/*.js

ブール演算

そしてもちろん、すべてのフィルター構築の頂点は、ブール演算を使用してこの問題を結合することです。これには、AND、OR、AND NOT があります。これで十分だと思います。たとえば、複雑な検索クエリを作成してみましょう。特定のユーザー/組織向けに、Java または Kotlin プロダクションからコードを作成します。
repo:romankh3 AND (言語:java OR 言語:kotlin) AND NOT path:*/test/*
そして、これは本当に信じられないことだと私は言います。検索リクエストは非常に簡単、迅速、簡潔かつ明確に書かれているため、リクエストを検索して読むのに問題はありません。

小さな隠れ家

私たちの喜びはまだ冷めやらぬうちに、2018 年に戻って思い出したいことがあります。Microsoft が GitHub を買収することを知ったとき、誰もがこのプロジェクトは埋もれるだろうと思ったことを覚えていますか? 彼の運命は第二のスカイプの道なのか?みんなはどのようにしてプロジェクトを GitLab に移行し始めたのでしょうか? しかし、正直に言うと、この誇大広告の影響で、私は何かを生み出し、苦しみました。でも正直に言うと、プロジェクトを移した場所には二度と行きませんでした。そしてどういうわけか私はそうしたくないのです。なぜ?これについても考えがあります。GitHub を Bill Gates に売却した後、このプロジェクトではプライベート リポジトリを無料で持つ機能が追加され、CI/CD プロセス用に GitHub Actions がリリースされました。そして今は強力な検索エンジンでもあります。これはプロジェクトを沈めたいという願望のようには聞こえません。むしろ、Microsoft は利益に対して税金を払いたくなくて、年末までに 90 億ドル以上で買収に成功したようなものです 😁 そして、結局、彼らはこのプロジェクトを開発することに決めたのです。そして、オープンソース開発者にとって、これがコードを保存するのに最適な場所であることは事実です。GitHub を離れることなく製品を完全に開発できます。

最後に

記事を一気に書きました。言葉や感情が間欠泉のように流れ出るのが本当に大好きです。これがテクノロジーを前進させるのです。したがって、私たちは常に状況を把握し、状況を放置しません。私たち一人ひとりがその使い方を学ぶべきだと確信しています。GitHub にサインアップしていない人は、サインアップすることを強くお勧めします。価値があります。 いつものように、友人の皆さん、私の電報チャンネルに登録することを忘れないでください。このチャンネルには私のすべての公開活動が含まれています。ここで公開する記事に加えて、私はそこで、開発と IT 一般の世界から興味のあるトピックに触れた短い投稿を書きます。すでに800人以上のチャンネル登録者がいます! そしてもちろん、私のGitHub アカウントでは、記事のすべてのデモ プロジェクトを公開し、ライブラリを更新し、オープンソース組織を開発しています。 以上です、読んでくれてありがとう、さよならは言わないでください 👌
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION