JavaRush /Blog Java /Random-MS /Carian Kod GitHub: Cari lebih banyak, kurangkan carian - ...

Carian Kod GitHub: Cari lebih banyak, kurangkan carian - GitHub melancarkan enjin carian

Diterbitkan dalam kumpulan
Hello semua, kawan-kawan yang dikasihi! Sebagai pencinta ciri baharu di GitHub, saya sangat berminat untuk mengetahui bahawa tidak lama lagi kita semua akan dapat mencari pangkalan kod GitHub dengan cepat dan cekap. Ini boleh menjadi sangat mudah, terutamanya jika anda perlu mencari cara yang canggih untuk menggunakan alat. “Carian Kod GitHub: Cari lebih banyak, kurangkan carian” - GitHub melancarkan enjin carian - 1Ini terutamanya bergema dengan fakta bahawa pesaing masa depan untuk GitHub telah dibuka di Rusia. Oleh itu, GitHub pastinya tidak sepatutnya berpuas hati, walaupun pada hakikatnya mereka sudah pasti peneraju dalam pasaran. Kami perlu bergerak dan berkembang, jika tidak, ia tidak sampai sejam dan pesaing akan mengejar dan menyapu bersih. Dan biarkan ia tidak kelihatan begitu luar biasa. Sebagai contoh: berapa ramai orang yang masih menggunakan telefon Nokia? Siapa tahu mereka membuat telefon? Pada satu ketika mereka hanya tidak dapat dicapai, pemimpin pasaran yang tidak dipertikaikan... Dan kini mereka muncul di suatu tempat dalam bidang kesilapan statistik.

Kesan pertama

GitHub telah mencipta projek di mana anda boleh mencari, menavigasi dan menganalisis kod anda dan berbilion baris kod yang diterbitkan di GitHub. Adalah penting untuk ambil perhatian bahawa carian boleh berskala, pantas dan tepat. Ia dicipta dari awal khusus untuk carian kod. Navigasi berfungsi untuk 10 bahasa pengaturcaraan utama tanpa tetapan (kami berharap senarai itu akan berkembang pada masa hadapan). Anda boleh mencari menggunakan ungkapan biasa, yang sangat keren. Penapis lain juga tersedia:
  • oleh organisasi;
  • oleh bahasa pengaturcaraan;
  • oleh pemilik tertentu;
  • dengan sambungan fail;
  • dengan ungkapan biasa.
Senarai itu sudah mengagumkan! Ternyata enjin carian memberi kita peluang untuk membuat pertanyaan carian yang kompleks di mana kita boleh menentukan dengan jelas sempadan di mana carian itu diperlukan. Bahagian kedua enjin yang penting ialah navigasi kod 😳 Apakah persekitaran pembangunan yang sesuai dan mengapa orang membayar wang untuknya? Kerana ia menjadikan hidup kita lebih mudah, bantu kami menavigasi melalui kod, supaya kelajuan membangunkan dan membaca kod meningkat. Dan GitHub kini menawarkan kami ciri hebat ini. Ini adalah luar biasa. Ya, saya tahu bahawa pada masa ini sudah ada sesuatu yang serupa dengan navigasi dalam GitHub, tetapi fungsinya masih sangat pendek dan kasar. Iaitu, tanpa persekitaran pembangunan, anda boleh mencari di mana kaedah tertentu digunakan, di mana ia ditakrifkan. Ia hanya indah. GitHub awak buat saya gembira. Navigasi untuk import dalam kelas juga tersedia. Ini menyelesaikan banyak masalah dalam mencari dan mengkaji perpustakaan tertentu di GitHub. Kini proses ini dipercepatkan berkali-kali ganda. Dan semuanya percuma. Hanya cemerlang. Adakah dia akan mendapat permintaan? Saya pasti ya!

Mari bercakap dengan lebih terperinci tentang carian

