Programmering

Sourcegraph: Universal kodesøk og intelligens

Mengden kode i verden eksploderer. Siden programvare blir den grunnleggende driveren for innovasjon i nesten alle bransjer, finner programvareutviklere seg med større, mer gjensidig avhengige kodebaser. De fleste organisasjoner setter nye rekorder for størrelsen på kodebasen hver dag.

I denne verden kommer tradisjonelle utviklerverktøy som redaktører og IDEer til kort. De ble designet for individuelle utviklere som jobber med individuelle kodestykker, snarere enn for programvareteam som utvikler store kodebaser i stor skala. I moderne programvareorganisasjoner blir søk av massive kodebaser, forståelse av ukjent kode og deling av institusjonell kunnskap første orden. Programvareteam trenger et verktøy som muliggjør denne universelle kodeintelligensen.

Kodesøk må være universelt for å være effektivt - det må omfatte alle språk, alle arkiver, alle kodeverter og alle konfigurasjonsfiler. Søk som er begrenset til bare Python eller bare GitHub, er som at Google bare indekserer nettsteder som er bygget med Ruby on Rails eller Apache HTTP Server - en nonstarter for utviklingsteam som jobber i det moderne kodeuniverset.

Ledende teknologiselskaper som Uber, Lyft og Yelp bruker Sourcegraph for å knuse dette universet av kode. Bedrifter som Google og Facebook har brukt hundrevis av millioner dollar på å bygge interne verktøy som ligner på Sourcegraph. GitLab, kodeverten og devops-selskapet, kunngjorde nylig et partnerskap med Sourcegraph for å integrere noen av Sourcegraphs funksjoner i GitLabs UI.

De viktigste grunnene til å bruke Sourcegraph

Sourcegraph er en utviklerplattform designet for å takle problemene moderne programvareteam står overfor. Sourcegraph adresserer kritiske smertepunkter som programvareingeniører og ingeniørledere føler.

Her er de viktigste grunnene til å bruke Sourcegraph for individuelle utviklere:

  1. Hold deg i flyt, unngå døden med tusen kontekstbrytere
  2. Finn nålen i høystakken
  3. Gjør kodevurderinger raskt, grundig og mindre smertefullt - ikke mer TL; DR
  4. Lær ved eksempel i stedet for dårlig eller ikke-eksisterende dokumentasjon
  5. Gjør store refaktorer og kodeendringer spores
  6. Del og diskuter kode enkelt, spesielt med eksterne kolleger
  7. Det er åpen kildekode

Og her er de vanligste årsakene til at ingeniørledere introduserer Sourcegraph for deres organisasjon:

  1. Øk teamets daglige produktivitet
  2. Oppmuntre til kunnskapsdeling
  3. Driv hele organisasjonen til å ta i bruk nye verktøy
  4. Fremskynd ombordstigning av nye ingeniører
  5. Reduser responstid
  6. Opprettholde og spre kvalitetsstandarder
  7. Bygg bedre interne utviklerverktøy med code-as-data API
  8. Det er enkelt å distribuere og skalere med teamet og kodebasen

Hold deg flyt

Programmeringsproduktivitet dør ofte med tusen kontekstbrytere. Et kjent scenario er et der en utvikler er midt i implementeringen av en funksjon eller feilretting, men plutselig trenger å hoppe inn i en annen del av kodebasen. Kanskje de trenger å slå opp en bestemt biblioteksfunksjon eller finne ut hvordan de skal bruke den. Kanskje en kollega har et spørsmål om en annen kode. Nå må utvikleren åpne disse filene i IDE og ødelegge deres nåværende arbeidstilstand, som må gjenopprettes og rekonstrueres senere.

Disse forstyrrelsene er ødeleggende fordi de tar utvikleren ut av Flow State, og den negative innvirkningen på produktiviteten er betydelig. Sourcegraphs nettleserbaserte kodesøk- og utforskingsgrensesnitt lar en utvikler opprettholde redaktørtilstanden mens han utforsker andre deler av koden. Denne bevaringen av arbeidstilstanden gjør kontekstbytter langt billigere, slik at individuelle utviklere får mer gjort med mindre forverring.

Sourcegraph

Finn nålene i høystakken

En vanlig oppgave i den daglige programvareteknikken er å slå opp en bestemt streng eller et mønster i koden. Dette kan være en feilmelding som vises i produksjonslogger, et antimønster som skal fjernes, eller bare en eller annen unik streng som utvikleren knytter til et bestemt interessepunkt i kildekoden.

Sourcegraph

Å finne disse nålene er ofte smertefullt. IDE har søkefunksjoner, men den aktuelle koden kan eksistere utenfor det IDE har åpnet. Kommandolinjeverktøy har heller ikke tilgang til kode utenfor det lokale filsystemet og kan være tungvint å bruke. Kodeverter søker bare over koden de er vert, og ofte er søket langsom eller av lav kvalitet. Kodesøk må være universelt for å være effektivt.

Med Sourcegraph har utviklere kodesøk som spenner over hele kodenes univers, med full støtte for vanlige uttrykk og mer avansert mønstermatching som Comby-syntaksen. Sourcegraphs søkemotor er optimalisert for kildekode, så den er utrolig rask. Den ble også designet fra grunnen av til å skalere til store kodebaser og organisasjoner. Noen organisasjoner har hundretusenvis av arkiver, og Sourcegraph setter dem alle til rette for enhver utvikler.

En uttrykksfull og kraftig søkesyntaks lar brukeren filtrere resultatene etter fil, språk, depot og utallige andre attributter. Sourcegraph er også klar over kodesemantikk og tillater å søke direkte etter symboler.

Sourcegraph

Lær ved eksempel

"Hvordan bruker jeg dette?" er et spørsmål utviklere stiller flere titalls ganger per dag. Oftere enn ikke er den beste dokumentasjonen et brukseksempel. Sourcegraphs globale funnreferansefunksjon lar en utvikler slå opp brukseksempler over hele kodens univers, selv om det ideelle brukseksemplet finnes i et annet depot. Dette er spesielt nyttig i kodebaser som er gamle, ukjente eller dårlig dokumentert.

Gjør kodevurderinger raskt og grundig

Et vanlig spørsmål om kodegjennomgang sier at hvis du sender inn en 10-linjers endringssett, får du 10 kommentarer, men hvis du sender inn tusenlinjesendringssett, får du ingen kommentarer - og en automatisk godkjenning.

Kvalitetskodevurderinger er ofte smertefulle og sakte, fordi tradisjonelle verktøy mangler mange viktige funksjoner for å hjelpe korrekturleseren raskt å forstå kodeendringene. Sourcegraph legger til IDE-lignende kodenavigering og verktøytips til utviklerens eksisterende arbeidsflyt for kodegjennomgang.

Sourcegraph hover tooltips lar korrekturleseren raskt kikke på funksjonsdefinisjoner og dokumentasjon uten å måtte trekke ned endringssettet til en lokal IDE. Uten å forlate grensesnittet for kodegjennomgang, lar Sourcegraph deg hoppe til en definisjon for å forstå mer fullstendig hvordan et referert stykke kode fungerer.

Sourcegraph

Sourcegraph integrerer disse kodenavigeringsfunksjonene direkte i brukergrensesnittet til populære kodeverktøy som GitHub Pull Requests, GitLab Merge Requests og Phabricator, slik at utvikleropplevelsen forbedres uten noen byttekostnad.

Bedre kodevurderinger reduserer feil, opprettholder kodekvalitetsstandarder og øker spredningen av institusjonell kunnskap på tvers av ingeniørorganisasjonen.

Sourcegraph Sourcegraph

Gjør store refaktorer trekkbare

Etter hvert som kodebaser vokser, blir store refaktorer en uunngåelig flaskehals for å forbedre kodekvaliteten og implementere nye funksjoner. For eksempel kan det hende at API for et delt bibliotek må oppdateres for å støtte en ny funksjon, men å gjøre det kan kreve oppdateringer til dusinvis eller hundrevis av nedstrøms avhengige. Antall steder i koden som må endres som et resultat av oppdatering av en delt avhengighet, kan lett balloner til tusenvis av poeng fordelt på forskjellige komponenter som eies av forskjellige lag.

Sourcegraph hjelper ikke bare utviklere til å forstå effekten av en refaktor (ved å la dem søke og oppdage alle steder en bestemt biblioteksfunksjon brukes), den gir også et apparat for å utføre refaktoren og administrere kampanjen med endringssett og kodevurderinger. Sourcegraph Campaigns er det første verktøyet i sitt slag som er tilgjengelig for alle programvareforetak. I likhet med Sourcegraph-kodesøk støtter Campaigns den nye syntaxen for Comby-mønster, som er mer brukervennlig og uttrykksfull enn vanlige uttrykk.

Sourcegraph

Oppmuntre kunnskapsdeling i hele organisasjonen

Moderne programvareteam samarbeider om å dele institusjonell kunnskap om kode. Men å diskutere kode er ofte vanskelig av disse grunnene:

  • Du kan ikke dele hyperkoblinger til filer du har åpnet i IDE
  • Tradisjonelle nettleserverktøy for koder har ikke god kodenavigering

Sourcegraph tilbyr det beste fra begge verdener: presis og nøyaktig kodenavigering i et webgrensesnitt. Dette gjør det enkelt både å dele lenker og for mottakeren å begynne å utforske og forstå den tilknyttede koden umiddelbart, uten bryet og friksjonen med å trekke den opp i en lokal IDE.

Sourcegraph

Deling av kodekoblinger blir enda viktigere for eksterne ingeniørteam. Sourcegraph-lenker deles hundrevis av ganger per dag over chat, på trackers og i offisiell dokumentasjon og wikier. Disse blir viktige ledninger for kunnskap, spesielt når det er umulig å tilkalle en kollega til skrivebordet.

Det er åpen kildekode

Sourcegraph er programvare med åpen kildekode. Problemsporeren er offentlig, og teamet er veldig lydhørt overfor feilrapporter og funksjonsforespørsler. Moderne programvareutviklere bør favorisere åpne verktøy av samme grunner som de favoriserer åpen kildekode-biblioteker: grunnleggende kunnskap som programvaren og teamet ditt bygger på, skal være åpent for alle, slik at alle kan forstå hvordan det fungerer, og alt kan bidra til å forbedre det.

Øk teamets samlede produktivitet

Hvordan får et programvareprosjekt til å ligge et år etter? Én dag av gangen. Sourcegraph hjelper teamet ditt å holde deg foran frister ved å effektivisere de daglige oppgavene. Det lar utviklere minimere effekten av kontekstbrytere, holde seg i gang, gjøre raskere kodevurderinger og finne svaret på spørsmål som "Hvordan bruker jeg dette?" som blir spurt dusinvis av ganger hver dag. Denne effektiviteten øker raskt.

Driv hele organisasjonen til å ta i bruk nye verktøy

De fleste Sourcegraph-brukere bruker den flere ganger om dagen, men mange utviklerverktøy brukes mye sjeldnere. Det kan være en utfordring for CIO og direktører for utviklerproduktivitet å drive adopsjon av nye verktøy.

Observasjons- og ytelsesmonitorer, distribuerte applikasjonssporere, kodedekningsanalysatorer - alt dette er verktøy som kanskje ikke er lett å oppdage eller tilgjengelig for alle medlemmer av teamet ditt.

Sourcegraph

Sourcegraphs utvidelses-API lar tredjepartsverktøy legge til merknader i Sourcegraph web UI og UI for kodeverter som GitHub og GitLab. Det finnes utvidelser for populære hylleverktøy som Codecov, Datadog og Sentry, og interne utviklerverktøyteam kan også lage private utvidelser for interne verktøy.

Få fart på nye ingeniører

Det kan være en kamp å ta ombord nye ingeniører, spesielt hvis ingeniørorganisasjonen eller kodebasen er stor. Sourcegraph reduserer tiden mellom startdato og første forpliktelse ved å muliggjøre raskere forståelse av eksisterende kode. Nyansatte bruker ofte mesteparten av tiden på å hoppe rundt ukjente deler av kodebasen for å bygge en mental modell av organisasjonens kode. Sourcegraphs universelle kodenavigering lar dem utforske hele kodebasen med minimal kontekstbytte, og muligheten til å dele lenker lar dem stille spesifikke spørsmål som ikke kaster bort tiden til senioringeniører.

Reduser responstid

Hvert minutt teller når du svarer på en produksjonshendelse. Sourcegraph-kodesøk reduserer tiden det tar å forårsake et problem ved å gjøre det enkelt å finne feilmeldinger i kildekoden. Ofte kommer feilmeldingen fra en oppstrømsavhengighet og er derfor vanskelig å finne ved hjelp av et IDE- eller kommandolinje-søkeverktøy. Sourcegraph indekserer all koden som er relevant for organisasjonen din, og gjør feilmeldinger umiddelbart tilgjengelige.

API for Sourcegraph-utvidelse muliggjør også integrering av devops-verktøy i Sourcegraph. For eksempel viser Sentry-utvidelsen antall produksjonsvarsler en bestemt linje med instrumenteringskode genererer. Dette gir verdifull kontekstuell kunnskap når du feilsøker hendelser.

Sourcegraph

Opprettholde og spre kvalitetsstandarder

Sourcegraph gjør det mulig for organisasjoner å opprettholde og spre kodekvalitetsstandarder gjennom noen få vektorer:

  • Effektiv, men grundig kodegjennomgang med Sourcegraph-kodenavigering og verktøytips, forhindrer at dårlig kvalitet blir slått sammen.
  • Automatiske kodekvalitetssjekkere (f.eks. Codecov) kan integreres i kodegjennomgang via Sourcegraph-utvidelses-API. Sourcegraph legger til disse merknadene i det eksisterende verktøyet for gjennomgang av kode.
  • Deling av kodekoblinger og navigering av koder i nettleseren gjør det mulig for utviklere å referere til eksempler på mønstre som skal emuleres og motmønstre som motvirkes.

Eksponere kodebasen din som et datasett via API

Sourcegraph avslører et kraftig GraphQL API. API-et brukes av interne utviklerverktøyteam for å bygge interne verktøy som utnytter Sourcegraph-funksjoner som universell kodesøking, kodenavigering og kodestatistikk. Tilgangstokener gjør det mulig for pålitelige verktøy å autentisere seg til Sourcegraph på en sikker måte. Sourcegraph leveres med en interaktiv API-utforsker, noe som gjør det enkelt å lære og eksperimentere med API.

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