Programiranje

Sourcegraph: Univerzalno iskanje kode in inteligenca

Količina kode na svetu eksplodira. Ko programska oprema postane temeljno gonilo inovacij v skoraj vseh panogah, se razvijalci programske opreme spopadajo z večjimi, bolj soodvisnimi bazami kod. Večina organizacij vsak dan postavlja nove zapise glede velikosti svoje kodne baze.

V tem svetu tradicionalna orodja za razvijalce, kot so urejevalniki in IDE, ne zadoščajo. Zasnovani so bili za posamezne razvijalce, ki delajo na posameznih delih kode, ne pa za programske skupine, ki so razvile velike zbirke kod. V sodobnih organizacijah programske opreme je iskanje po obsežnih zbirkah kod, razumevanje neznane kode in izmenjava institucionalnega znanja zaskrbljenost prvega reda. Skupine za programsko opremo potrebujejo orodje, ki omogoča to univerzalno inteligenčno kodo.

Iskanje kode mora biti univerzalno, da bo učinkovito - zajemati mora vse jezike, vsa skladišča, vse gostitelje kod in vse konfiguracijske datoteke. Iskanje, ki je omejeno samo na Python ali samo na GitHub, je podobno kot Google indeksira samo spletna mesta, zgrajena z Ruby on Rails ali Apache HTTP Server - nezagon za razvojne skupine, ki delujejo v sodobnem vesolju kode.

Vodilna tehnološka podjetja, kot so Uber, Lyft in Yelp, uporabljajo Sourcegraph za prepletanje tega vesolja kode. Podjetja, kot sta Google in Facebook, so porabila na stotine milijonov dolarjev za izdelavo notranjih orodij, podobnih Sourcegraphu. GitLab, podjetje za gostovanje kod in devops, je pred kratkim napovedalo partnerstvo z Sourcegraph-om, da bi nekatere funkcije Sourcegraph-a vgradili v uporabniški vmesnik GitLab-a.

Glavni razlogi za uporabo Sourcegraph-a

Sourcegraph je platforma za razvijalce, namenjena reševanju težav, s katerimi se soočajo sodobne programske ekipe. Sourcegraph obravnava kritične boleče točke, ki jih občutijo programski inženirji in vodilni inženirji.

Za posamezne razvijalce so tukaj glavni razlogi za uporabo Sourcegraph-a:

  1. Ostanite v toku, izogibajte se smrti s tisoč kontekstnimi stikali
  2. Poiščite iglo v kozolcu s kodno bazo
  3. Naj bodo pregledi kode hitri, temeljiti in manj boleči - nič več TL; DR
  4. Učite se z zgledom namesto slabe ali neobstoječe dokumentacije
  5. Naj bodo veliki refaktorji in spremembe kode sledljivi
  6. Z lahkoto delite in razpravljajte o kodi, zlasti z oddaljenimi sodelavci
  7. Je odprtokodna

In tukaj so najpogostejši razlogi, da vodje inženiringov uvajajo Sourcegraph v svojo organizacijo:

  1. Povečajte vsakodnevno produktivnost ekipe
  2. Spodbujajte izmenjavo znanja
  3. Spodbujajte sprejemanje novih orodij v celotni organizaciji
  4. Pospešite vključevanje novih inženirjev
  5. Zmanjšajte odzivni čas
  6. Vzdrževanje in širjenje standardov kakovosti kode
  7. Z API-jem code-as-data ustvarite boljša notranja orodja za razvijalce
  8. Enostavno ga je uvesti in prilagoditi svoji skupini in kodni bazi

Ostanite v toku

Produktivnost programiranja pogosto umre za tisoč preklopov konteksta. Znan scenarij je tak, da je razvijalec sredi implementacije funkcije ali popravka napak, vendar mora nenadoma skočiti v drug del kode. Morda bodo morali poiskati določeno funkcijo knjižnice ali ugotoviti, kako jo uporabiti. Morda ima kolega vprašanje o kakšnem drugem delu kode. Zdaj mora razvijalec odpreti te datoteke v svojem IDE in s tem uničiti njihovo trenutno delovno stanje, ki ga bo treba pozneje boleče priklicati in obnoviti.

