Kūrėjo įžanga į „GitHub“

Norite sužinoti „JavaScript“? Gaukite nemokamą el. Knygą svetainėje jshandbook.com

„GitHub“ yra svetainė, kurioje talpinama milijardai kodo eilučių, ir joje milijonai kūrėjų susirenka kiekvieną dieną bendradarbiauti ir pranešti apie problemas, susijusias su atvirojo kodo programine įranga.

Trumpai tariant, tai yra programinės įrangos kūrėjų platforma ir sukurta aplink „Git“.

PATARIMAS: Jei dar nežinote apie „Git“, patikrinkite mano „Git“ vadovą.

Kaip kūrėjas, jūs negalite išvengti savo darbo kasdien naudodamiesi „GitHub“ ar kitu „Git“ pagrindu sukurtu įrankiu. Jis naudojamas arba priglobti jūsų kodą, arba bendradarbiaujant su kitų žmonių kodu. Šiame straipsnyje paaiškinamos kelios pagrindinės „GitHub“ sąvokos ir kaip naudoti kai kurias jo funkcijas siekiant pagerinti jūsų darbo eigą.

Kodėl „GitHub“?

Dabar, kai žinote, kas yra „GitHub“, galite paklausti, kodėl turėtumėte juo naudotis.

„GitHub“ valdo privati ​​įmonė, kuri gauna pelną iš žmonių kodo prieglobos. Taigi kodėl turėtumėte naudoti tai vietoj panašių platformų, tokių kaip „BitBucket“ ar „GitLab“?

Be asmeninių pageidavimų ir techninių priežasčių, yra viena didžiulė priežastis: visi naudojasi „GitHub“, taigi tinklo poveikis yra didžiulis.

Pagrindinės kodinės bazės bėgant laikui perėjo iš kitų versijų valdymo sistemų į „Git“ dėl jos patogumo, o „GitHub“ buvo istoriškai gerai išdėstytos ir įdėjo daug pastangų patenkinti atvirojo kodo bendruomenės poreikius.

Taigi šiandien, kiekvieną kartą ieškodami bibliotekos, 99% laiko ją rasite „GitHub“.

Be atvirojo kodo, daugelis kūrėjų dėl platformos patogumo taip pat priima privačias saugyklas „GitHub“.

Dabar galime pradėti naudotis svarbiomis „Git“ koncepcijomis, kurias kūrėjas turi žinoti.

„GitHub“ leidimai

„GitHub“ leidimai yra vienas populiariausių klaidų stebėjimo priemonių pasaulyje.

Jie suteikia saugyklos savininkams galimybę organizuoti, žymėti ir susieti problemas su gairėmis.

Jei atidarysite kažkieno valdomo projekto problemą, ji liks atvira, kol ją uždarysite (pavyzdžiui, jei išsiaiškinsite turėtą problemą) arba atpirkimo sandorio savininkas uždarys.

Kartais gausite aiškų atsakymą, o kitu atveju problema bus palikta atvira ir pažymėta tam tikra informacija, kuri ją klasifikuoja. Tada kūrėjas gali grįžti prie jos norėdamas išspręsti problemą arba patobulinti kodinę bazę pateikdamas jūsų atsiliepimus.

Daugeliui kūrėjų nemokama už tai, kad palaikytų savo kodą, išleistą „GitHub“, todėl negalima tikėtis greitų atsakymų. Bet kai kurias atvirojo kodo saugyklas skelbia įmonės, teikiančios paslaugas pagal šį kodą, turinčios komercinių pasiūlymų versijoms su daugiau funkcijų arba naudojančios įskiepiais pagrįstą architektūrą. Taigi jie sumokėjo kūrėjams, dirbantiems su atvirojo kodo projektu.

Socialinis kodavimas

Vaizdo kreditas: https://octodex.github.com

Prieš keletą metų į „GitHub“ logotipą buvo įtraukta etiketė „social coding“.

Ką tai reiškė ir ar tai vis dar aktualu? Tai tikrai yra.

Sekite

Naudodamiesi „GitHub“ galite sekti kūrėją ar saugyklą eidami į vartotojo profilį ir spustelėdami „sekti“ arba spustelėdami repos mygtuką „žiūrėti“.

Abiem atvejais veikla bus rodoma prietaisų skydelyje. Stebėjimas vartotoju ar saugykla nepanašus į „Twitter“, kur matote, ką žmonės sako, vietoje to, jūs matote, ką žmonės daro.

Žvaigždės

