JavaRush /Java Blog /Random-TL /Paghahanap ng Code ng GitHub: Maghanap ng higit pa, magha...

Paghahanap ng Code ng GitHub: Maghanap ng higit pa, maghanap nang mas kaunti - Naglunsad ang GitHub ng isang search engine

Nai-publish sa grupo
Kumusta sa lahat, mahal na mga kaibigan! Bilang mahilig sa mga bagong feature sa GitHub, interesado akong malaman na sa lalong madaling panahon magagawa nating lahat na mabilis at mahusay na maghanap sa GitHub code base. Ito ay maaaring maging napaka-maginhawa, lalo na kung kailangan mong maghanap ng isang sopistikadong paraan upang gumamit ng isang tool. “Paghahanap ng Code sa GitHub: Maghanap ng higit pa, maghanap nang mas kaunti” - Naglunsad ang GitHub ng isang search engine - 1Ito ay lalo na sumasalamin sa katotohanan na ang isang hinaharap na katunggali sa GitHub ay binuksan sa Russia. Samakatuwid, tiyak na hindi dapat magpahinga ang GitHub sa kanilang tagumpay, sa kabila ng katotohanang walang alinlangan na sila ang nangunguna sa merkado. Kailangan nating mag-move on at umunlad, kung hindi ay wala pang isang oras at ang mga kakumpitensya ay hahabulin at tangayin. At hayaan itong hindi mukhang hindi kapani-paniwala. Bilang halimbawa: ilang tao pa rin ang gumagamit ng mga Nokia phone? Sino ang nakakaalam na gumawa sila ng mga telepono? Sa isang pagkakataon sila ay simpleng hindi matamo, hindi mapag-aalinlanganan na mga pinuno ng merkado... At ngayon sila ay lumilitaw sa isang lugar sa larangan ng statistical error.

Unang impression

Ang GitHub ay lumikha ng isang proyekto kung saan maaari kang maghanap, mag-navigate, at suriin ang iyong code at ang bilyun-bilyong linya ng code na na-publish sa GitHub. Mahalagang tandaan na ang paghahanap ay nasusukat, mabilis at tumpak. Ito ay nilikha mula sa simula partikular para sa paghahanap ng code. Gumagana ang nabigasyon para sa 10 pangunahing wika ng programming na walang mga setting (umaasa kami na ang listahan ay lalago sa hinaharap). Maaari kang maghanap gamit ang isang regular na expression, na napaka-cool. Available din ang iba pang mga filter:
  • sa pamamagitan ng organisasyon;
  • sa pamamagitan ng mga programming language;
  • ng tiyak na may-ari;
  • sa pamamagitan ng extension ng file;
  • sa pamamagitan ng regular na pagpapahayag.
Nakakabilib na ang listahan! Lumalabas na binibigyan tayo ng search engine ng pagkakataong lumikha ng mga kumplikadong query sa paghahanap kung saan malinaw nating matutukoy ang mga hangganan kung saan kailangan ang paghahanap. Ang pangalawang mahalagang bahagi ng makina ay ang code navigation 😳 Para saan ang mga development environment na maginhawa at bakit nagbabayad ng pera ang mga tao para sa kanila? Dahil pinapadali nila ang aming buhay, tulungan kaming mag-navigate sa code, upang ang bilis ng pagbuo at pagbabasa ng code ay tumaas. At ang GitHub ngayon ay nag-aalok sa amin ng cool na tampok na ito. Ito ay hindi kapani-paniwala. Oo, alam ko na sa ngayon ay mayroon nang katulad ng nabigasyon sa GitHub, ngunit ang pag-andar ay napakaikli at hindi maganda. Iyon ay, nang walang kapaligiran sa pag-unlad, maaari kang maghanap kung saan ginagamit ang ilang mga pamamaraan, kung saan tinukoy ang mga ito. Kahanga-hanga lang. Pinasaya mo ako sa GitHub. Available din ang nabigasyon para sa mga pag-import sa mga klase. Malulutas nito ang maraming problema sa paghahanap at pag-aaral ng partikular na library sa GitHub. Ngayon ang prosesong ito ay pinabilis nang maraming beses. At lahat ng ito ay libre. Napakahusay lang. Magiging in demand ba siya? Sigurado ako oo!

Pag-usapan natin nang mas detalyado ang tungkol sa paghahanap