Sangat menarik untuk melihat dan cuba mencari sendiri: adakah ia semudah yang mereka katakan? Buat masa ini, ciri ini tidak tersedia secara umum dan anda boleh menambah diri anda ke senarai menunggu menggunakan pautan . Kami mengisi semua mata di sana, soalannya mudah, saya tidak akan menerangkannya di sini. Akibatnya, kami ditambahkan ke senarai menunggu dan teruskan. Akibatnya, jawapannya ialah ini: “Carian Kod GitHub: Cari lebih banyak, kurangkan carian” - GitHub melancarkan enjin carian - 2Anda hanya perlu menunggu. Sebaik sahaja saya ditambah, saya pasti akan menunjukkan kepada anda segala-galanya. Jangan berlengah, tambahkan diri anda supaya anda boleh memikirkannya kemudian dan gunakannya untuk kegembiraan anda) Dan sudah tentu, memalukan bahawa anda tidak boleh mencuba alat baharu dengan segera, jadi mari analisa dokumentasi mereka dan huraikan dalam lebih terperinci bagaimana kami boleh menggunakan alat ini untuk kerja kami. Sekarang tentang carian. Ia akan menggunakan kelas dan binaan yang masuk akal dalam perpustakaan yang saya tulis. Ini akan menjadikannya lebih jelas dan lebih mudah untuk saya, dan saya harap ia akan lebih mudah untuk anda juga.

Carian asas

ImageComparison ialah carian paling mudah yang mencari tepat dengan pertanyaan dalam nama fail dan dalam kandungannya. Segala-galanya kelihatan sangat mudah di sini. Jika kita ingin mencari dengan jelas mengikut nama kelas, di mana ia diisytiharkan dan di mana ia digunakan, carian sedemikian akan membantu kita dengan ini. Apabila anda memasukkan berbilang perkataan yang dipisahkan oleh ruang, hasilnya akan menjadi carian untuk kesemuanya secara berasingan: Perbandingan Imej , bermakna ia akan mencari fail dan kod untuk Imej dan Perbandingan . Jika anda perlu mencari rentetan yang mengandungi ruang, maka anda hanya perlu menggunakan petikan. Contohnya: "Perbandingan Perbandingan Imej = Perbandingan Imej baharu()" dan kemudian carian akan sepadan dengan keseluruhan rentetan. Untuk melarikan diri, kami menggunakan "\" seperti biasa. Setakat ini, semuanya adalah intuitif dan selalunya ia dilakukan. Selanjutnya, kita boleh menambah penapis pada carian asas ini. Oleh itu, mari kita bercakap tentang setiap daripada mereka. Ini akan menjadi "DAN" logik kepada penapis yang telah kami buat.

Tapis mengikut repositori

Setelah penapis asas kami sedia, kami boleh mengecilkan carian dan carian kami mengikut repositori tertentu, yang sangat mudah. Anda tidak perlu mencari folder mana kelas itu terletak, anda hanya boleh menulis:
repo:romankh3/image-comparison ImageComparisonResult
Di mana kita perlu menentukan repo:${user_name}/${repo_name} . Anda juga boleh mencari merentas berbilang repositori dengan hanya menambah ATAU:
repo:romankh3/image-comparison ATAU repo:romankh3/usage-image-comparison ImageComparisonResult
Seperti yang dinyatakan di GitHub, pada masa ini mereka tidak menyokong carian dalam repositori di mana nama itu dinyatakan sebagai ungkapan biasa... Ini bermakna mereka merancang untuk menambah ciri sedemikian dan ini bermakna projek itu tidak akan berhenti pada yang diisytiharkan. kefungsian dan akan berkembang lebih jauh.

Tapis mengikut organisasi

Pencarian mengikut organisasi atau pengguna dilakukan dengan cara yang sama seperti mencari melalui repositori, hanya kata kunci tidak akan repo , tetapi org :
org:romankh3 ImageComparison
Dan kemudian carian akan melalui semua repositori pengguna/organisasi.

Tapis mengikut bahasa pengaturcaraan

Anda juga boleh menentukan carian untuk fail dalam bahasa pengaturcaraan tertentu. Di sini pembinaan adalah sama seperti untuk repositori dan organisasi, hanya kata kuncinya adalah bahasa :
bahasa:java ImageComparison
Sama seperti untuk repositori, ia menyokong carian dalam beberapa bahasa sekaligus menggunakan kata kunci ATAU:
language:java ATAU bahasa: ruby ​​ImageComparison
Senarai lengkap bahasa yang disokong oleh GitHub boleh didapati di sini . Saya tertanya-tanya adakah BrainFuck ada di sana? 😂

Tapis mengikut laluan fail

Setiap fail dalam projek mempunyai laluannya sendiri dan anda juga boleh mencari melaluinya dengan menambah penapis. Sebagai contoh, terdapat fail ImageComparisonResult , ia mempunyai laluan:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
Jadi, untuk mencari semua kelas yang laluannya bermula dengan src/main/java/com/github/romankh3/image , anda perlukan:
path:src/main/java/com/github/romankh3/image
Boleh berguna dalam kes di mana kami tidak mahu kelas ujian ditinggalkan daripada hasil carian kami. Atau sebaliknya, hanya ujian. Ini menjadikan carian anda lebih fleksibel. Penapis mengikut laluan fail boleh ditentukan menggunakan ungkapan biasa. Sebagai contoh, kita perlu mencari
laluan:src/*/*.js

Operasi Boolean

Dan sudah tentu, kemuncak semua bangunan penapis adalah menggabungkan perkara ini bersama-sama menggunakan operasi Boolean. Untuk ini kita ada DAN, ATAU, DAN BUKAN. Saya rasa ini sudah cukup untuk kita. Sebagai contoh, mari buat pertanyaan carian yang kompleks: kod daripada pengeluaran Java atau Kotlin untuk pengguna/organisasi tertentu:
repo:romankh3 DAN (bahasa:java ATAU bahasa:kotlin) DAN BUKAN laluan:*/test/*
Dan ini, saya beritahu anda, sungguh luar biasa. Permintaan carian ditulis dengan begitu ringkas, cepat, ringkas dan jelas bahawa tidak akan ada masalah dalam mencari dan membaca permintaan tersebut.

Berundur kecil

Walaupun kegembiraan kami masih belum reda, saya ingin kembali ke 2018 dan ingat sesuatu... Ingat, apabila semua orang mengetahui bahawa Microsoft membeli GitHub, semua orang menyangka bahawa projek itu akan terkubur? Bahawa takdirnya adalah laluan Skype kedua? Bagaimanakah semua orang mula memindahkan projek mereka ke GitLab? Tetapi jujurlah, berikutan gembar-gembur ini saya mencipta dan mengalami sesuatu. Tetapi sejujurnya, saya tidak pernah melawat tempat saya memindahkan projek itu lagi. Dan entah bagaimana saya tidak mahu. Dan mengapa? Terdapat juga pemikiran tentang ini. Biar saya ingatkan anda bahawa selepas penjualan GitHub kepada Bill Gates, projek itu menambahkan keupayaan untuk memiliki repositori peribadi secara percuma, Tindakan GitHub telah dikeluarkan untuk proses CI/CD dan banyak lagi. Dan kini terdapat juga enjin carian yang berkuasa. Ini tidak kelihatan seperti keinginan untuk menenggelamkan projek. Ia lebih seperti Microsoft tidak mahu membayar cukai ke atas keuntungan dan membuat pembelian yang berjaya menjelang akhir tahun untuk lebih daripada 9 bilion dolar 😁 Dan kemudian selepas semua ini mereka memutuskan untuk membangunkan projek ini. Dan memang benar bahawa untuk pembangun sumber terbuka ini adalah tempat yang bagus untuk menyimpan kod mereka. Anda boleh membangunkan produk anda sepenuhnya tanpa meninggalkan GitHub.

Pada penghujungnya

Saya menulis artikel itu sekali gus. Saya sangat suka apabila kata-kata dan emosi mengalir seperti air panas. Inilah yang menggerakkan teknologi ke hadapan. Oleh itu, kami mengekalkan jari kami pada nadi dan tidak melepaskan keadaan. Saya pasti bahawa setiap daripada kita harus belajar menggunakannya. Bagi sesiapa yang belum mendaftar untuk GitHub, saya amat mengesyorkan berbuat demikian. Ia berbaloi. Seperti biasa, kawan-kawan, jangan lupa untuk melanggan saluran telegram saya , di mana saya menggabungkan semua aktiviti awam saya. Sebagai tambahan kepada artikel yang saya terbitkan di sini, saya menulis catatan yang lebih pendek di sana yang mana saya menyentuh topik yang menarik minat saya dari dunia pembangunan dan IT secara amnya. Terdapat lebih daripada 800 pelanggan di sana! Dan, sudah tentu, akaun GitHub saya , tempat saya menerbitkan semua projek demo untuk artikel, mengemas kini perpustakaan saya dan membangunkan organisasi sumber terbuka. Sekian sahaja, terima kasih semua kerana sudi membaca, jangan kata selamat tinggal 👌
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION