Programování

Sourcegraph: Univerzální vyhledávání kódu a inteligence

Množství kódu na světě exploduje. Jelikož se software stává základním motorem inovací téměř v každém průmyslovém odvětví, vývojáři softwaru se potýkají s většími a vzájemně závislými základnami kódů. Většina organizací každý den nastavuje nové záznamy o velikosti své kódové základny.

V tomto světě tradiční vývojářské nástroje, jako jsou editory a IDE, zaostávají. Byly navrženy pro jednotlivé vývojáře pracující na jednotlivých částech kódu, nikoli pro softwarové týmy vyvíjející rozsáhlé databáze v měřítku. V moderních softwarových organizacích se vyhledávání v obrovských databázích kódů, porozumění neznámému kódu a sdílení institucionálních znalostí stávají obavami prvního řádu. Softwarové týmy potřebují nástroj, který umožňuje tuto univerzální inteligenci kódu.

Hledání kódu musí být univerzální, aby bylo efektivní - musí zahrnovat všechny jazyky, všechna úložiště, všechny hostitele kódu a všechny konfigurační soubory. Vyhledávání, které je omezeno pouze na Python nebo pouze na GitHub, je jako Google indexovat pouze weby vytvořené pomocí Ruby on Rails nebo Apache HTTP Server - což není startér pro vývojové týmy, které pracují v moderním vesmíru kódu.

Přední technologické společnosti, jako jsou Uber, Lyft a Yelp, používají Sourcegraph k hádce s tímto vesmírem kódu. Společnosti jako Google a Facebook utratily stovky milionů dolarů za vybudování interních nástrojů podobných Sourcegraph. Společnost GitLab, společnost poskytující kódovací a devopsová řešení, nedávno oznámila partnerství se společností Sourcegraph, aby mohla nativně integrovat některé funkce Sourcegraph do uživatelského rozhraní GitLab.

Hlavní důvody pro použití Sourcegraph

Sourcegraph je vývojářská platforma určená k řešení problémů moderních softwarových týmů. Sourcegraph řeší kritické body bolesti, které pociťují softwaroví inženýři a vedoucí inženýři.

Pro jednotlivé vývojáře jsou zde hlavní důvody, proč používat Sourcegraph:

  1. Zůstaňte v pohybu a vyhněte se smrti tisíci kontextovými přepínači
  2. Najděte jehlu v kupce sena codebase
  3. Provádějte kontroly kódu rychle, důkladně a méně bolestivě - už žádné TL; DR
  4. Naučte se příkladem místo špatné nebo neexistující dokumentace
  5. Provádějte velké refaktory a změny kódu
  6. Snadno sdílejte a diskutujte o kódu, zejména se vzdálenými kolegy
  7. Je to otevřený zdroj

A zde jsou nejčastější důvody, proč techničtí vůdci zavádějí Sourcegraph do své organizace:

  1. Zvyšte každodenní produktivitu týmu
  2. Podporujte sdílení znalostí
  3. Podpořte přijetí nových nástrojů v celé organizaci
  4. Urychlete nástup nových inženýrů
  5. Zkraťte dobu odezvy na incident
  6. Udržujte a rozšiřujte standardy kvality kódu
  7. Vytvářejte lepší interní vývojářské nástroje pomocí rozhraní API kódu jako data
  8. Je snadné nasadit a škálovat se svým týmem a základnou kódů

Zůstaňte v pohybu

Programovací produktivita často umírá smrtí tisíců kontextových přepínačů. Známým scénářem je scénář, kdy je vývojář uprostřed implementace funkce nebo opravy chyby, ale najednou potřebuje skočit do jiné části kódové základny. Možná potřebují vyhledat určitou knihovní funkci nebo zjistit, jak ji používat. Možná má kolega otázku ohledně nějaké jiné části kódu. Nyní musí vývojář otevřít tyto soubory ve svém IDE a tím zničit jejich aktuální pracovní stav, který bude muset být bolestně odvolán a rekonstruován později.