Te prekinitve so uničujoče, saj razvijalca odpeljejo iz stanja pretoka in negativni vpliv na produktivnost je velik. Vmesnik iskanja in raziskovanja kode, ki temelji na brskalniku, omogoča razvijalcu, da ohrani stanje urejevalnika, medtem ko raziskuje druge dele kode. Zaradi ohranitve delovnega stanja so stikala za kontekst precej cenejša, kar omogoča posameznim razvijalcem več dela z manj poslabšanja.

Sourcegraph

Poiščite igle v kozolcu

Pogosta naloga vsakodnevnega programskega inženirstva je iskanje določenega niza ali vzorca v kodi. To je lahko sporočilo o napaki, ki se prikaže v delovnih dnevnikih, protivzorec, ki ga je treba odstraniti, ali preprosto unikatni niz, ki ga razvijalec poveže z določeno zanimivostjo v izvorni kodi.

Sourcegraph

Iskanje teh igel je pogosto boleče. IDE imajo funkcije iskanja, vendar lahko zadevna koda obstaja zunaj tistega, kar je IDE odprl. Orodja ukazne vrstice tudi nimajo dostopa do kode zunaj lokalnega datotečnega sistema in so lahko okorna za uporabo. Kode gostitelji iščejo samo po kodi, ki jo gostijo, pogosto pa je to iskanje počasno ali nekakovostno. Iskanje kode mora biti univerzalno, da bo učinkovito.

Z Sourcegraphom imajo razvijalci iskanje kode, ki obsega celotno vesolje kode, s popolno podporo za regularne izraze in bolj napredno ujemanje vzorcev, kot je sintaksa Comby. Iskalnik Sourcegraph je optimiziran za izvorno kodo, zato je neverjetno hiter. Zasnovan je bil tudi od tal do obsega do velikih baz kod in organizacij. Nekatere organizacije imajo na stotisoče skladišč, Sourcegraph pa jih vse postavi na doseg rok.

Izrazita in zmogljiva iskalna sintaksa uporabniku omogoča filtriranje rezultatov po datoteki, jeziku, repozitoriju in nešteto drugih atributih. Sourcegraph se zaveda tudi semantike kode in omogoča neposredno iskanje simbolov.

Sourcegraph

Učite se z zgledom

"Kako naj to uporabim?" je vprašanje, ki ga razvijalci zastavijo več desetkrat na dan. Najbolj pogosto je najboljša dokumentacija primer uporabe. Globalna funkcija iskanja referenc Sourcegraph omogoča razvijalcu, da poišče primere uporabe po vesolju kode, tudi če idealni primer uporabe obstaja v drugem repozitoriju. To je še posebej koristno pri starih zbirkah kod, ki so neznane ali slabo dokumentirane.

Naredite preglede kod hitro in temeljito

Običajni hit o pregledu kode pravi, da če oddate nabor sprememb v 10 vrstic, boste prejeli 10 komentarjev, če pa pošljete nabor sprememb na tisoč vrstic, ne boste dobili komentarjev in samodejne odobritve.

Pregledi kakovostnih kod so pogosto boleči in počasni, saj tradicionalna orodja nimajo bistvenih lastnosti, ki bi pregledovalcu pomagale hitro razumeti spremembe kode. Sourcegraph dodaja IDE-podobno navigacijsko kodo in nasvete o orodjih obstoječemu poteku pregleda razvijalcev kode.

Opisi lebdenja lebdenja Sourcegraph omogočajo pregledovalcu, da hitro pogleda definicije funkcij in dokumentacijo, ne da bi mu bilo treba spremeniti nabor sprememb v lokalni IDE. Ne da bi zapustil vmesnik za pregled kode, Sourcegraph omogoča, da skočite na definicijo, da natančneje razumete, kako deluje referenčni del kode.

Sourcegraph

Sourcegraph integrira te funkcije navigacije po kodi neposredno v uporabniški vmesnik priljubljenih orodij za pregled kode, kot so GitHub Pull Requests, GitLab Merge Requests in Phabricator, tako da se izkušnja razvijalcev izboljša brez stroškov zamenjave.

Boljši pregledi kode zmanjšujejo napake, podpirajo standarde kakovosti kode in povečujejo širjenje institucionalnega znanja med inženirsko organizacijo.

Sourcegraph Sourcegraph

Naredite velike predelavce izvlečljivimi

Z rastjo baz kod postanejo obsežni predelalci neizogibno ozko grlo za izboljšanje kakovosti kode in uvajanje novih funkcij. Na primer, API skupne knjižnice bo morda treba posodobiti, da bo podpiral novo funkcijo, vendar bo to morda zahtevalo posodobitve na desetine ali celo na stotine odvisnih članov. Število mest v kodi, ki se morajo spremeniti zaradi posodobitve ene skupne odvisnosti, se lahko zlahka razširi na tisoče točk, razporejenih med različne komponente, ki so v lasti različnih skupin.

Sourcegraph razvijalcem ne pomaga le pri razumevanju vpliva refaktorja (tako da jim omogoča iskanje in odkrivanje vseh krajev, kjer se uporablja določena knjižnična funkcija), ponuja tudi napravo za izvajanje refaktorja in upravljanje kampanje naborov sprememb in pregledov kod. Sourcegraph Campaigns je prvo tovrstno orodje, dostopno vsem podjetjem s programsko opremo. Tako kot iskanje izvorne kode tudi Campaigns podpira novo sintakso ujemanja vzorcev Comby, ki je uporabniku bolj prijazna in izrazita kot regularni izrazi.

Sourcegraph

Spodbujajte izmenjavo znanja v svoji organizaciji

Sodobne programske ekipe sodelujejo pri izmenjavi institucionalnega znanja kode. Toda razprava o kodi je pogosto težka iz teh razlogov:

  • Hiperpovezav ne morete deliti z datotekami, ki ste jih odprli v IDE
  • Tradicionalna orodja za ogled kode brskalnika nimajo dobre navigacije po kodi

Sourcegraph ponuja najboljše iz obeh svetov: natančno in natančno krmiljenje kode v spletnem vmesniku. To olajša skupno rabo povezav in prejemnik začne takoj raziskovati in razumeti povezano kodo, brez težav in trenja, da bi jo povlekel v lokalni IDE.

Sourcegraph

Skupna raba povezav kode postane še bolj pomembna za oddaljene inženirske ekipe. Povezave do izvornih grafikonov se dajo na stotine krat na dan prek klepeta, na sledilcih izdaj ter v uradni dokumentaciji in wikijih. Ti postanejo bistveni vodniki znanja, zlasti kadar je nemogoče poklicati kolega na mizo.

Je odprtokodna

Sourcegraph je odprtokodna programska oprema. Sledilnik težav je javen in skupina se zelo odziva na poročila o napakah in zahteve po funkcijah. Sodobni razvijalci programske opreme bi morali dati prednost odprtim orodjem iz istih razlogov, kot so naklonjeni odprtokodnim knjižnicam: temeljno znanje, na katerem temelji vaša programska oprema in ekipa, bi moralo biti odprto za vse, tako da bi vsi lahko razumeli, kako deluje, in vsi bi ga lahko pomagali izboljšati.

Povečajte splošno produktivnost svoje ekipe

Kako lahko programski projekt zaostaja eno leto? En dan naenkrat. Sourcegraph pomaga vaši ekipi, da ostane pred roki, tako da poenostavi vsakodnevne naloge. Razvijalcem omogoča, da zmanjšajo vpliv kontekstnih stikal, ostanejo v toku, hitreje pregledujejo kodo in najdejo odgovor na vprašanja, na primer »Kako to uporabim?« ki jih vsak dan vprašamo več desetkrat. Ta povečanja učinkovitosti se hitro seštevajo.

Spodbujajte sprejemanje novih orodij v celotni organizaciji

Večina uporabnikov Sourcegraph-a ga uporablja večkrat na dan, vendar se veliko orodij za razvijalce uporablja veliko manj pogosto. Za direktorje informacijske tehnologije in direktorje produktivnosti za razvijalce je lahko izziv spodbujati sprejemanje novih orodij.

Nadzorniki opaznosti in zmogljivosti, porazdeljeni sledilniki aplikacij, analizatorji pokritosti kode - to so vsa orodja, ki jih vsi člani vaše ekipe morda ne bodo zlahka odkrili ali dosegli.

Sourcegraph

API razširitve Sourcegraph omogoča neodvisnim orodjem dodajanje pripisov v spletni uporabniški vmesnik Sourcegraph in uporabniški vmesnik kodnih gostiteljev, kot sta GitHub in GitLab. Razširitve obstajajo za priljubljena gotova orodja, kot so Codecov, Datadog in Sentry, notranje ekipe za razvijalce pa lahko ustvarijo zasebne razširitve tudi za interna orodja.

Pospešite vkrcanje novih inženirjev

Vkrcavanje novih inženirjev je lahko težavno, še posebej, če je inženirska organizacija ali kodna baza velika. Sourcegraph skrajša čas med začetnim datumom in prvo odobritvijo, tako da omogoča hitrejše razumevanje obstoječe kode. Novi najemniki večino svojega časa pogosto porabijo za skakanje po neznanih delih kode, da bi ustvarili miselni model kode organizacije. Univerzalna navigacijska koda Sourcegraph-a jim omogoča raziskovanje celotne baze kod z minimalnim preklapljanjem konteksta, možnost skupne rabe povezav pa jim omogoča, da postavljajo posebna vprašanja, ki ne zapravljajo časa starejših inženirjev.

Zmanjšajte odzivni čas

Vsaka minuta šteje, ko se odzovemo na produkcijski incident. Iskanje izvorne kode zmanjša čas, ki je potreben za odpravljanje težave, tako da olajša iskanje sporočil o napakah v izvorni kodi. Pogosto sporočilo o napaki izvira iz odvisnosti navzgor in ga je zato težko najti z orodjem za iskanje IDE ali ukazno vrstico. Sourcegraph indeksira vso kodo, ki je pomembna za vašo organizacijo, in sporočila o napakah takoj najde.

API razširitve Sourcegraph omogoča tudi integracijo orodij devops v Sourcegraph. Na primer, razširitev Sentry prikazuje število opozoril o produkciji, ki jih generira določena vrstica instrumentacijske kode. To zagotavlja dragoceno kontekstualno znanje pri razhroščevanju incidentov.

Sourcegraph

Vzdrževanje in širjenje standardov kakovosti kode

Sourcegraph omogoča organizacijam, da vzdržujejo in širijo standarde kakovosti kode skozi nekaj vektorjev:

  • Učinkovit, a temeljit pregled kode z navigacijo in opisi orodij po izvorni kodi preprečuje združitev nekakovostne kode.
  • Avtomatske preverjalnike kakovosti kode (npr. Codecov) je mogoče vključiti v pregled kode prek API-ja razširitve Sourcegraph. Sourcegraph te opombe doda obstoječemu orodju za pregled kode.
  • Skupna raba povezav kode in navigacija po brskalnikih omogoča razvijalcem, da se sklicujejo na primere vzorcev, ki jih je treba posnemati, in proti vzorce, ki jih je treba odsvetovati.

Izpostavite svojo kodno bazo kot nabor podatkov prek API-ja

Sourcegraph izpostavlja močan API API GraphQL. API uporabljajo notranje ekipe razvijalcev za izdelavo notranjih orodij, ki izkoriščajo zmožnosti Sourcegraph-a, kot so univerzalno iskanje kode, navigacija po kodi in statistika kode. Žetoni dostopa omogočajo zanesljivim orodjem varno overjanje v Sourcegraphu. Sourcegraph je dobavljen z interaktivnim raziskovalcem API-jev, ki olajša učenje in eksperimentiranje z API-jem.

Sourcegraph
$config[zx-auto] not found$config[zx-overlay] not found