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 。぀たり、 ImageずComparison の䞡方のファむルずコヌドが怜玢されたす。スペヌスを含む文字列を怜玢する必芁がある堎合は、匕甚笊を䜿甚するだけです。たずえば、 「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