Tato přerušení jsou destruktivní, protože vyvedou vývojáře ze stavu toku a negativní dopad na produktivitu je značný. Rozhraní pro vyhledávání a průzkum kódu v prohlížeči Sourcegraph umožňuje vývojářům udržovat stav editoru při zkoumání dalších částí kódu. Díky tomuto zachování funkčního stavu jsou kontextové přepínače mnohem méně nákladné a umožňují jednotlivým vývojářům zvládnout více práce s menším zhoršením.

Sourcegraph

Najděte jehly v kupce sena

Běžným úkolem v každodenním softwarovém inženýrství je vyhledání konkrétního řetězce nebo vzoru v kódu. Může to být chybová zpráva, která se zobrazuje v produkčních protokolech, anti-vzor, ​​který by měl být odstraněn, nebo prostě nějaký jedinečný řetězec, který vývojář přidruží ke konkrétnímu bodu zájmu ve zdrojovém kódu.

Sourcegraph

Nalezení těchto jehel je často bolestivé. IDE mají možnosti vyhledávání, ale dotyčný kód může existovat mimo to, co IDE otevřelo. Nástroje příkazového řádku také nemají přístup k kódu mimo místní souborový systém a jejich použití může být obtížné. Hostitelé kódu prohledávají pouze kód, který hostují, a toto vyhledávání je často pomalé nebo nekvalitní. Hledání kódu musí být univerzální, aby bylo efektivní.

Díky Sourcegraph mají vývojáři hledání kódu, které pokrývá celý jejich vesmír kódu, s plnou podporou regulárních výrazů a pokročilejším porovnáváním vzorů, jako je Combyova syntaxe. Vyhledávací stroj Sourcegraph je optimalizován pro zdrojový kód, takže je neuvěřitelně rychlý. Byl také od základu navržen tak, aby se mohl rozšířit na velké kódové základny a organizace. Některé organizace mají stovky tisíc úložišť a Sourcegraph je poskytuje všem vývojářům na dosah ruky.

Expresivní a výkonná syntaxe vyhledávání umožňuje uživateli filtrovat výsledky podle souboru, jazyka, úložiště a mnoha dalších atributů. Sourcegraph si je vědom i sémantiky kódu a umožňuje přímo vyhledávat symboly.

Sourcegraph

Učte se příkladem

"Jak to mohu použít?" je otázka, kterou se vývojáři ptají desítkykrát denně. Nejlepší dokumentace je častěji příkladem použití. Funkce globálního hledání referencí Sourcegraph umožňuje vývojáři vyhledávat příklady použití napříč vesmírem kódu, i když ideální příklad použití existuje v jiném úložišti. To je užitečné zejména v základech kódů, které jsou staré, neznámé nebo špatně zdokumentované.

Rychlá a důkladná kontrola kódu

Běžný citát o kontrole kódu říká, že pokud odešlete sadu změn s 10 řádky, dostanete 10 komentářů, ale pokud odešlete sadu změn s tisíci řádky, nedostanete žádné komentáře - a automatické schválení.

Recenze kvalitního kódu jsou často bolestivé a pomalé, protože tradičním nástrojům chybí mnoho základních funkcí, které recenzentovi pomohou rychle pochopit změny kódu. Sourcegraph přidává do stávajícího pracovního postupu pro kontrolu kódu vývojářům navigaci v kódu a popisy IDE.

Popisky při najetí myší na Sourcegraph umožňují recenzentovi rychle nahlédnout do definic funkcí a dokumentace, aniž by museli stahovat sadu změn do místního IDE. Bez opuštění rozhraní pro kontrolu kódu vám Sourcegraph umožňuje přejít na definici, abyste lépe pochopili, jak funguje odkazovaná část kódu.

Sourcegraph

