Sourcegraph: Universal code zoeken en intelligentie

De hoeveelheid code in de wereld explodeert. Aangezien software de fundamentele motor van innovatie wordt in bijna elke branche, hebben softwareontwikkelaars te maken met grotere, onderling afhankelijke codebases. De meeste organisaties zetten elke dag nieuwe records voor de omvang van hun codebase.

In deze wereld schieten traditionele ontwikkelaarstools zoals editors en IDE's tekort. Ze zijn ontworpen voor individuele ontwikkelaars die aan afzonderlijke stukjes code werken, in plaats van voor softwareteams die op grote schaal grote codebases ontwikkelen. In moderne software-organisaties worden het doorzoeken van enorme codebases, het begrijpen van onbekende code en het delen van institutionele kennis eerste orde zorgen. Softwareteams hebben een tool nodig die deze universele code-intelligentie mogelijk maakt.

Code zoeken moet universeel zijn om effectief te zijn - het moet alle talen, alle repositories, alle code hosts en alle configuratiebestanden omvatten. Zoeken dat beperkt is tot alleen Python of alleen GitHub, is als Google dat alleen websites indexeert die zijn gebouwd met Ruby on Rails of Apache HTTP Server - een niet-starter voor ontwikkelingsteams die werken in het moderne codewereld.

Toonaangevende technologiebedrijven zoals Uber, Lyft en Yelp gebruiken Sourcegraph om dit codewereld te doorbreken. Bedrijven als Google en Facebook hebben honderden miljoenen dollars uitgegeven om interne tools te bouwen die vergelijkbaar zijn met Sourcegraph. GitLab, het codehosting- en devops-bedrijf, heeft onlangs een samenwerking aangekondigd met Sourcegraph om enkele van de functies van Sourcegraph native te integreren in de gebruikersinterface van GitLab.

Belangrijkste redenen om Sourcegraph te gebruiken

Sourcegraph is een ontwikkelaarsplatform dat is ontworpen om de problemen aan te pakken waarmee moderne softwareteams worden geconfronteerd. Sourcegraph pakt kritieke pijnpunten aan die worden gevoeld door software-ingenieurs en technische leiders.

Voor individuele ontwikkelaars zijn hier de belangrijkste redenen om Sourcegraph te gebruiken:

  1. Blijf in flow, vermijd de dood door duizend contextschakelaars
  2. Zoek de naald in de codebase hooiberg
  3. Maak codebeoordelingen snel, grondig en minder pijnlijk - geen TL meer; DR
  4. Leer door voorbeelden in plaats van slechte of niet-bestaande documentatie
  5. Maak grote refactoren en codewijzigingen traceerbaar
  6. Deel en bespreek code eenvoudig, vooral met collega's op afstand
  7. Het is open source

En hier zijn de meest voorkomende redenen waarom technische leiders Sourcegraph introduceren in hun organisatie:

  1. Verhoog de dagelijkse productiviteit van het team
  2. Stimuleer het delen van kennis
  3. Stimuleer de acceptatie van nieuwe tools in de hele organisatie
  4. Versnel de onboarding van nieuwe ingenieurs
  5. Verkort de reactietijd van incidenten
  6. Handhaaf en verspreid codekwaliteitsnormen
  7. Bouw betere interne ontwikkelaarstools met de code-as-data API
  8. Het is gemakkelijk te implementeren en te schalen met uw team en codebase

Blijf in flow

Programmeerproductiviteit sterft vaak een dood door duizend contextschakelaars. Een bekend scenario is er een waarin een ontwikkelaar bezig is met het implementeren van een functie of bugfix, maar plotseling in een ander deel van de codebase moet springen. Misschien moeten ze een bepaalde bibliotheekfunctie opzoeken of uitzoeken hoe ze deze kunnen gebruiken. Misschien heeft een collega een vraag over een ander stuk code. Nu moet de ontwikkelaar die bestanden openen in hun IDE en daarbij hun huidige werkende staat vernietigen, die later pijnlijk zal moeten worden opgeroepen en gereconstrueerd.

Deze onderbrekingen zijn destructief, omdat ze de ontwikkelaar uit Flow State halen en de negatieve impact op de productiviteit aanzienlijk is. Met de browsergebaseerde code-zoek- en verkenningsinterface van Sourcegraph kan een ontwikkelaar zijn editorstatus behouden terwijl hij andere delen van de code verkent. Dit behoud van de werkende staat maakt het wisselen van context veel goedkoper, waardoor individuele ontwikkelaars meer kunnen doen met minder ergernis.

Sourcegraph

Zoek de naalden in de hooiberg

Een veel voorkomende taak in de dagelijkse software-engineering is het opzoeken van een specifieke string of patroon in code. Dit kan een foutmelding zijn die wordt weergegeven in productielogboeken, een antipatroon dat moet worden verwijderd, of gewoon een unieke tekenreeks die de ontwikkelaar associeert met een bepaald interessant punt in de broncode.

Sourcegraph

Het vinden van deze naalden is vaak pijnlijk. IDE's hebben zoekmogelijkheden, maar de code in kwestie kan bestaan ​​buiten wat de IDE heeft geopend. Commandoregel-tools hebben ook geen toegang tot code buiten het lokale bestandssysteem en kunnen lastig te gebruiken zijn. Codehosts zoeken alleen via de code die ze hosten en die zoekopdracht is vaak traag of van lage kwaliteit. Code zoeken moet universeel zijn om effectief te zijn.

Met Sourcegraph kunnen ontwikkelaars code zoeken die hun hele codewereld omvat, met volledige ondersteuning voor reguliere expressies en geavanceerdere patroonafstemming zoals de Comby-syntaxis. De zoekmachine van Sourcegraph is geoptimaliseerd voor broncode, dus het is ongelooflijk snel. Het is ook vanaf de basis ontworpen om op schaal te worden gebracht naar grote codebases en organisaties. Sommige organisaties hebben honderdduizenden repositories, en Sourcegraph brengt ze allemaal binnen handbereik van elke ontwikkelaar.

Met een expressieve en krachtige zoeksyntaxis kan de gebruiker resultaten filteren op bestand, taal, repository en talloze andere kenmerken. Sourcegraph is ook op de hoogte van codesemantiek en maakt het mogelijk om direct naar symbolen te zoeken.

Sourcegraph

Leer door voorbeeld

"Hoe gebruik ik dit?" is een vraag die ontwikkelaars tientallen keren per dag stellen. Vaker wel dan niet, is de beste documentatie een gebruiksvoorbeeld. Met de globale zoekreferentiefunctie van Sourcegraph kan een ontwikkelaar gebruiksvoorbeelden opzoeken in de hele codewereld, zelfs als het ideale gebruiksvoorbeeld in een andere repository bestaat. Dit is vooral handig bij codebases die oud, onbekend of slecht gedocumenteerd zijn.

Voer codebeoordelingen snel en grondig uit

Een veelgehoorde grap over codereview zegt dat als u een wijzigingenset van 10 regels indient, u 10 opmerkingen krijgt, maar als u een wijzigingenset van duizend regels indient, u geen opmerkingen krijgt en een automatische goedkeuring.

Kwaliteitscodebeoordelingen zijn vaak pijnlijk en traag, omdat traditionele tools veel essentiële functies missen om de recensent te helpen bij het snel begrijpen van codewijzigingen. Sourcegraph voegt IDE-achtige codenavigatie en tooltips toe aan de bestaande workflow voor codebeoordeling van ontwikkelaars.

Met Sourcegraph hover-tooltips kan de recensent snel naar functiedefinities en documentatie kijken zonder de wijzigingenset naar een lokale IDE te hoeven slepen. Zonder de codebeoordelingsinterface te verlaten, laat Sourcegraph je naar een definitie springen om beter te begrijpen hoe een stuk code waarnaar wordt verwezen werkt.

Sourcegraph

Sourcegraph integreert deze codenavigatiefuncties rechtstreeks in de gebruikersinterface van populaire tools voor codebeoordeling, zoals GitHub Pull Requests, GitLab Merge Requests en Phabricator, zodat de ontwikkelaarservaring verbetert zonder overstapkosten.

Betere codebeoordelingen verminderen bugs, handhaven codekwaliteitsnormen en vergroten de verspreiding van institutionele kennis binnen de technische organisatie.

Sourcegraph Sourcegraph

Maak grote refactoren traceerbaar

Naarmate codebases groeien, worden grootschalige refactors een onvermijdelijk knelpunt voor het verbeteren van de codekwaliteit en het implementeren van nieuwe functies. De API van een gedeelde bibliotheek moet bijvoorbeeld mogelijk worden bijgewerkt om een ​​nieuwe functie te ondersteunen, maar hiervoor zijn mogelijk updates nodig voor tientallen of zelfs honderden downstream-afhankelijke personen. Het aantal plaatsen in de code dat moet veranderen als gevolg van het bijwerken van een gedeelde afhankelijkheid, kan gemakkelijk oplopen tot duizenden punten, verspreid over verschillende componenten die eigendom zijn van verschillende teams.

Sourcegraph helpt ontwikkelaars niet alleen om de impact van een refactor te begrijpen (door ze alle plaatsen te laten zoeken en ontdekken waar een bepaalde bibliotheekfunctie wordt gebruikt), het biedt ook een apparaat om de refactor uit te voeren en de campagne van wijzigingenets en codebeoordelingen te beheren. Sourcegraph Campaigns is de eerste tool in zijn soort die toegankelijk is voor alle softwarebedrijven. Net als het zoeken naar code in Sourcegraph, ondersteunt Campaigns de nieuwe syntaxis voor het matchen van patronen in Comby, die gebruiksvriendelijker en expressiever is dan reguliere expressies.

Sourcegraph

Stimuleer het delen van kennis binnen uw organisatie

Moderne softwareteams werken samen om institutionele kennis van code te delen. Maar het bespreken van code is om deze redenen vaak moeilijk:

  • U kunt geen hyperlinks delen naar bestanden die u in uw IDE hebt geopend
  • Traditionele hulpprogramma's voor het bekijken van browsercodes hebben geen goede codenavigatie

Sourcegraph biedt het beste van twee werelden: nauwkeurige en nauwkeurige codenavigatie in een webinterface. Dit maakt het zowel gemakkelijk om links te delen als voor de ontvanger om de gekoppelde code onmiddellijk te verkennen en te begrijpen, zonder het gedoe en de wrijving van het naar boven halen in een lokale IDE.

Sourcegraph

Het delen van codekoppelingen wordt nog belangrijker voor technische teams op afstand. Sourcegraph-links worden honderden keren per dag gedeeld via chat, trackers voor problemen en in officiële documentatie en wiki's. Dit worden essentiële kenniskanalen, vooral wanneer het onmogelijk is om een ​​collega aan zijn bureau te laten komen.

Het is open source

Sourcegraph is open source software. De issue tracker is openbaar en het team reageert erg goed op bugrapporten en functieverzoeken. Moderne softwareontwikkelaars zouden de voorkeur moeten geven aan open tools om dezelfde redenen als open source bibliotheken: fundamentele kennis waarop uw software en team zijn gebouwd, moet voor iedereen toegankelijk zijn, zodat iedereen kan begrijpen hoe het werkt en iedereen kan helpen het te verbeteren.

Verhoog de algehele productiviteit van uw team

Hoe loopt een softwareproject een jaar achter? Een dag tegelijk. Sourcegraph helpt uw ​​team om deadlines voor te blijven door dagelijkse taken te stroomlijnen. Het stelt ontwikkelaars in staat de impact van contextwisselingen te minimaliseren, in de flow te blijven, snellere codebeoordelingen uit te voeren en het antwoord te vinden op vragen als "Hoe gebruik ik dit?" die dagelijks tientallen keren worden gevraagd. Deze efficiëntieverhogingen tellen snel op. 

Stimuleer de acceptatie van nieuwe tools in de hele organisatie

De meeste Sourcegraph-gebruikers gebruiken het meerdere keren per dag, maar veel ontwikkelaarstools worden veel minder vaak gebruikt. Het kan een uitdaging zijn voor CIO's en directeuren van Developer Productivity om de acceptatie van nieuwe tools te stimuleren.

Waarneembaarheids- en prestatiemonitors, gedistribueerde applicatietracers, codedekkinganalysatoren - dit zijn allemaal tools die misschien niet gemakkelijk te vinden of toegankelijk zijn voor alle leden van uw team.

Sourcegraph

Met de extensie-API van Sourcegraph kunnen tools van derden annotaties toevoegen aan de Sourcegraph-webinterface en de gebruikersinterface van codehosts zoals GitHub en GitLab. Er zijn extensies voor populaire kant-en-klare tools zoals Codecov, Datadog en Sentry, en interne teams van ontwikkeltools kunnen ook privé-extensies maken voor interne tools.

Versnel de introductie van nieuwe ingenieurs

Het kan een hele klus zijn om nieuwe ingenieurs aan boord te krijgen, vooral als de technische organisatie of codebase groot is. Sourcegraph verkort de tijd tussen de startdatum en de eerste commit door een sneller begrip van bestaande code mogelijk te maken. Nieuwe medewerkers besteden vaak het grootste deel van hun tijd aan het rondspringen in onbekende delen van de codebase om een ​​mentaal model van de code van de organisatie te bouwen. Dankzij de universele codenavigatie van Sourcegraph kunnen ze de hele codebase verkennen met minimale contextwisseling, en door de mogelijkheid om links te delen, kunnen ze specifieke vragen stellen die geen tijdverspilling zijn voor senior engineers.

Verkort de reactietijd van incidenten

Elke minuut telt bij het reageren op een productie-incident. Zoeken met broncode verkort de tijd die nodig is om een ​​probleem te veroorzaken door het gemakkelijk te maken om foutmeldingen in de broncode te vinden. Vaak is het foutbericht afkomstig van een upstream-afhankelijkheid en is het daarom moeilijk te vinden met behulp van een IDE- of opdrachtregelzoekprogramma. Sourcegraph indexeert alle code die relevant is voor uw organisatie en maakt foutmeldingen direct vindbaar.

De Sourcegraph-extensie-API maakt ook de integratie van devops-tools in Sourcegraph mogelijk. De Sentry-extensie geeft bijvoorbeeld het aantal productiewaarschuwingen weer dat een bepaalde regel instrumentatiecode genereert. Dit levert waardevolle contextuele kennis op bij het debuggen van incidenten.

Sourcegraph

Handhaaf en verspreid codekwaliteitsnormen

Sourcegraph stelt organisaties in staat om codekwaliteitsnormen te handhaven en te verspreiden via een paar vectoren:

  • Efficiënte maar grondige codebeoordeling, met Sourcegraph-codenavigatie en tooltips, voorkomt dat code van slechte kwaliteit wordt samengevoegd.
  • Geautomatiseerde code kwaliteitscontroles (bijv. Codecov) kunnen worden geïntegreerd in code review via de Sourcegraph extensie API. Sourcegraph voegt deze annotaties toe aan de bestaande tool voor codebeoordeling.
  • Het delen van codekoppelingen en coderenavigatie in de browser stellen ontwikkelaars in staat te verwijzen naar voorbeelden van patronen die moeten worden geëmuleerd en antipatronen die moeten worden ontmoedigd.

Stel uw codebase bloot als een dataset via API

Sourcegraph stelt een krachtige GraphQL API bloot. De API wordt gebruikt door interne teams van ontwikkeltools om interne tools te bouwen die gebruikmaken van de mogelijkheden van Sourcegraph, zoals universele codezoekopdrachten, codenavigatie en codestatistieken. Toegangstokens zorgen ervoor dat vertrouwde tools veilig kunnen worden geverifieerd bij Sourcegraph. Sourcegraph wordt geleverd met een interactieve API-verkenner, waardoor het gemakkelijk is om te leren en te experimenteren met de API.

Sourcegraph