Napaka-interesante na tingnan at subukang hanapin ang iyong sarili: ito ba ay maginhawa gaya ng sinasabi nila? Sa ngayon, hindi available sa publiko ang feature na ito at maaari mong idagdag ang iyong sarili sa waiting list gamit ang link . Pinupunan namin ang lahat ng mga punto doon, ang mga tanong ay simple, hindi ko ilarawan ang mga ito dito. Bilang resulta, idinagdag kami sa listahan ng naghihintay at magpatuloy. Bilang isang resulta, ang sagot ay ito: “Paghahanap ng Code sa GitHub: Maghanap ng higit pa, maghanap nang mas kaunti” - Naglunsad ang GitHub ng isang search engine - 2Kailangan mo lamang maghintay. Sa sandaling madagdag ako, tiyak na ipapakita ko sa iyo ang lahat. Huwag mag-antala, idagdag ang iyong sarili upang malaman mo ito sa ibang pagkakataon at gamitin ito sa iyong kasiyahan) At siyempre, nakakahiya na hindi mo masubukan kaagad ang bagong tool, kaya suriin natin ang kanilang dokumentasyon at ilarawan sa higit pang detalye kung paano namin magagamit ang tool na ito para sa aming trabaho. Ngayon tungkol sa paghahanap. Gagamitin nito ang mga klase at konstruksyon na may katuturan sa library na sinusulat ko. Gagawin nitong mas malinaw at mas madali para sa akin, at umaasa akong magiging mas madali din ito para sa iyo.

Pangunahing paghahanap

Ang ImageComparison ay ang pinakasimpleng paghahanap na eksaktong naghahanap gamit ang query sa mga pangalan ng file at sa mga nilalaman ng mga ito. Ang lahat ay tila napakasimple dito. Kung gusto nating mahanap nang malinaw ayon sa pangalan ng klase, kung saan ito idineklara at kung saan ito ginagamit, ang ganitong paghahanap ay makakatulong sa atin dito. Kapag nagpasok ka ng maraming salita na pinaghihiwalay ng mga puwang, ang resulta ay isang paghahanap para sa lahat ng mga ito nang hiwalay: Paghahambing ng Larawan , ibig sabihin ay makakahanap ito ng mga file at code para sa parehong Larawan at Paghahambing . Kung kailangan mong maghanap ng string na naglalaman ng mga puwang, kailangan mo lang gumamit ng mga quote. Halimbawa: "Paghahambing ng Imahe = bagong Paghahambing ng Larawan()" at pagkatapos ay tutugma ang paghahanap sa buong string. Para sa pagtakas, ginagamit namin ang "\" gaya ng dati. Sa ngayon, lahat ay intuitive at madalas na kung paano ito ginagawa. Dagdag pa, maaari kaming magdagdag ng mga filter sa pangunahing paghahanap na ito. Samakatuwid, pag-usapan natin ang bawat isa sa kanila. Ang mga ito ay magiging lohikal na "AT" sa filter na nagawa na namin.

I-filter ayon sa repositoryo

Kapag handa na ang aming pangunahing filter, maaari naming paliitin ang aming paghahanap at paghahanap sa pamamagitan ng partikular na repositoryo, na napakaginhawa. Hindi mo kailangang hanapin kung saang folder matatagpuan ang klase, maaari mo lamang isulat:
repo:romankh3/image-comparison ImageComparisonResult
Kung saan kailangan nating tukuyin ang repo:${user_name}/${repo_name} . Maaari ka ring maghanap sa maraming repositoryo sa pamamagitan lamang ng pagdaragdag ng OR:
repo:romankh3/image-comparison OR repo:romankh3/usage-image-comparison ImageComparisonResult
Tulad ng nakasaad sa GitHub, sa sandaling ito ay hindi nila sinusuportahan ang paghahanap sa mga repositoryo kung saan ang pangalan ay tinukoy bilang isang regular na expression... Nangangahulugan ito na pinaplano nilang magdagdag ng naturang feature at nangangahulugan ito na ang proyekto ay hindi titigil sa ipinahayag functionality at bubuo pa.

I-filter ayon sa organisasyon

Ang paghahanap sa pamamagitan ng organisasyon o user ay ginagawa sa eksaktong kaparehong paraan tulad ng paghahanap sa pamamagitan ng repository, tanging ang keyword ay hindi repo , ngunit org :
org:romankh3 ImageComparison
At pagkatapos ay dadaan ang paghahanap sa lahat ng mga repositoryo ng user/organisasyon.

I-filter ayon sa mga programming language

Maaari ka ring tumukoy ng paghahanap para sa mga file sa isang partikular na programming language. Narito ang konstruksiyon ay kapareho ng para sa imbakan at organisasyon, tanging ang keyword ay wika :
wika:java ImageComparison
Tulad ng para sa repositoryo, sinusuportahan nito ang paghahanap sa maraming wika nang sabay-sabay gamit ang OR keyword:
wika:java O wika:ruby ImageComparison
Ang isang kumpletong listahan ng mga wikang sinusuportahan ng GitHub ay matatagpuan dito . I wonder kung nandiyan ang BrainFuck? 😂

I-filter ayon sa landas ng file