Sourcegraph integruje tyto funkce navigace po kódu přímo do uživatelského rozhraní populárních nástrojů pro kontrolu kódu, jako jsou GitHub Pull Requests, GitLab Merge Requests a Phabricator, takže vývojářská zkušenost se zlepší bez jakýchkoli nákladů na přepínání.

Lepší kontroly kódu snižují chyby, udržují standardy kvality kódu a zvyšují šíření institucionálních znalostí napříč inženýrskou organizací.

Sourcegraph Sourcegraph

Umožněte velkým refaktorům, aby byly použitelné

Jak rostou základny kódů, velcí refaktori se stávají nevyhnutelným překážkou zlepšování kvality kódu a implementace nových funkcí. Například rozhraní API sdílené knihovny může být nutné aktualizovat, aby podporovalo novou funkci, ale může to vyžadovat aktualizace desítek nebo dokonce stovek následných závislých osob. Počet míst v kódu, která se musí změnit v důsledku aktualizace jedné sdílené závislosti, lze snadno nafouknout na tisíce bodů rozložených napříč různými komponentami vlastněnými různými týmy.

Sourcegraph nejen pomáhá vývojářům v porozumění dopadu refaktoru (tím, že jim umožňuje prohledávat a objevovat všechna místa, kde se konkrétní funkce knihovny používá), ale také poskytuje aparát pro provádění refaktoru a správu kampaně sad změn a kontroly kódu. Sourcegraph Campaigns je první nástroj svého druhu přístupný všem softwarovým podnikům. Stejně jako vyhledávání kódu Sourcegraph podporuje i Campaigns novou syntaxi shody vzorů Comby, která je uživatelsky přívětivější a expresivnější než regulární výrazy.

Sourcegraph

Podporujte sdílení znalostí ve vaší organizaci

Moderní softwarové týmy spolupracují na sdílení institucionálních znalostí kódu. Diskuse o kódu je ale často těžká z těchto důvodů:

  • Nelze sdílet hypertextové odkazy na soubory, které máte otevřené ve svém IDE
  • Tradiční nástroje pro prohlížení kódu prohlížeče nemají dobrou navigaci v kódu

Sourcegraph nabízí to nejlepší z obou světů: přesnou a přesnou navigaci v kódu ve webovém rozhraní. To usnadňuje jak sdílení odkazů, tak příjemci okamžité prozkoumání a porozumění propojeného kódu, bez potíží a tření s jeho vytahováním v místním IDE.

Sourcegraph

Sdílení vzdálených odkazů se stává ještě důležitějším pro týmy vzdáleného inženýrství. Odkazy na Sourcegraph jsou sdíleny stokrát denně přes chat, na trackerech problémů a v oficiální dokumentaci a wiki. Tito se stávají základními kanály znalostí, zvláště když není možné přivolat kolegu k jednomu stolu.

Je to otevřený zdroj

Sourcegraph je software s otevřeným zdrojovým kódem. Sledovač problémů je veřejný a tým velmi reaguje na hlášení chyb a požadavky na funkce. Moderní vývojáři softwaru by měli upřednostňovat otevřené nástroje ze stejných důvodů, jaké upřednostňují knihovny s otevřeným zdrojovým kódem: základní znalosti, na nichž je váš software a tým postaven, by měly být otevřené všem, aby všichni mohli rozumět tomu, jak to funguje, a všichni by to mohli pomoci vylepšit.

Zvyšte celkovou produktivitu svého týmu

Jak může být softwarový projekt pozadu o rok? Jeden den najednou. Sourcegraph pomáhá vašemu týmu udržet si náskok před termíny tím, že zefektivňuje každodenní úkoly. Umožňuje vývojářům minimalizovat dopad kontextových přepínačů, zůstat v pohybu, provádět rychlejší kontroly kódu a najít odpověď na otázky typu „Jak to mohu použít?“ které jsou denně žádány desítkykrát. Tato účinnost se rychle zvyšuje.

Podpořte přijetí nových nástrojů v celé organizaci

Většina uživatelů Sourcegraph ji používá několikrát denně, ale mnoho vývojářských nástrojů se používá mnohem méně často. Pro CIO a ředitele produktivity vývojářů může být výzva prosazovat přijetí nových nástrojů.

Monitorovatelnost sledovatelnosti a výkonu, sledovače distribuovaných aplikací, analyzátory pokrytí kódu - to jsou všechny nástroje, které nemusí být snadno zjistitelné nebo přístupné všem členům vašeho týmu.

Sourcegraph

Rozhraní API Sourcegraph umožňuje nástrojům třetích stran přidávat poznámky do webového uživatelského rozhraní Sourcegraph a uživatelského rozhraní hostitelů kódů, jako jsou GitHub a GitLab. Rozšíření existují pro oblíbené běžné nástroje, jako jsou Codecov, Datadog a Sentry, a týmy interních vývojářských nástrojů mohou vytvářet soukromé rozšíření i pro vlastní nástroje.

Urychlete nástup nových inženýrů

Může být obtížné zapojit nové inženýry, zvláště pokud je technická organizace nebo základna kódů velká. Sourcegraph zkracuje čas mezi datem zahájení a prvním potvrzením umožněním rychlejšího pochopení existujícího kódu. Noví najímači často tráví většinu času skákáním po neznámých částech základny kódu, aby si vytvořili mentální model kódu organizace. Univerzální navigace v kódu Sourcegraph jim umožňuje prozkoumat celou základnu kódu s minimálním přepínáním kontextu a schopnost sdílet odkazy jim umožňuje klást konkrétní otázky, které neztrácejí čas vyšším technikům.

Zkraťte dobu odezvy na incident

Při reakci na produkční incident se počítá každá minuta. Hledání zdrojového kódu snižuje čas potřebný k odstranění příčiny problému tím, že usnadňuje vyhledání chybových zpráv ve zdrojovém kódu. Chybová zpráva často pochází ze závislosti na proudu a je proto těžké ji najít pomocí IDE nebo vyhledávacího nástroje příkazového řádku. Sourcegraph indexuje veškerý kód relevantní pro vaši organizaci a umožňuje okamžité vyhledání chybových zpráv.

Rozhraní API pro Sourcegraph umožňuje také integraci nástrojů devops do Sourcegraph. Například rozšíření Sentry zobrazuje počet výrobních výstrah, které generuje konkrétní řádek kódu instrumentace. To poskytuje cenné kontextové znalosti při ladění incidentů.

Sourcegraph

Udržujte a rozšiřujte standardy kvality kódu

Sourcegraph umožňuje organizacím udržovat a šířit standardy kvality kódu prostřednictvím několika vektorů:

  • Efektivní, ale důkladná kontrola kódu, s navigací kódu Sourcegraph a popisy nástrojů, zabrání sloučení nekvalitního kódu.
  • Automatizované kontroly kvality kódu (např. Codecov) lze integrovat do kontroly kódu pomocí rozhraní API pro rozšíření Sourcegraph. Sourcegraph přidává tyto anotace do stávajícího nástroje pro kontrolu kódu.
  • Sdílení odkazů na kód a navigace v kódu v prohlížeči umožňují vývojářům odkazovat na příklady vzorů, které mají být emulovány, a anti-vzorů, které mají být odrazovány.

Vystavte svou základnu kódů jako datovou sadu prostřednictvím rozhraní API

Sourcegraph odhaluje výkonné GraphQL API. Rozhraní API používají týmy interních vývojářských nástrojů k vytváření interních nástrojů, které využívají možnosti Sourcegraph, jako je univerzální vyhledávání kódu, navigace v kódu a statistiky kódu. Přístupové tokeny umožňují důvěryhodným nástrojům bezpečně se autentizovat u Sourcegraph. Sourcegraph je dodáván s interaktivním průzkumníkem API, což usnadňuje učení a experimentování s API.

Sourcegraph