Kehittäjän esittely GitHubiin

Haluatko oppia JavaScriptiä? Hanki ilmainen e-kirjani osoitteesta jshandbook.com

GitHub on verkkosivusto, joka isännöi miljardeja rivikoodeja, ja siellä miljoonat kehittäjät kokoontuvat päivittäin tekemään yhteistyötä avoimen lähdekoodin ohjelmistojen kanssa ja ilmoittamaan niistä.

Lyhyesti sanottuna, se on alusta ohjelmistokehittäjille, ja se on rakennettu Gitin ympärille.

VIHJE: Jos et tiedä vielä Gitistä, tarkista Git-oppaani.

Kehittäjänä ei voi välttää käyttämästäsi GitHubia tai muuta Git-pohjaista työkalua päivittäin osana työtäsi. Sitä käytetään joko koodisi isännöimiseen tai yhteistyöhön muiden ihmisten koodin kanssa. Tämä artikkeli selittää joitain GitHubin avainkäsitteitä ja kuinka käyttää joitain sen ominaisuuksia työnkulun parantamiseksi.

Miksi GitHub?

Nyt kun tiedät, mikä GitHub on, saatat kysyä, miksi sinun pitäisi käyttää sitä.

GitHubia hoitaa loppujen lopuksi yksityinen yritys, joka hyötyy ihmisten koodin ylläpidosta. Joten miksi sinun pitäisi käyttää sitä samanlaisten alustojen, kuten BitBucket tai GitLab, sijasta?

Henkilökohtaisten mieltymyksien ja teknisten syiden lisäksi on yksi iso syy: kaikki käyttävät GitHubia, joten verkkovaikutus on valtava.

Suurimmat kooditietokannat ovat siirtyneet ajan myötä muista versionhallintajärjestelmistä Gitiin sen mukavuuden vuoksi, ja GitHub on historiallisesti ollut hyvin sijoitettu ja panostanut paljon vaivaa palvelemaan avoimen lähdekoodin yhteisön tarpeita.

Joten tänään, aina kun etsit kirjastoa, löydät 99% ajasta sen GitHubista.

Avoimen lähdekoodin lisäksi monet kehittäjät isännöivät myös yksityisiä arkistoja GitHubissa käyttöympäristön mukavuuden vuoksi.

Nyt voidaan aloittaa tärkeiden Git-erityiskonseptien kehittäminen, jotka kehittäjän on tiedettävä.

GitHub-julkaisut

GitHub-lehdet ovat yksi suosituimmista vianseurantalaitteista maailmassa.

Ne tarjoavat arkiston omistajille mahdollisuuden organisoida, merkitä ja liittää asioita välitavoitteisiin.

Jos avaat ongelman jonkun muun hallinnassa projektissa, se pysyy avoinna, kunnes joko suljet sen (esimerkiksi jos selvität ongelmasi, joka sinulla oli) tai repon omistaja sulkee sen.

Joskus saat lopullisen vastauksen, ja muina aikoina kysymys jätetään avoimeksi ja siihen lisätään joitain luokittelevia tietoja. Sitten kehittäjä voi palata ongelmaan korjataksesi ongelman tai parantaaksesi tietokantaa palautteellasi.

Useimmille kehittäjille ei makseta GitHubissa julkaistun koodin tukemista, joten et voi odottaa nopeaa vastausta. Joitakin avoimen lähdekoodin arkistoja julkaisevat yritykset, jotka tarjoavat palveluita kyseisen koodin ympärillä, tarjoavat kaupallisia tarjouksia versioille, joissa on enemmän ominaisuuksia tai käyttävät laajennuspohjaista arkkitehtuuria. Ja niin he ovat maksaneet avoimen lähdekoodin projektin parissa työskenteleville kehittäjille.

Sosiaalinen koodaus

Kuvaluotto: https://octodex.github.com

Muutama vuosi sitten GitHub-logo sisälsi ”social coding” -tunnisteen.

Mitä tämä tarkoitti, ja onko se edelleen merkityksellinen? Se todellakin on.

seurata

GitHubin avulla voit seurata kehittäjää tai arkistoa siirtymällä käyttäjän profiiliin ja napsauttamalla Seuraa tai napsauttamalla repon "katso" -painiketta.

Molemmissa tapauksissa aktiviteetti näkyy kojetaulussa. Käyttäjän tai arkiston seuraaminen on toisin kuin Twitter, jossa näet mitä ihmiset sanovat - sen sijaan näet mitä ihmiset tekevät.

tähdet

Yksi iso GitHub-ominaisuus on kyky merkitä arkisto tähdellä. Tämä toiminto sisällyttää sen "tähdellä merkittyjen arkistojen" luetteloon, jonka avulla voit seurata mielenkiintoisia projekteja ja löytää samanlaisia ​​projekteja.

Se on myös yksi tärkeimmistä luokitusmekanismeista, koska mitä enemmän tähtiä repolla on, sitä suositumpi ja tärkeämpi se yleensä on. Tämä johtaa siihen, että se näkyy näkyvämmin hakutuloksissa.

Suurprojekteilla voi olla kymmeniä tuhansia tähtiä.

GitHubilla on myös trendiva sivu, jolla on arkistot, jotka saavat eniten tähtiä määrätyn ajanjakson aikana (esimerkiksi tänään tai tällä viikolla tai tässä kuussa).

Siirtyminen nouseviin luetteloihin voi aiheuttaa muita verkkoefektejä, kuten esiintymisen muilla sivustoilla, vain siksi, että sinulla on enemmän näkyvyyttä.

Haarukka

Viimeinen tärkeä projekti-indikaattori on haarukoiden määrä.

Tämä on avain GitHubin toimintaan, koska haarukka on Pull-pyynnön (PR) perusta, joka on muutosehdotus. Henkilö voi haarukoida arkistoasi, tehdä joitain muutoksia ja luoda sitten vetämispyynnön, jossa sinua pyydetään yhdistämään muutokset.

Joskus henkilö, joka haarukoi arkistoa, ei koskaan voi pyytää sinua yhdistämään mitään. He saattavat haarukoida arkistoasi vain siksi, että he pitivät koodistasi ja päättivät lisätä sen päälle jotain, jota he eivät halua sulauttaa takaisin alkuperäiseen arkistoon. Käyttäjä voi myös korjata kokemansa virheen, joka oli heille ominainen.

Suosittu = parempi

Kaiken kaikkiaan nämä ovat kaikki hankkeen suosion tärkeimpiä indikaattoreita. Yllä olevien indikaattorien lisäksi viimeisimmän sitoutumisen päivämäärä ja kirjoittajan osallistuminen aiheiden seurantaan ovat hyödyllisiä osoituksia siitä, kannattaako luottaa kirjastoon tai ohjelmistoon.

Pyynnöt

Edellisessä osassa esittelin mitä Pull Request (PR) on. Toistamiseen henkilö voi haarukoida arkistoasi, tehdä joitain muutoksia ja luoda sitten vetämispyynnön, jossa sinua pyydetään yhdistämään muutokset.

Hankkeella voi olla satoja PR-hankkeita, ja yleensä on niin, että mitä suositumpi projekti, sitä enemmän PR: tä sillä on, kuten React-projektissa:

Kun henkilö on jättänyt vetämispyynnön, hankkeen keskeiset ylläpitäjät tarvitsevat sen uudelleen.

Vedospyynnön laajuudesta (muutosten lukumäärä, muutosten vaikutusten lukumäärä tai käsitellyn koodin monimutkaisuus) riippuen ylläpitäjä voi tarvita enemmän tai vähemmän aikaa varmistaaksesi, että muutoksesi ovat yhteensopivia projektin kanssa.

Hankkeella voi olla selkeä aikataulu muutoksille, jotka he haluavat tehdä. Ylläpitäjä saattaa haluta pitää asiat yksinkertaisina, kun esität monimutkaista arkkitehtuuria vetopyynnössä.

Toisin sanoen vetopyyntöä ei aina hyväksytä nopeasti, eikä ole mitään takeita siitä, että vetopyyntö koskaan hyväksytään.

Yllä olevassa esimerkissä repossa on vetämispyyntö, joka juontaa juurensa 1,5 vuotta sitten. Ja niin tapahtuu kaikissa projekteissa - se on aivan normaalia ja voi johtua edellä mainituista syistä.

Projektinhallinta

GitHub-käyttöliittymä tarjoaa asioiden lisäksi, joissa kehittäjät saavat palautetta käyttäjiltä, ​​muita ominaisuuksia, joiden tarkoituksena on tarjota muutama projektinhallintaominaisuus.

Yksi niistä on hankkeet. Se on aivan uusi ekosysteemissä ja hyvin harvoin käytetty, mutta se on Kanban-taulu, joka auttaa järjestämään aiheita ja tehtävää työtä.

Wiki on tarkoitettu käytettäväksi käyttäjien dokumentointina. Yksi vaikuttavimmista Wiki-käyttökohteista, joita olen nähnyt tähän asti, on Go-ohjelmointikieli GitHub Wiki.

Toinen suosittu projektijohtamisen apu on välitavoitteet. Se on osa julkaisusivua, ja voit määrittää ongelmat tiettyihin välitavoitteisiin, jotka voivat olla julkaisukohteet.

GitHub paransi Git-tag-toimintoja ottamalla käyttöön julkaisuja.

Git-tunniste on osoitin tiettyyn toimeksiantoon, ja jos sitä tehdään johdonmukaisesti, se auttaa sinua palaamaan koodin edelliseen versioon ilman, että viitataan tiettyihin toimeksiantoihin.

GitHub-julkaisu rakentuu Git-tunnisteiden päälle ja edustaa koodisi täydellistä julkaisua yhdessä zip-tiedostojen, julkaisutiedotteiden ja binaarisisällön kanssa, jotka saattavat edustaa koodisi lopputuotteen täysin toimivaa versiota.

Git-tunniste voidaan luoda ohjelmallisesti (esimerkiksi käyttämällä komentorivin git-ohjelmaa), mutta GitHub-julkaisun luominen on manuaalinen prosessi, joka tapahtuu GitHub-käyttöliittymän kautta. Periaatteessa sanot, että GitHub luo uuden julkaisun ja kertoa heille, mihin tunnisteeseen haluat käyttää kyseistä julkaisua.

Vertaamalla sitoutuu

GitHub tarjoaa monia työkaluja työskentelemään koodisi kanssa.

Yksi tärkeimmistä asioista, joita saatat haluta tehdä, on vertaa haaraa toiseen. Tai haluat verrata viimeisintä sitoutumista versioon, jota parhaillaan käytät, nähdäksesi mitkä muutokset tehtiin ajan myötä.

GitHubin avulla voit tehdä tämän vertailunäkymän kanssa: lisää / vertaa vain reponimen loppuun.

Esimerkiksi, https://github.com/facebook/react/compare

Oheisessa kuvassa vertailen viimeisintä React v15.x -versiota viimeisimpään v16.0.0-rc-versioon, joka oli saatavilla kirjoittamisen aikana nähdäksesi mitä on muuttunut.

Tämä näkymä näyttää sitoumukset, jotka on tehty kahden muutetun julkaisun (tai tunnisteiden tai toimeksiantojen) välillä, ja todellisen eron, jos muutosten lukumäärä on pienempi kuin kohtuullinen määrä.

Verkkohuollot ja palvelut

GitHub tarjoaa monia ominaisuuksia, jotka auttavat kehittäjän työnkulkua, kuten webhookit ja palvelut.

Webhooks

Webhooksien avulla ulkoiset palvelut voidaan tunnistaa, kun arkistossa tapahtuu tiettyjä tapahtumia, esimerkiksi kun koodia työnnetään, haarukka tehdään tai tunniste luodaan tai poistetaan.

Kun tapahtuma tapahtuu, GitHub lähettää POST-pyynnön URL-osoitteelle, jota me kehotamme käyttämään.

Tämän ominaisuuden yleinen käyttö on pingottaa etäpalvelin noutamaan uusin koodi GitHubista, kun päivitystä vietään paikalliselta tietokoneelta.

Me siirrymme GitHubiin, GitHub kertoo palvelimelle, jonka me työnsimme, ja palvelin vetää GitHubista.

Palvelut

GitHub-palvelut ja uudet GitHub-sovellukset ovat kolmannen osapuolen integrointeja, jotka parantavat kehittäjäkokemusta tai tarjoavat sinulle palvelun.

Voit esimerkiksi määrittää testinjuoksijan suorittamaan testit automaattisesti joka kerta, kun painat uusia sitoumuksia TravisCI: n avulla.

Voit määrittää jatkuvan integroinnin CircleCI: llä.

Voit luoda Codeclimate-integraation, joka analysoi koodin ja antaa raportin ”Teknisestä velasta” ja testin kattavuudesta.

Loppusanat

GitHub on hämmästyttävä työkalu ja palvelu hyödyntääkseen, todellinen helmi tämän päivän kehittäjätyökaluissa. Tämä opetusohjelma auttaa sinua pääsemään alkuun, mutta todellinen kokemus GitHub-avoimen lähdekoodin (tai suljetun lähdekoodin) projektien parissa työskentelystä on jotain, jota ei kannata jättää väliin.

Haluatko oppia JavaScriptiä? Hanki ilmainen e-kirjani osoitteesta jshandbook.com