Vienas didelis „GitHub“ bruožas yra galimybė pažymėti saugyklą žvaigždute. Šis veiksmas bus įtrauktas į jūsų žvaigždute pažymėtų saugyklų sąrašą, kuris leidžia jums sekti įdomių projektų projektus ir atrasti panašius projektus.

Tai taip pat yra vienas iš svarbiausių įvertinimo mechanizmų, nes kuo daugiau atpildu žvaigždžių turi, tuo populiaresnis ir svarbesnis jis yra. Tai rodo, kad paieškos rezultatuose jis bus matomas labiau.

Didžiausiuose projektuose gali būti dešimtys tūkstančių žvaigždžių.

„GitHub“ taip pat turi populiarų puslapį, kuriame pateikiamos saugyklos, kuriose per nustatytą laikotarpį (pvz., Šiandien ar šią savaitę ar šį mėnesį) yra daugiausiai žvaigždžių.

Patekimas į tuos tendencijų sąrašus gali sukelti kitų tinklo efektų, pavyzdžiui, būti rodomiems kitose svetainėse, vien dėl to, kad turite daugiau matomumo.

Šakutė

Paskutinis svarbus projekto tinklo rodiklis yra šakių skaičius.

Tai yra pagrindinis dalykas, kaip veikia „GitHub“, nes šakutė yra „Pull Request“ (PR), kuris yra pasiūlymo dėl pakeitimo, pagrindas. Asmuo gali suformuoti jūsų saugyklą, atlikti keletą pakeitimų ir tada sukurti užklausą, kad paprašytų jus sujungti tuos pakeitimus.

Kartais asmuo, kuris šakina saugyklą, niekada negali paprašyti jūsų nieko sujungti. Jie gali šakoti jūsų saugykloje tik todėl, kad jiems patiko jūsų kodas ir nusprendė ant jo pridėti ką nors, ko nenori vėl sujungti į pradinę saugyklą. Vartotojas taip pat gali ištaisyti klaidą, kurią jie patyrė ir kuri buvo būdinga jiems.

Populiaru = geriau

Apskritai, tai visi yra pagrindiniai projekto populiarumo rodikliai. Be pirmiau nurodytų rodiklių, paskutinio įsipareigojimo data ir autoriaus dalyvavimas leidimų stebėjimo priemonėje yra naudingos nuorodos, ar turėtumėte pasikliauti biblioteka ar programine įranga.

Atšaukti prašymus

Ankstesniame skyriuje aš supažindinau su „Pull Request“ (PR). Norėdami pakartoti, asmuo gali padaryti jūsų duomenų saugyklą, atlikti keletą pakeitimų ir sukurti užklausą sujungti tuos pakeitimus.

Projekte gali būti šimtai PR, ir paprastai yra taip, kad kuo projektas populiaresnis, tuo daugiau jo turi PR, kaip ir „React“ projektas:

Kai asmuo pateikia prašymą traukti, pagrindiniai projekto vykdytojai jį turi peržiūrėti.

Priklausomai nuo jūsų užklausos dėl apimties (pakeitimų skaičiaus, dalykų, kuriuos paveikė jūsų pakeitimas, ar paliesto kodo sudėtingumo), prižiūrėtojui gali prireikti daugiau ar mažiau laiko, kad įsitikintumėte, jog pakeitimai suderinami su projektu.

Projekte gali būti aiškus pakeitimų, kuriuos jie nori pateikti, tvarkaraštis. Priežiūros vadovas gali patikti, kad viskas būtų paprasta, kai pateikiate sudėtingą architektūrą pateikimo užklausoje.

Tai reiškia, kad traukimo prašymas ne visada priimamas greitai ir nėra garantijos, kad traukimo prašymas kada nors bus priimtas.

Aukščiau paskelbtame pavyzdyje yra repo atšaukimo prašymas, kuris datuojamas prieš 1,5 metų. Ir tai atsitinka visuose projektuose - tai visiškai normalu ir gali kilti dėl aukščiau paminėtų priežasčių.

Projektų valdymas

„GitHub“ sąsaja, kartu su problemomis, tomis, kur kūrėjai gauna grįžtamąjį ryšį iš vartotojų, siūlo ir kitų funkcijų, kuriomis siekiama užtikrinti keletą projekto valdymo funkcijų.

Vienas iš jų yra projektai. Tai labai nauja ekosistemoje ir labai retai naudojama, tačiau tai yra „Kanban“ plokštė, padedanti tvarkyti reikalus ir darbus, kuriuos reikia atlikti.

Wiki ketinama naudoti kaip dokumentaciją vartotojams. Vienas įspūdingiausių iki šiol matytų Wiki naudojimo būdų yra „Go Programming Language“ „GitHub Wiki“.

Kita populiari projekto valdymo pagalba yra gairės. Tai yra leidimų puslapio dalis, ir jūs galite priskirti problemas konkretiems etapams, kurie gali būti išleidimo tikslai.

Kalbėdamas apie leidimus, „GitHub“ patobulino „Git“ žymų funkcionalumą pristatydamas leidimus.

„Git“ žyma yra konkretaus įsipareigojimo rodyklė. Jei ji daroma nuosekliai, ji padeda grįžti į ankstesnę kodo versiją, nenurodant konkrečių įpareigojimų.

„GitHub“ leidimas yra sukurtas ant „Git“ žymų ir atspindi visą jūsų kodo išleidimą kartu su „ZIP“ failais, išleidimo pastabomis ir dvejetainiais ištekliais, kurie gali būti visiškai veikianti jūsų kodo galutinio produkto versija.

Nors „Git“ žymą galima sukurti programiškai (pavyzdžiui, naudojant komandinę eilutės programą „git“), „GitHub“ leidimo kūrimas yra rankinis procesas, kuris vyksta per „GitHub“ vartotojo sąsają. Jūs iš esmės liepiate „GitHub“ sukurti naują leidimą ir pasakykite jiems, kuriai žymai norite naudoti tą versiją.

Palyginimas įsipareigoja

„GitHub“ siūlo daug įrankių, skirtų darbui su jūsų kodu.

Vienas iš svarbiausių dalykų, kurį galbūt norėsite padaryti, yra palyginti vieną šaką su kita. Arba norėtumėte palyginti naujausią įsipareigojimą su versija, kurią šiuo metu naudojate, kad pamatytumėte, kurie pakeitimai buvo padaryti per tam tikrą laiką.

„GitHub“ leidžia tai padaryti palyginimo rodinyje: tiesiog pridėkite / palyginkite atpirkimo vardo pabaigoje.

Pvz., Https://github.com/facebook/react/compare

Žemiau pateiktame paveikslėlyje aš palyginu naujausią „React v15.x“ su naujausia „v16.0.0-rc“ versija, turima šio darbo metu, kad pamatytumėte, kas pasikeitė.

Šis rodinys parodo įsipareigojimus, padarytus tarp dviejų išleistų leidimų (arba žymų ar įpareigojančių nuorodų), kurie buvo pakeisti, ir faktinį skirtumą, jei pakeitimų skaičius yra mažesnis už pagrįstą.

„Webhooks“ ir paslaugos

„GitHub“ siūlo daugybę funkcijų, kurios padeda kūrėjo darbo eigai, pvz., Internetines diskus ir paslaugas.

Žiniatinklio tinklai

„Webhooks“ leidžia nustatyti išorines paslaugas, kai saugykloje įvyksta tam tikri įvykiai, pavyzdžiui, kai stumiamas kodas, padaryta šakutė arba sukuriama arba ištrinama žyma.

Kai įvyksta įvykis, „GitHub“ siunčia POST užklausą URL, kurį nurodome naudoti.

Įprastas šios funkcijos naudojimas yra nutiesti nuotolinį serverį, kad būtų galima gauti naujausią kodą iš „GitHub“, kai stumiame naujinį iš vietinio kompiuterio.

Mes stumiame į „GitHub“, „GitHub“ praneša serveriui, kurį stumėme, o serveris traukia iš „GitHub“.

Paslaugos

„GitHub“ paslaugos ir naujos „GitHub“ programos yra trečiųjų šalių integracijos, kurios pagerina kūrėjo patirtį arba teikia paslaugas jums.

Pvz., Naudodamiesi „TravisCI“ galite nustatyti bandymų bėgiką, kad jis būtų atliekamas automatiškai kiekvieną kartą, kai stumiate naujus įsipareigojimus.

Galite nustatyti nenutrūkstamą integraciją naudodami „CircleCI“.

Galite sukurti „Codeclimate“ integraciją, kuri analizuoja kodą ir pateikia „Techninės skolos“ ataskaitą bei bandymo aprėptį.

Baigiamieji žodžiai

„GitHub“ yra nuostabi priemonė ir paslauga, kuria reikia pasinaudoti, tikras perlas šiandieniniame kūrėjų įrankių rinkinyje. Ši pamoka padės jums pradėti, tačiau tikrosios darbo su „GitHub“ atvirojo (arba uždarojo) šaltinio projektais patirtis yra tai, ko nereikia praleisti.

Norite sužinoti „JavaScript“? Gaukite nemokamą el. Knygą svetainėje jshandbook.com