Hammaga salom, aziz do'stlar! GitHub-da yangi xususiyatlarni sevuvchi sifatida men yaqinda barchamiz GitHub kod bazasini tez va samarali qidirishimiz mumkinligini bilish juda qiziq edi. Bu juda qulay bo'lishi mumkin, ayniqsa siz asbobdan foydalanishning murakkab usulini topishingiz kerak bo'lsa. Bu, ayniqsa, Rossiyada GitHub uchun bo'lajak raqobatchi ochilganligi bilan rezonans beradi. Shuning uchun, GitHub, shubhasiz, bozorda etakchi bo'lishiga qaramay, o'z yutuqlari bilan cheklanmasligi kerak. Biz oldinga siljishimiz va rivojlanishimiz kerak, aks holda bu bir soat ham emas va raqobatchilar quvib ketishadi. Va bu juda aql bovar qilmaydigan ko'rinmasin. Misol tariqasida: qancha odam hali ham Nokia telefonlaridan foydalanadi? Ular telefonlar yasaganini kim biladi? Bir vaqtlar ular shunchaki erishib bo'lmaydigan, shubhasiz bozor etakchilari edi ... Va endi ular statistik xatolik sohasida paydo bo'ladi.
Birinchi taassurot
GitHub siz o'z kodingizni va GitHub-da chop etilgan milliardlab kod qatorlarini qidirishingiz, navigatsiya qilishingiz va tahlil qilishingiz mumkin bo'lgan loyihani yaratdi. Shuni ta'kidlash kerakki, qidiruv keng ko'lamli, tez va aniq. U maxsus kod qidirish uchun noldan yaratilgan. Navigatsiya 10 ta asosiy dasturlash tillari uchun sozlamalarsiz ishlaydi (kelajakda roʻyxat oʻsadi deb umid qilamiz). Oddiy ifoda yordamida qidirishingiz mumkin, bu juda ajoyib. Boshqa filtrlar ham mavjud:- tashkilot bo'yicha;
- dasturlash tillari bo'yicha;
- aniq egasi tomonidan;
- fayl kengaytmasi bo'yicha;
- muntazam ifoda orqali.
Keling, qidiruv haqida batafsilroq gaplashaylik
Bir qarash va o'zingizni izlashga harakat qilish juda qiziq: bu ular aytganidek qulaymi? Hozircha bu xususiyat hamma uchun ochiq emas va havola orqali o'zingizni kutish ro'yxatiga qo'shishingiz mumkin . Biz u erda barcha fikrlarni to'ldiramiz, savollar oddiy, men ularni bu erda tasvirlamayman. Natijada, biz kutish ro'yxatiga qo'shildik va davom etamiz. Natijada, javob quyidagicha bo'ladi: siz shunchaki kutishingiz kerak. Meni qo'shishim bilan men sizga hamma narsani albatta ko'rsataman. Kechiktirmang, o'zingizni qo'shing, shunda keyinroq tushunib olasiz va undan zavqlanishingiz mumkin) Va, albatta, yangi vositani darhol sinab ko'ra olmasligingiz juda achinarli, shuning uchun keling, ularning hujjatlarini tahlil qilamiz va tavsiflaymiz ushbu vositani ishimiz uchun qanday ishlatishimiz haqida batafsilroq. Endi qidiruv haqida. Bu men yozayotgan kutubxonada mantiqiy bo'lgan sinflar va konstruktsiyalardan foydalanadi . Bu men uchun tushunarli va oson bo'ladi va umid qilamanki, siz uchun ham osonroq bo'ladi.Asosiy qidiruv
ImageComparison eng oddiy qidiruv boʻlib, fayl nomlari va ularning tarkibidagi soʻrov bilan aniq qidiradi. Bu erda hamma narsa juda oddiy ko'rinadi. Agar biz sinf nomini, qaerda e'lon qilinganini va qayerda ishlatilishini aniq topmoqchi bo'lsak, bunday qidiruv bizga bu borada yordam beradi. Bo'shliqlar bilan ajratilgan bir nechta so'zlarni kiritganingizda, natijada ularning barchasini alohida qidirish bo'ladi: Rasmni taqqoslash , ya'ni u Tasvir va Taqqoslash uchun fayllar va kodlarni topadi . Agar siz bo'shliqlarni o'z ichiga olgan qatorni qidirishingiz kerak bo'lsa, unda siz shunchaki tirnoqlardan foydalanishingiz kerak. Masalan: “ImageComparison solishtirish = new ImageComparison()” va keyin qidiruv butun qatorga mos keladi. Qochish uchun biz har doimgidek “\” dan foydalanamiz. Hozirgacha hamma narsa intuitiv va ko'pincha shunday amalga oshiriladi. Bundan tashqari, biz ushbu asosiy qidiruvga filtr qo'shishimiz mumkin. Shuning uchun, keling, ularning har biri haqida gapiraylik. Bu biz yaratgan filtr uchun mantiqiy "AND" bo'ladi.Repozitariy bo'yicha filtrlash
Bizning asosiy filtrimiz tayyor bo'lgach, biz qidiruvimizni va ma'lum bir ombor bo'yicha qidiruvimizni qisqartirishimiz mumkin, bu juda qulay. Sinf qaysi papkada joylashganligini qidirishingiz shart emas, shunchaki yozishingiz mumkin:
repo: romankh3/image-comparison ImageComparisonResult
Qayerda repo ko'rsatishimiz kerak :${user_name}/${repo_name} . Bundan tashqari, oddiygina OR qo‘shish orqali bir nechta omborlar bo‘ylab qidirishingiz mumkin:
repo:romankh3/image-qiyoslash YOKI repo:romankh3/usage-image-comparison ImageComparisonResult
GitHub-da ta'kidlanganidek, hozirda ular nomi muntazam ifoda sifatida ko'rsatilgan omborlarda qidirishni qo'llab-quvvatlamaydi ... Bu ular bunday xususiyatni qo'shishni rejalashtirganini anglatadi va bu loyiha e'lon qilingan joyda to'xtab qolmasligini anglatadi. funksionallikka ega va yanada rivojlanadi.
Tashkilot bo'yicha filtrlash
Tashkilot yoki foydalanuvchi bo'yicha qidirish xuddi ombor bo'yicha qidirish bilan bir xil tarzda amalga oshiriladi, faqat kalit so'z repo emas , balki org bo'ladi :
org: romankh3 Tasvir solishtirish
Va keyin qidiruv foydalanuvchi/tashkilotning barcha omborlari orqali o'tadi.
Dasturlash tillari bo'yicha filtrlash
Bundan tashqari, ma'lum bir dasturlash tilida fayllarni qidirishni belgilashingiz mumkin. Bu erda qurilish ombor va tashkilot bilan bir xil, faqat kalit so'z tildir :
til: java ImageComparison
Xuddi omborda bo'lgani kabi, u OR kalit so'zidan foydalangan holda bir vaqtning o'zida bir nechta tillarda qidirishni qo'llab-quvvatlaydi:
til:java YOKI til:ruby ImageComparison
GitHub tomonidan qo'llab-quvvatlanadigan tillarning to'liq ro'yxatini bu yerda topishingiz mumkin . Qiziq, BrainFuck bormi? 😂
Fayl yo'li bo'yicha filtrlash
Loyihadagi har bir fayl o'z yo'liga ega va siz filtr qo'shish orqali ham qidirishingiz mumkin. Masalan, ImageComparisonResult fayli bor , uning yo'li bor:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
Shunday qilib, yo'li src/main/java/com/github/romankh3/image bilan boshlanadigan barcha sinflarni topish uchun sizga kerak bo'ladi:
yo'l: src/main/java/com/github/romankh3/image
Test darslari qidiruv natijalarimizdan chetda qolishini istamagan hollarda foydali bo'lishi mumkin. Yoki aksincha, faqat testlar. Bu sizning qidiruvingizni yanada moslashuvchan qiladi. Fayl yo'li bo'yicha filtr muntazam ifoda yordamida belgilanishi mumkin. Masalan, biz topishimiz kerak
yoʻl:src/*/*.js
Mantiqiy operatsiyalar
Va, albatta, barcha filtrlarni qurishning kulminatsion nuqtasi bu masalani mantiqiy operatsiyalar yordamida birlashtirishdir. Buning uchun bizda VA, YOKI, VA YO'Q. Menimcha, bu biz uchun etarli bo'lishi kerak. Masalan, murakkab qidiruv so'rovini yarataylik: ma'lum bir foydalanuvchi/tashkilot uchun Java yoki Kotlin ishlab chiqarishidan kod:
repo: romankh3 VA (til: java YOKI til: kotlin) VA EMAS yo'li:*/test/*
Va bu, men sizga aytaman, shunchaki aql bovar qilmaydigan narsa. Qidiruv so'rovi shunchalik sodda, tez, qisqa va aniq yozilganki, so'rovni qidirish va o'qishda hech qanday muammo bo'lmaydi.
GO TO FULL VERSION