Ang bawat file sa proyekto ay may sariling landas at maaari ka ring maghanap sa pamamagitan nito sa pamamagitan ng pagdaragdag ng isang filter. Halimbawa, mayroong isang file ImageComparisonResult , mayroon itong landas:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
Kaya, upang mahanap ang lahat ng mga klase na ang landas ay nagsisimula sa src/main/java/com/github/romankh3/image , kailangan mo:
path:src/main/java/com/github/romankh3/image
Maaaring maging kapaki-pakinabang sa mga kaso kung saan hindi namin gustong maiwan ang mga klase sa pagsubok sa aming mga resulta ng paghahanap. O vice versa, mga pagsubok lamang. Ginagawa nitong mas flexible ang iyong paghahanap. Maaaring tukuyin ang isang filter ayon sa landas ng file gamit ang isang regular na expression. Halimbawa, kailangan nating hanapin
path:src/*/*.js

Mga pagpapatakbo ng Boolean

At siyempre, ang culmination ng lahat ng filter building ay pinagsasama-sama ang bagay na ito gamit ang Boolean operations. Para dito mayroon kaming AT, O, AT HINDI. Sa tingin ko ito ay sapat na para sa atin. Halimbawa, gumawa tayo ng kumplikadong query sa paghahanap: code mula sa produksyon ng Java o Kotlin para sa isang partikular na user/organisasyon:
repo:romankh3 AT (wika:java O wika:kotlin) AT HINDI path:*/test/*
At ito, sinasabi ko sa iyo, ay sadyang hindi kapani-paniwala. Ang kahilingan sa paghahanap ay isinulat nang simple, mabilis, maigsi at malinaw na walang magiging problema sa paghahanap at pagbabasa ng kahilingan.

Isang maliit na pag-urong

Habang ang aming kasiyahan ay hindi pa lumalamig, gusto kong bumalik sa 2018 at maalala ang isang bagay... Tandaan, nang malaman ng lahat na binibili ng Microsoft ang GitHub, naisip ng lahat na ang proyekto ay ililibing? Na ang kanyang kapalaran ay ang landas ng pangalawang Skype? Paano nagsimulang ilipat ng lahat ang kanilang mga proyekto sa GitLab? Ngunit maging tapat tayo, sa pagtatapos ng hype na ito ay nilikha ko at nagdusa ng isang bagay. Pero sa totoo lang, hindi na ako muling bumisita sa lugar kung saan ko inilipat ang mga proyekto. At kahit papaano ayoko. At bakit? May mga iniisip din tungkol dito. Ipaalala ko sa iyo na pagkatapos ng pagbebenta ng GitHub kay Bill Gates, idinagdag ng proyekto ang kakayahang magkaroon ng mga pribadong repositoryo nang libre, ang GitHub Actions ay inilabas para sa proseso ng CI/CD, at marami pang iba. At ngayon ay mayroon ding isang malakas na search engine. Hindi ito mukhang pagnanais na lumubog ang proyekto. Ito ay higit na tulad ng Microsoft ay hindi nais na magbayad ng mga buwis sa mga kita at gumawa ng isang matagumpay na pagbili sa pagtatapos ng taon para sa higit sa 9 bilyong dolyar 😁 At pagkatapos ng lahat ng ito ay nagpasya silang bumuo ng proyektong ito. At totoo na para sa isang open-source na developer ito ay isang magandang lugar upang iimbak ang kanilang code. Maaari mong ganap na mabuo ang iyong produkto nang hindi umaalis sa GitHub.

Sa dulo

Isinulat ko ang artikulo nang sabay-sabay. Gustung-gusto ko ito kapag ang mga salita at emosyon ay dumadaloy na parang geyser. Ito ang nagpapasulong sa teknolohiya. Kaya't pinapanatili namin ang aming daliri sa pulso at huwag pabayaan ang sitwasyon. Sigurado ako na dapat matuto ang bawat isa sa atin na gamitin ito. Para sa sinumang hindi pa nag-sign up para sa GitHub, lubos kong inirerekumenda ang paggawa nito. Ito ay nagkakahalaga ito. Gaya ng dati, mga kaibigan, huwag kalimutang mag-subscribe sa aking telegram channel , kung saan pinagsama ko ang lahat ng aking mga pampublikong aktibidad. Bilang karagdagan sa mga artikulo na nai-publish ko dito, nagsusulat ako ng mas maiikling mga post doon kung saan hinawakan ko ang mga paksa na interesado ako mula sa mundo ng pag-unlad at IT sa pangkalahatan. Mayroon nang higit sa 800 mga subscriber doon! At, siyempre, ang aking GitHub account , kung saan ini-publish ko ang lahat ng mga demo na proyekto para sa mga artikulo, ina-update ang aking mga aklatan at bumuo ng mga open-source na organisasyon. Yun lang, salamat sa lahat ng nagbasa, wag na tayong magpaalam 👌
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION