JavaRush /Java Blog /Random-ID /Pencarian Kode GitHub: Temukan lebih banyak, cari lebih s...

Pencarian Kode GitHub: Temukan lebih banyak, cari lebih sedikit - GitHub meluncurkan mesin pencari

Dipublikasikan di grup Random-ID
Halo semuanya, teman-teman terkasih! Sebagai pencinta fitur-fitur baru di GitHub, saya sangat tertarik mengetahui bahwa kita semua akan segera dapat mencari basis kode GitHub dengan cepat dan efisien. Ini bisa sangat memudahkan, terutama jika Anda perlu menemukan cara canggih untuk menggunakan suatu alat. “Pencarian Kode GitHub: Temukan lebih banyak, cari lebih sedikit” - GitHub meluncurkan mesin pencari - 1Hal ini terutama selaras dengan fakta bahwa pesaing masa depan GitHub dibuka di Rusia. Oleh karena itu, GitHub tidak boleh berpuas diri, meskipun faktanya mereka tidak diragukan lagi adalah pemimpin pasar. Kita perlu bergerak maju dan berkembang, jika tidak, bahkan dalam waktu kurang dari satu jam, para pesaing akan mengejar dan menyapu bersih kita. Dan biarlah hal itu tidak tampak begitu luar biasa. Contohnya: berapa banyak orang yang masih menggunakan ponsel Nokia? Siapa yang tahu mereka membuat ponsel? Pada suatu waktu, mereka adalah pemimpin pasar yang tidak dapat dicapai dan tidak dapat disangkal... Dan sekarang mereka muncul dalam bidang kesalahan statistik.

Kesan pertama

GitHub telah membuat proyek tempat Anda dapat mencari, menavigasi, dan menganalisis kode Anda serta miliaran baris kode yang dipublikasikan di GitHub. Penting untuk dicatat bahwa pencariannya terukur, cepat dan akurat. Itu dibuat dari awal khusus untuk pencarian kode. Navigasi berfungsi untuk 10 bahasa pemrograman utama tanpa pengaturan (kami berharap daftarnya akan bertambah di masa mendatang). Anda dapat mencari menggunakan ekspresi reguler, yang sangat keren. Filter lain juga tersedia:
  • menurut organisasi;
  • dengan bahasa pemrograman;
  • oleh pemilik tertentu;
  • berdasarkan ekstensi file;
  • dengan ekspresi reguler.
Daftarnya sudah mengesankan! Ternyata mesin pencari memberi kita kesempatan untuk membuat permintaan pencarian yang kompleks di mana kita dapat dengan jelas mendefinisikan batasan-batasan di mana pencarian diperlukan. Bagian penting kedua dari mesin adalah navigasi kode 😳 Lingkungan pengembangan apa yang nyaman dan mengapa orang membayar uang untuk itu? Karena mereka membuat hidup kita lebih mudah, membantu kita menavigasi kode, sehingga kecepatan mengembangkan dan membaca kode meningkat. Dan GitHub sekarang menawarkan fitur keren ini kepada kita. Ini luar biasa. Ya, saya tahu saat ini sudah ada sesuatu yang mirip dengan navigasi di GitHub, tetapi fungsinya masih sangat pendek dan kasar. Artinya, tanpa lingkungan pengembangan, Anda dapat mencari di mana metode tertentu digunakan, di mana metode tersebut didefinisikan. Sungguh luar biasa. GitHub kamu membuatku bahagia. Navigasi untuk impor di kelas juga tersedia. Ini memecahkan banyak masalah dalam menemukan dan mempelajari perpustakaan tertentu di GitHub. Sekarang proses ini dipercepat berkali-kali lipat. Dan semuanya gratis. Luar biasa sekali. Apakah dia akan diminati? Saya yakin ya!

Mari kita bicara lebih detail tentang pencarian

Sangat menarik untuk melihat dan mencoba mencari sendiri: apakah senyaman yang mereka katakan? Untuk saat ini, fitur ini tidak tersedia untuk umum dan Anda dapat menambahkan diri Anda ke daftar tunggu menggunakan tautan . Semua poin di sana kita isi, pertanyaannya sederhana, saya tidak akan menjelaskannya di sini. Akibatnya, kami ditambahkan ke daftar tunggu dan melanjutkan. Hasilnya, jawabannya adalah ini: “Pencarian Kode GitHub: Temukan lebih banyak, cari lebih sedikit” - GitHub meluncurkan mesin pencari - 2Anda hanya perlu menunggu. Segera setelah saya ditambahkan, saya pasti akan menunjukkan semuanya. Jangan tunda lagi, tambahkan diri Anda sendiri agar Anda dapat mengetahuinya nanti dan menggunakannya sesuai keinginan Anda) Dan tentu saja sayang sekali Anda tidak dapat langsung mencoba alat baru ini, jadi mari kita analisis dokumentasinya dan jelaskan di lebih detail bagaimana kita dapat menggunakan alat ini untuk pekerjaan kita. Sekarang tentang pencarian. Ini akan menggunakan kelas dan konstruksi yang masuk akal di perpustakaan yang saya tulis. Ini akan membuatnya lebih jelas dan mudah bagi saya, dan saya harap ini juga akan lebih mudah bagi Anda.

Pencarian dasar

ImageComparison adalah pencarian paling sederhana yang mencari persis dengan permintaan nama file dan isinya. Segalanya tampak sangat sederhana di sini. Jika kita ingin mencari dengan jelas berdasarkan nama kelas, di mana ia dideklarasikan dan di mana ia digunakan, pencarian seperti itu akan membantu kita dalam hal ini. Saat Anda memasukkan beberapa kata yang dipisahkan spasi, hasilnya adalah pencarian semuanya secara terpisah: Image Comparison , artinya akan menemukan file dan kode untuk Image dan Comparison . Jika Anda perlu mencari string yang mengandung spasi, Anda hanya perlu menggunakan tanda kutip. Misalnya: “Perbandingan ImageComparison = new ImageComparison()” dan kemudian pencarian akan mencocokkan seluruh string. Untuk melarikan diri, kami menggunakan “\” seperti biasa. Sejauh ini, semuanya bersifat intuitif dan sering kali hal itu dilakukan. Selanjutnya, kita dapat menambahkan filter ke pencarian dasar ini. Oleh karena itu, mari kita bahas masing-masingnya. Ini akan menjadi “DAN” logis untuk filter yang telah kita buat.

Filter berdasarkan repositori

Setelah filter dasar kami siap, kami dapat mempersempit pencarian kami dan mencari berdasarkan repositori tertentu, yang sangat memudahkan. Anda tidak perlu mencari di folder mana kelas tersebut berada, Anda cukup menulis:
repo:romankh3/perbandingan gambar Hasil Perbandingan Gambar
Dimana kita perlu menentukan repo:${user_name}/${repo_name} . Anda juga dapat mencari di beberapa repositori hanya dengan menambahkan OR:
repo:romankh3/perbandingan gambar ATAU repo:romankh3/penggunaan-perbandingan gambar Hasil Perbandingan Gambar
Sebagaimana dinyatakan di GitHub, saat ini mereka tidak mendukung pencarian di repositori yang namanya ditentukan sebagai ekspresi reguler... Artinya mereka berencana menambahkan fitur tersebut dan itu berarti proyek tidak akan berhenti di situ saja. fungsionalitas dan akan berkembang lebih lanjut.

Filter berdasarkan organisasi

Pencarian berdasarkan organisasi atau pengguna dilakukan dengan cara yang persis sama seperti pencarian berdasarkan repositori, hanya saja kata kuncinya bukan repo , tetapi org :
org:romankh3 Perbandingan Gambar
Dan kemudian pencarian akan melewati semua repositori pengguna/organisasi.

Filter berdasarkan bahasa pemrograman

Anda juga dapat menentukan pencarian file dalam bahasa pemrograman tertentu. Di sini konstruksinya sama dengan repositori dan organisasi, hanya kata kuncinya adalah bahasa :
bahasa:Perbandingan Gambar Java
Sama seperti repositori, mendukung pencarian dalam beberapa bahasa sekaligus menggunakan kata kunci OR:
bahasa:java ATAU bahasa:ruby Perbandingan Gambar
Daftar lengkap bahasa yang didukung oleh GitHub dapat ditemukan di sini . Aku ingin tahu apakah BrainFuck ada di sana? 😂

Filter berdasarkan jalur file

Setiap file dalam proyek memiliki jalurnya sendiri dan Anda juga dapat mencarinya dengan menambahkan filter. Misalnya, ada file ImageComparisonResult , yang memiliki jalur:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
Jadi, untuk menemukan semua kelas yang jalurnya dimulai dengan src/main/java/com/github/romankh3/image , Anda memerlukan:
jalur:src/main/java/com/github/romankh3/image
Dapat berguna jika kita tidak ingin kelas tes tidak disertakan dalam hasil penelusuran. Atau sebaliknya, hanya tes. Ini membuat pencarian Anda lebih fleksibel. Filter berdasarkan jalur file dapat ditentukan menggunakan ekspresi reguler. Misalnya, kita perlu menemukannya
jalur:src/*/*.js

Operasi Boolean

Dan tentu saja, puncak dari semua konstruksi filter adalah menggabungkan masalah ini menggunakan operasi Boolean. Untuk ini kita punya AND, OR, AND NOT. Saya pikir ini sudah cukup bagi kami. Misalnya, mari buat kueri penelusuran yang kompleks: kode dari produksi Java atau Kotlin untuk pengguna/organisasi tertentu:
repo:romankh3 DAN (bahasa:java ATAU bahasa:kotlin) DAN BUKAN jalur:*/test/*
Dan ini, saya beritahu Anda, sungguh luar biasa. Permintaan pencarian ditulis dengan sangat sederhana, cepat, singkat dan jelas sehingga tidak akan ada masalah dalam mencari dan membaca permintaan tersebut.

Retret kecil

Meskipun kegembiraan kami belum mereda, saya ingin kembali ke tahun 2018 dan mengingat sesuatu... Ingat, ketika semua orang mengetahui bahwa Microsoft membeli GitHub, semua orang mengira proyek tersebut akan dikubur? Bahwa takdirnya adalah jalur Skype kedua? Bagaimana semua orang mulai memindahkan proyek mereka ke GitLab? Tapi jujur ​​saja, setelah hype ini saya menciptakan dan mengalami sesuatu. Tapi sejujurnya, saya tidak pernah mengunjungi tempat saya memindahkan proyek itu lagi. Dan entah kenapa aku tidak mau. Dan mengapa? Ada juga pemikiran tentang hal ini. Izinkan saya mengingatkan Anda bahwa setelah penjualan GitHub ke Bill Gates, proyek tersebut menambahkan kemampuan untuk memiliki repositori pribadi secara gratis, GitHub Actions dirilis untuk proses CI/CD, dan banyak lagi. Dan sekarang juga menjadi mesin pencari yang kuat. Ini sepertinya bukan keinginan untuk menghentikan proyek tersebut. Ini lebih seperti Microsoft tidak mau membayar pajak atas keuntungan dan berhasil melakukan pembelian pada akhir tahun senilai lebih dari 9 miliar dolar 😁 Dan setelah semua ini, mereka memutuskan untuk mengembangkan proyek ini. Dan memang benar bahwa bagi pengembang sumber terbuka, ini adalah tempat yang bagus untuk menyimpan kode mereka. Anda dapat mengembangkan produk Anda sepenuhnya tanpa meninggalkan GitHub.

Pada akhirnya

Saya menulis artikel itu sekaligus. Saya sangat suka ketika kata-kata dan emosi mengalir seperti air mancur panas. Inilah yang memajukan teknologi. Jadi kita tetap waspada dan jangan biarkan situasi ini berlalu begitu saja. Saya yakin kita masing-masing harus belajar menggunakannya. Bagi siapa saja yang belum mendaftar ke GitHub, saya sangat menyarankan untuk melakukannya. Itu sangat berharga. Seperti biasa kawan, jangan lupa berlangganan saluran telegram saya , tempat saya menggabungkan semua aktivitas publik saya. Selain artikel yang saya terbitkan di sini, saya menulis postingan pendek di sana yang membahas topik-topik yang saya minati dari dunia pembangunan dan IT pada umumnya. Sudah ada lebih dari 800 pelanggan di sana! Dan, tentu saja, akun GitHub saya , tempat saya menerbitkan semua proyek demo untuk artikel, memperbarui perpustakaan saya, dan mengembangkan organisasi sumber terbuka. Itu saja, terima kasih sudah membaca, jangan ucapkan selamat tinggal 👌
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION