JavaRush /Java блогу /Random-KY /GitHub Code Search: Көбүрөөк табуу, азыраак издөө - GitHu...
Roman Beekeeper
Деңгээл

GitHub Code Search: Көбүрөөк табуу, азыраак издөө - GitHub издөө системасын ишке киргизди

Группада жарыяланган
Баарыңарга салам, кымбаттуу достор! GitHub'тагы жаңы функцияларды сүйүүчү катары, мен жакында баарыбыз GitHub code базасын тез жана натыйжалуу издей аларыбызды билүү абдан кызык болду. Бул абдан ыңгайлуу болушу мүмкүн, айрыкча, сиз куралды колдонуунун татаал жолун табышыңыз керек болсо. "GitHub Code Search: Көбүрөөк тап, азыраак изде" - GitHub издөө системасын ишке киргизди - 1Бул, айрыкча, GitHub үчүн келечектеги атаандаштын Россияда ачылгандыгы менен резонанстуу. Ошондуктан, GitHub, албетте, рыноктун лидерлери болгонуна карабастан, алардын жетишкендиктери менен токтоп калбашы керек. Биз алдыга жылып, өнүгүшүбүз керек, антпесе бир саат да эмес, атаандаштар кууп жетип, шыпырып кетишет. Жана бул укмуштуудай көрүнбөсүн. Мисал катары: канча адам дагы эле Nokia телефондорун колдонот? Алардын телефон жасаганын ким билет? Бир кезде алар жөн эле жеткorксиз, талашсыз рыноктун лидерлери болушкан... Ал эми азыр алар статистикалык жаңылыштык чөйрөсүндө бир жерден пайда болот.

Биринчи таасир

GitHub сиз өз codeуңузду жана GitHubда жарыяланган миллиарддаган code саптарын издеп, чабыттап жана талдай турган долбоорду түздү. Бул издөө масштабдуу, тез жана так экенин белгилей кетүү маанилүү. Ал code издөө үчүн атайын нөлдөн баштап түзүлгөн. Навигация орнотуулары жок 10 негизги программалоо тилдеринде иштейт (келечекте тизме өсөт деп үмүттөнөбүз). Сиз кадимки сөз айкашын колдонуп издесеңиз болот, бул абдан сонун. Башка чыпкалар да бар:
  • уюм боюнча;
  • программалоо тилдери боюнча;
  • конкреттүү ээси тарабынан;
  • файл кеңейтүүсү боюнча;
  • регулярдуу туюнтма аркылуу.
Тизме буга чейин эле таасирдүү! Көрсө, издөө системасы бизге татаал издөө сурамдарын түзүүгө мүмкүнчүлүк берет, анда биз издөө керек болгон чектерди так аныктай алабыз. Мотордун экинчи маанилүү бөлүгү - code навигациясы 😳 Өнүктүрүү чөйрөлөрү эмне үчүн ыңгайлуу жана эмне үчүн адамдар алар үчүн акча төлөшөт? Анткени алар биздин жашообузду жеңилдетет, codeду иштеп чыгуу жана окуу ылдамдыгы жогорулашы үчүн code аркылуу багыттоого жардам берет. Жана GitHub азыр бизге бул сонун функцияны сунуштайт. Бул укмуш. Ооба, мен билем, учурда GitHub-да навигацияга окшош нерсе бар, бирок функционал дагы эле өтө кыска жана орой. Башкача айтканда, иштеп чыгуу чөйрөсү жок, сиз белгилүү бир ыкмалар колдонулган жерде, алар аныкталган жерде издей аласыз. Бул жөн гана сонун. GitHub сен мени бактылуу кыласың. Класстарда импорттоо үчүн навигация да бар. Бул GitHub боюнча белгилүү бир китепкананы табуу жана изилдөө боюнча көптөгөн көйгөйлөрдү чечет. Азыр бул процесс бир нече эсе тездетилди. Жана мунун баары бекер. Жөн гана сонун. Ал суроо-талапка ээ болобу? Мен ишенем ооба!

Келгиле, издөө жөнүндө кененирээк сүйлөшөлү

Карап көрүү жана өзүңүздү издөөгө аракет кылуу абдан кызыктуу: алар айткандай ыңгайлуубу? Азырынча бул функция жалпыга жеткorктүү эмес жана шилтеме аркылуу өзүңүздү күтүү тизмесине кошсоңуз болот . Биз ал жерде бардык пункттарды толтурабыз, суроолор жөнөкөй, мен аларды бул жерде сүрөттөбөйм. Натыйжада, биз күтүү тизмесине кошулуп, улантабыз. Натыйжада, жооп мындай болот: "GitHub Code Search: Көбүрөөк тап, азыраак изде" - GitHub издөө системасын ишке киргизди - 2Сиз жөн гана күтүшүңүз керек. Кошулушум менен сөзсүз баарын көрсөтөм. Кечиктирбеңиз, аны кийинчерээк түшүнүп, өзүңүздүн ырахатыңызга колдонуу үчүн өзүңүздү кошуңуз) Жана, албетте, жаңы куралды дароо сынап көрө албаганыңыз уят, андыктан алардын documentтерин талдап, сүрөттөп көрөлү. бул куралды ишибиз үчүн кантип колдонсок болорун кененирээк. Эми издөө жөнүндө. Ал мен жазып жаткан китепканада мааниси бар класстарды жана конструкцияларды колдонот . Бул мен үчүн түшүнүктүү жана жеңил болот, мен сизге да жеңил болот деп ишенем.

Негизги издөө

ImageComparison - бул файл аталыштарындагы жана алардын мазмунундагы суроо менен так издеген эң жөнөкөй издөө. Бул жерде баары абдан жөнөкөй көрүнөт. Класстын аталышын, анын кайда жарыяланганын жана кайсы жерде колдонуларын так тапкыбыз келсе, мындай издөө бизге бул жагынан жардам берет. Боштуктар менен бөлүнгөн бир нече сөздү киргизгениңизде, натыйжада алардын бардыгын өзүнчө издөө болот: Сүрөт салыштыруу , бул Сүрөт жана Салыштыруу үчүн файлдарды жана codeду табат дегенди билдирет . Эгер сиз боштуктарды камтыган сапты издөө керек болсо, анда сиз жөн гана тырмакчаларды колдонушуңуз керек. Мисалы: “ImageComparison comparison = new ImageComparison()” жана андан кийин издөө бүт сапка дал келет. Качуу үчүн биз ар дайымкыдай “\” колдонобуз. Буга чейин, баары интуитивдик болуп саналат жана ал көп учурда ушундай болот. Андан тышкары, биз бул негизги издөөгө чыпкаларды кошо алабыз. Ошондуктан, алардын ар бири жөнүндө сөз кылалы. Булар биз түзгөн чыпкага логикалык "ЖАНА" болот.

Репозиторий боюнча чыпкалоо

Негизги чыпкабыз даяр болгондон кийин, биз издөөбүздү кыскарта алабыз жана атайын репозиторий боюнча издей алабыз, бул абдан ыңгайлуу. Класс кайсы папкада жайгашканын издөөнүн кереги жок, жөн гана жазсаңыз болот:
repo:romankh3/image-comparison ImageComparisonResult
Кайсы жерде репо көрсөтүү керек :${user_name}/${repo_name} . Жөн гана ЖЕ кошуу менен бир нече репозиторийлерден издей аласыз:
repo:romankh3/image-comparison ЖЕ repo:romankh3/usage-image-comparison ImageComparisonResult
GitHubда айтылгандай, учурда алар аты кадимки туюнтма катары көрсөтүлгөн репозиторийлерден издөөнү колдобойт... Бул алар мындай функцияны кошууну пландаштырып жатканын билдирет жана бул долбоор жарыяланганда токтобойт дегенди билдирет. функционалдуу жана андан ары өнүгөт.

Уюм боюнча чыпкалоо

Уюм же колдонуучу боюнча издөө репозиторий боюнча издөө сыяктуу эле жасалат, бир гана ачкыч сөз репо эмес , org болот :
org:romankh3 ImageComparison
Андан кийин издөө колдонуучунун/уюмдун бардык репозиторийлери аркылуу өтөт.

Программалоо тилдери боюнча чыпкалоо

Сиз ошондой эле белгилүү бир программалоо тorндеги файлдарды издөөнү белгилей аласыз. Бул жерде курулуш репозиторий жана уюмдагыдай эле, бир гана ачкыч сөз тил :
тor: Java ImageComparison
Репозиторийдегидей эле, ал ЖЕ ачкыч сөзүн колдонуп бир эле учурда бир нече тилде издөөнү колдойт:
тил:java ЖЕ тor: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

Логикалык операциялар

Жана албетте, бардык чыпкаларды куруунун туу чокусу бул маселени буль операцияларын колдонуу менен бириктирүү болуп саналат. Бул үчүн бизде ЖАНА, ЖЕ, ЖАНА ЖОК. Бул бизге жетиштүү болушу керек деп ойлойм. Мисалы, татаал издөө сурамын түзөлү: белгилүү бир колдонуучу/уюм үчүн Java же Kotlin өндүрүшүнөн code:
repo:romankh3 ЖАНА (тил:java ЖЕ тor:котлин) ЖАНА ЭМЕС жол:*/test/*
Жана бул, мен сага айтып коёюн, жөн эле укмуш. Издөө өтүнүчү ушунчалык жөнөкөй, тез, кыска жана так жазылгандыктан, суроону издөөдө жана окууда эч кандай кыйынчылыктар болбойт.

Кичинекей эс алуу

Биздин кубаныч али муздай элек кезде, мен 2018-жылга кайтып барып, бир нерсени эстегим келет... Эсиңизде болсун, Microsoft GitHub сатып алып жатканын баары билгенде, баары долбоор көмүлүп калат деп ойлошкон? Анын тагдыры экинчи Skype жолу экенин? Ар бир адам өз долбоорлорун GitLabга кантип көчүрө башташты? Бирок, чынын айтсам, бул хайптын артынан мен бир нерсе жараттым жана азап тарттым. Бирок, чынын айтсам, долбоорлорду жылдырган жерге кайра барган эмесмин. Анан эмнегедир мен каалабайм. Эмне үчүн? Бул боюнча да ойлор бар. Эске сала кетейин, GitHub Билл Гейтске сатылгандан кийин, долбоор жеке репозиторийлерге акысыз ээ болуу мүмкүнчүлүгүн кошкон, GitHub Actions CI/CD процесси үчүн чыгарылган жана башка көптөгөн нерселер. Ал эми азыр да күчтүү издөө системасы. Бул долбоорду чөгөрүүнү каалагандай эмес. Майкрософт пайдадан салык төлөгүсү келбей, жылдын аягына чейин 9 миллиард доллардан ийгorктүү сатып алган окшойт 😁 Ошондон кийин алар бул долбоорду иштеп чыгууну чечишкен. Ачык булактуу иштеп чыгуучу үчүн бул алардын codeун сактоо үчүн эң сонун жер экени чын. Сиз GitHub'дан чыкпастан эле өзүңүздүн продуктууңузду толугу менен өнүктүрө аласыз.

Аягында

Мен макаланы бир жолу жаздым. Сөздөр менен эмоциялар гейзер сыяктуу агып турганы мага абдан жагат. Бул технологияны алдыга жылдырат. Ошентип, биз сөөмөйүбүздү тамырдын согунда кармап, кырдаалды коё бербейбиз. Аны колдонууну ар бирибиз үйрөнүшүбүз керек деп ишенем. GitHub'га каттала элек адамдар үчүн мен муну жасоону сунуштайм. Бул татыктуу. Адаттагыдай эле, достор, менин бардык коомдук иш-аракеттеримди бириктирген менин телеграм каналыма жазылууну унутпаңыз . Мен бул жерде жарыялаган макалалардан тышкары, мен ал жерде өнүгүү дүйнөсүнөн жана жалпысынан IT дүйнөсүнөн мени кызыктырган темаларды козгогон кыска постторду жазам. Ал жерде 800дөн ашык жазылуучу бар! Жана, албетте, менин GitHub аккаунтум , анда мен макалалар үчүн бардык демо долбоорлорду жарыялайм, китепканаларымды жаңыртам жана ачык булактуу уюмдарды өнүктүрөм. Болду, окуганыңыздар үчүн рахмат, кош айтышпайлы 👌
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION