Programmering

Sourcegraph: Universal kodesøgning og intelligens

Mængden af ​​kode i verden eksploderer. Da software bliver den grundlæggende driver for innovation i næsten alle brancher, finder softwareudviklere sig at håndtere større, mere indbyrdes afhængige kodebaser. De fleste organisationer sætter nye poster for størrelsen på deres codebase hver dag.

I denne verden mangler traditionelle udviklerværktøjer som redaktører og IDE'er. De blev designet til individuelle udviklere, der arbejder på individuelle kodestykker, snarere end til softwareteams, der udvikler store kodebaser i målestok. I moderne softwareorganisationer bliver søgning på tværs af massive kodebaser, forståelse af ukendt kode og deling af institutionel viden bekymringer af første orden. Softwareteams har brug for et værktøj, der muliggør denne universelle kodeintelligens.

Kodesøgning skal være universel for at være effektiv - den skal omfatte alle sprog, alle arkiver, alle kodeværter og alle konfigurationsfiler. Søgning, der kun er begrænset til Python eller kun GitHub, er som Google, der kun indekserer websteder, der er bygget med Ruby on Rails eller Apache HTTP Server - en nonstarter for udviklingsteam, der arbejder i det moderne kodeunivers.

Førende teknologivirksomheder som Uber, Lyft og Yelp bruger Sourcegraph til at kæmpe for dette univers af kode. Virksomheder som Google og Facebook har brugt hundreder af millioner af dollars på at bygge interne værktøjer svarende til Sourcegraph. GitLab, kodehosting- og devopsfirmaet, annoncerede for nylig et partnerskab med Sourcegraph for at integrere nogle af Sourcegraphs funktioner i GitLabs UI.

De vigtigste grunde til at bruge Sourcegraph

Sourcegraph er en udviklerplatform designet til at tackle de problemer, som moderne softwareteam står over for. Sourcegraph adresserer kritiske smertepunkter, der føles af softwareingeniører og ingeniørledere.

Her er de vigtigste grunde til at bruge Sourcegraph for individuelle udviklere:

  1. Bliv i gang, undgå døden ved tusind kontekstskiftere
  2. Find nålen i codebase høstakken
  3. Lav kodebedømmelser hurtigt, grundigt og mindre smertefuldt - ikke mere TL; DR
  4. Lær ved eksempel i stedet for dårlig eller ikke-eksisterende dokumentation
  5. Gør store refaktorer og kodeændringer trækkelige
  6. Del og diskutér kode let, især med eksterne kolleger
  7. Det er open source

Og her er de mest almindelige grunde til, at ingeniørledere introducerer Sourcegraph til deres organisation:

  1. Øg holdets daglige produktivitet
  2. Tilskynd til videndeling
  3. Kør anvendelse af nye værktøjer over hele organisationen
  4. Fremskynd ombordtagningen af ​​nye ingeniører
  5. Reducer hændelsens responstid
  6. Opretholde og sprede kodekvalitetsstandarder
  7. Byg bedre interne udviklerværktøjer med code-as-data API
  8. Det er let at implementere og skalere med dit team og codebase

Bliv i gang

Programmeringsproduktivitet dør ofte ved død med tusind kontekstomskiftere. Et velkendt scenario er et, hvor en udvikler er midt i implementeringen af ​​en funktion eller fejlrettelse, men pludselig har brug for at hoppe ind i en anden del af kodebasen. Måske er de nødt til at slå op på en bestemt biblioteksfunktion eller finde ud af, hvordan de bruger den. Måske har en kollega et spørgsmål om et andet stykke kode. Nu skal udvikleren åbne disse filer i deres IDE og dermed ødelægge deres nuværende arbejdstilstand, som bliver nødt til at blive tilbagekaldt og rekonstrueret senere.

Disse afbrydelser er destruktive, fordi de tager udvikleren ud af Flow State, og den negative indvirkning på produktiviteten er betydelig. Sourcegraphs browserbaserede kodesøgnings- og udforskningsgrænseflade lader en udvikler opretholde deres redaktørtilstand, mens han udforsker andre dele af koden. Denne bevarelse af arbejdstilstanden gør kontekstskifter langt billigere, hvilket gør det muligt for individuelle udviklere at blive mere færdige med mindre forværring.

Sourcegraph

Find nåle i høstakken

En almindelig opgave i den daglige softwareudvikling er at finde en bestemt streng eller et mønster i koden. Dette kan være en fejlmeddelelse, der vises i produktionslogfiler, et antimønster, der skal fjernes, eller simpelthen en unik streng, som udvikleren forbinder med et bestemt interessepunkt i kildekoden.

Sourcegraph

At finde disse nåle er ofte smertefuldt. IDE'er har søgefunktioner, men den pågældende kode kan eksistere uden for hvad IDE har åbnet. Kommandolinjeværktøjer har heller ikke adgang til kode uden for det lokale filsystem og kan være besværlige at bruge. Kodeværter søger kun over den kode, de er vært, og ofte er søgningen langsom eller af lav kvalitet. Kodesøgning skal være universel for at være effektiv.

Med Sourcegraph har udviklere kodesøgning, der spænder over hele deres kodeunivers, med fuld understøttelse af regulære udtryk og mere avanceret mønstermatchning som Comby-syntaksen. Sourcegraphs søgemaskine er optimeret til kildekode, så den er utrolig hurtig. Det blev også designet fra grunden til skalering til store kodebaser og organisationer. Nogle organisationer har hundreder af tusinder af opbevaringssteder, og Sourcegraph sætter dem alle lige ved hver udviklers fingerspidser.

En udtryksfuld og kraftfuld søgningssyntaks giver brugeren mulighed for at filtrere resultater efter fil, sprog, arkiv og utallige andre attributter. Sourcegraph er også opmærksom på kodesemantik og tillader søgning direkte efter symboler.

Sourcegraph

Lær ved eksempel

"Hvordan bruger jeg dette?" er et spørgsmål, som udviklere stiller snesevis af gange om dagen. Oftere end ikke er den bedste dokumentation et brugseksempel. Sourcegraphs globale find-referencefunktion lader en udvikler slå eksempler på brug på tværs af kodeunivers, selvom det ideelle forbrugseksempel findes i et andet lager. Dette er især nyttigt i kodebaser, der er gamle, ukendte eller dårligt dokumenterede.

Lav kodebedømmelser hurtigt og grundigt

Et almindeligt spørgsmål om kodegennemgang siger, at hvis du indsender et 10-linjers ændringssæt, får du 10 kommentarer, men hvis du sender et tusindlinjes ændringssæt, får du ingen kommentarer - og en automatisk godkendelse.

Kvalitetskodevurderinger er ofte smertefulde og langsomme, fordi traditionelle værktøjer mangler mange vigtige funktioner, der hjælper korrekturlæseren med hurtigt at forstå kodeændringer. Sourcegraph tilføjer IDE-lignende kodnavigation og værktøjstip til udvikleres eksisterende workflow for kodevurderinger.

Sourcegraph svæveværktøjstip lader korrekturlæseren hurtigt kigge på funktionsdefinitioner og dokumentation uden at skulle trække ændringssættet ned til en lokal IDE. Uden at forlade kodegennemgangsgrænsefladen giver Sourcegraph dig mulighed for at springe til en definition for mere fuldt ud at forstå, hvordan et refereret stykke kode fungerer.

Sourcegraph

Sourcegraph integrerer disse kodenavigeringsfunktioner direkte i brugergrænsefladen til populære kodevurderingsværktøjer som GitHub Pull Requests, GitLab Merge Requests og Phabricator, så udvikleroplevelsen forbedres uden skiftende omkostninger.

Bedre kodevurderinger reducerer fejl, opretholder kodekvalitetsstandarder og øger spredningen af ​​institutionel viden på tværs af ingeniørorganisationen.

Sourcegraph Sourcegraph

Gør store refaktorer trækkelige

Efterhånden som kodebaser vokser, bliver store refaktorer en uundgåelig flaskehals til forbedring af kodekvalitet og implementering af nye funktioner. For eksempel kan det være nødvendigt, at API'et for et delt bibliotek opdateres for at understøtte en ny funktion, men det kan muligvis kræve opdateringer til snesevis eller endda hundreder af downstream-afhængige. Antallet af steder i koden, der skal ændres som følge af opdatering af en delt afhængighed, kan let balloner til tusindvis af punkter fordelt på forskellige komponenter, der ejes af forskellige hold.

Sourcegraph hjælper ikke kun udviklere med at forstå virkningen af ​​en refaktor (ved at lade dem søge og opdage alle steder, hvor en bestemt biblioteksfunktion bruges), det giver også et apparat til at udføre refaktoren og styre kampagnen med ændringer og kodevurderinger. Sourcegraph Campaigns er det første værktøj af sin art, der er tilgængeligt for alle softwarevirksomheder. Ligesom Sourcegraph-kodesøgning understøtter Kampagner den nye syntaks til matchende mønster, der er mere brugervenlig og udtryksfuld end almindelige udtryk.

Sourcegraph

Tilskynd til videndeling på tværs af din organisation

Moderne softwareteam samarbejder om at dele institutionel viden om kode. Men det er ofte svært at diskutere kode af disse grunde:

  • Du kan ikke dele hyperlinks til filer, du har åbnet i din IDE
  • Traditionelle browserværktøjer til visning af kode har ikke god kodnavigation

Sourcegraph tilbyder det bedste fra begge verdener: præcis og nøjagtig kodnavigation i en webgrænseflade. Dette gør det let både at dele links og for modtageren at begynde at udforske og forstå den tilknyttede kode med det samme uden besværet og friktionen ved at trække den op i en lokal IDE.

Sourcegraph

Deling af kodelinks bliver endnu vigtigere for eksterne ingeniørteams. Sourcegraph-links deles hundreder af gange om dagen via chat, på trackers og i officiel dokumentation og wikier. Disse bliver vigtige ledninger af viden, især når det er umuligt at tilkalde en kollega til sit skrivebord.

Det er open source

Sourcegraph er open source-software. Sporing af problemer er offentlig, og holdet er meget lydhør over for fejlrapporter og funktionsanmodninger. Moderne softwareudviklere bør favorisere åbne værktøjer af de samme grunde, som de favoriserer open source-biblioteker: grundlæggende viden, som din software og dit team er bygget på, skal være åben for alle, så alle kan forstå, hvordan det fungerer, og alle kan hjælpe med at forbedre det.

Øg dit teams samlede produktivitet

Hvordan bliver et softwareprojekt et år bagud? En dag ad gangen. Sourcegraph hjælper dit team med at holde sig inden for deadlines ved at strømline de daglige opgaver. Det lader udviklere minimere virkningen af ​​kontekstskiftere, holde sig i gang, lave hurtigere kodevurderinger og finde svaret på spørgsmål som "Hvordan bruger jeg dette?" der bliver spurgt snesevis af gange hver dag. Disse effektivitetsforøgelser tilføjer hurtigt.

Kør anvendelse af nye værktøjer over hele organisationen

De fleste Sourcegraph-brugere bruger det flere gange om dagen, men mange udviklerværktøjer bruges meget sjældnere. Det kan være en udfordring for CIO'er og direktører for udviklerproduktivitet at drive vedtagelsen af ​​nye værktøjer.

Observations- og ydeevnemonitorer, distribuerede applikationssporere, kodedækningsanalysatorer - alt dette er værktøjer, der muligvis ikke er let at finde eller få adgang til for alle medlemmer af dit team.

Sourcegraph

Sourcegraphs udvidelses-API lader tredjepartsværktøjer tilføje bemærkninger til Sourcegraph web-UI og UI for kodeværter som GitHub og GitLab. Der findes udvidelser til populære almindelige værktøjer som Codecov, Datadog og Sentry, og interne udviklerværktøjshold kan også oprette private udvidelser til interne værktøjer.

Fremskynd ombordtagning af nye ingeniører

Det kan være en kamp med nye ingeniører, især hvis ingeniørorganisationen eller kodebasen er stor. Sourcegraph reducerer tiden mellem startdato og første forpligtelse ved at muliggøre hurtigere forståelse af eksisterende kode. Nyansættelser bruger ofte størstedelen af ​​deres tid på at hoppe rundt i ukendte dele af kodebasen for at opbygge en mental model af organisationens kode. Sourcegraphs universelle kodnavigation giver dem mulighed for at udforske hele kodebasen med minimal kontekstskift, og muligheden for at dele links giver dem mulighed for at stille specifikke spørgsmål, der ikke spilder tid for senioringeniører.

Reducer hændelsens responstid

Hvert minut tæller, når man reagerer på en produktionshændelse. Sourcegraph-kodesøgning reducerer den tid, det tager at rodårsage et problem ved at gøre det let at finde fejlmeddelelser i kildekoden. Ofte stammer fejlmeddelelsen fra en opstrømsafhængighed og er derfor svært at finde ved hjælp af et IDE- eller kommandolinjesøgeværktøj. Sourcegraph indekserer al den kode, der er relevant for din organisation, og gør fejlmeddelelser straks tilgængelige.

Sourcegraph-udvidelses-API'en muliggør også integration af devops-værktøjer i Sourcegraph. For eksempel viser Sentry-udvidelsen antallet af produktionsalarmer, som en bestemt linje med instrumenteringskode genererer. Dette giver værdifuld kontekstuel viden ved fejlfinding af hændelser.

Sourcegraph

Opretholde og sprede kodekvalitetsstandarder

Sourcegraph gør det muligt for organisationer at opretholde og sprede kodekvalitetsstandarder gennem nogle få vektorer:

  • Effektiv, men grundig kodegennemgang med Sourcegraph-kodenavigation og værktøjstip forhindrer, at kode af dårlig kvalitet bliver flettet.
  • Automatiske kodekvalitetscheckere (f.eks. Codecov) kan integreres i kodegennemgang via Sourcegraph-udvidelses-API. Sourcegraph tilføjer disse kommentarer til det eksisterende værktøj til kodegennemgang.
  • Deling af kodelink og kodnavigering i browseren gør det muligt for udviklere at henvise til eksempler på mønstre, der skal emuleres, og modmønstre, der skal modvirkes.

Udsæt din codebase som et datasæt via API

Sourcegraph udsætter en kraftfuld GraphQL API. API'en bruges af interne udviklerværktøjsteams til at opbygge interne værktøjer, der udnytter Sourcegraph-funktioner såsom universel kodesøgning, kodenavigering og kodestatistik. Adgangstokener gør det muligt for pålidelige værktøjer at autentificere til Sourcegraph sikkert. Sourcegraph leveres med en interaktiv API-udforsker, hvilket gør det let at lære og eksperimentere med API'en.

Sourcegraph