Programovanie

Sourcegraph: Univerzálne vyhľadávanie kódu a inteligencia

Množstvo kódu na svete exploduje. Pretože sa softvér stáva základnou hnacou silou inovácií takmer v každom priemysle, vývojári softvéru sa stretávajú s väčšími a vzájomne prepojenými databázami kódov. Väčšina organizácií každý deň vytvára nové záznamy o veľkosti svojej kódovej základne.

V tomto svete tradičné vývojárske nástroje, ako sú editory a IDE, zaostávajú. Boli určené skôr pre individuálnych vývojárov pracujúcich na jednotlivých častiach kódu, ako pre softvérové ​​tímy vyvíjajúce rozsiahle databázy v širšom meradle. V moderných softvérových organizáciách sa hľadanie v masívnych databázach kódov, pochopenie neznámeho kódu a zdieľanie inštitucionálnych znalostí stávajú prvoradými problémami. Softvérové ​​tímy potrebujú nástroj, ktorý umožní túto univerzálnu inteligenciu kódu.

Hľadanie kódu musí byť univerzálne, aby bolo efektívne - musí obsahovať všetky jazyky, všetky úložiská, všetkých hostiteľov kódu a všetky konfiguračné súbory. Vyhľadávanie, ktoré je obmedzené iba na Python alebo iba na GitHub, je ako Google indexovanie iba webových stránok vytvorených pomocou Ruby on Rails alebo Apache HTTP Server - čo nie je štartér pre vývojové tímy pracujúce v modernom vesmíre kódu.

Popredné technologické spoločnosti ako Uber, Lyft a Yelp používajú Sourcegraph na sprisahanie tohto vesmíru kódu. Spoločnosti ako Google a Facebook minuli stovky miliónov dolárov na vybudovanie interných nástrojov podobných Sourcegraph. Spoločnosť GitLab, spoločnosť zaoberajúca sa kódovaním a vývojom kódov, nedávno oznámila partnerstvo so spoločnosťou Sourcegraph s cieľom natívnej integrácie niektorých funkcií Sourcegraph do používateľského rozhrania spoločnosti GitLab.

Hlavné dôvody prečo používať Sourcegraph

Sourcegraph je vývojárska platforma určená na riešenie problémov moderných softvérových tímov. Sourcegraph sa zameriava na kritické body bolesti, ktoré pociťujú softvéroví inžinieri a vedúci inžinierstva.

Pre jednotlivých vývojárov sú tu hlavné dôvody pre použitie Sourcegraph:

  1. Zostaňte v toku, vyhnite sa smrti tisíckami kontextových prepínačov
  2. Nájdite ihlu v kope sena s kódovým základom
  3. Zabezpečte rýchle, dôkladné a menej bolestivé kontroly kódu - už žiadne TL; DR
  4. Namiesto zlej alebo neexistujúcej dokumentácie sa učte príkladom
  5. Vykonajte veľké refaktory a zmeny kódu
  6. Ľahko zdieľajte a diskutujte o kóde, najmä so vzdialenými kolegami
  7. Je to otvorený zdroj

A tu sú najčastejšie dôvody, prečo technickí lídri zavádzajú Sourcegraph do svojej organizácie:

  1. Zvyšujte každodennú produktivitu tímu
  2. Podporujte zdieľanie vedomostí
  3. Podporte prijatie nových nástrojov v celej organizácii
  4. Urýchliť nástup nových inžinierov
  5. Skráťte čas odozvy na incident
  6. Udržiavať a rozširovať štandardy kvality kódu
  7. Vytvárajte lepšie interné vývojárske nástroje pomocou rozhrania API typu kód ako dáta
  8. Je ľahké ho nasadiť a škálovať pomocou svojho tímu a základne kódov

Zostaňte v toku

Produktivita programovania často zomrie na smrť tisíckami prepínačov kontextu. Známy je scenár, v ktorom je vývojár práve uprostred implementácie funkcie alebo opravy chyby, ale zrazu musí skočiť do inej časti kódovej základne. Možno budú musieť vyhľadať určitú funkciu knižnice alebo zistiť, ako ju používať. Možno má kolega otázku o nejakom ďalšom kóde. Teraz musí vývojár otvoriť tieto súbory v ich IDE a pritom zničiť ich súčasný funkčný stav, ktorý bude musieť byť neskôr bolestivo vyvolaný a zrekonštruovaný.

Tieto prerušenia sú deštruktívne, pretože vedú vývojára zo stavu toku a negatívny dopad na produktivitu je značný. Rozhranie na vyhľadávanie a prieskum kódu založené na prehliadači Sourcegraph umožňuje vývojárovi udržiavať stav editora pri skúmaní ďalších častí kódu. Vďaka tomuto zachovaniu funkčného stavu sú zmeny kontextu oveľa lacnejšie a jednotliví vývojári tak môžu pracovať s menším zhoršením.

Sourcegraph

Nájdite ihly v kope sena

Bežnou úlohou v každodennom softvérovom inžinierstve je vyhľadanie konkrétneho reťazca alebo vzoru v kóde. Môže to byť chybová správa, ktorá sa zobrazuje v produkčných denníkoch, anti-vzor, ​​ktorý by sa mal odstrániť, alebo iba jedinečný reťazec, ktorý vývojár spojí s konkrétnym bodom záujmu v zdrojovom kóde.

Sourcegraph

Nájsť tieto ihly je často bolestivé. IDE majú možnosti vyhľadávania, ale príslušný kód môže existovať mimo toho, čo IDE otvorilo. Nástroje príkazového riadku tiež nemajú prístup k kódu mimo lokálneho súborového systému a ich použitie môže byť nepríjemné. Hostitelia kódu vyhľadávajú iba pomocou kódu, ktorý hostia, a toto vyhľadávanie je často pomalé alebo nekvalitné. Hľadanie kódu musí byť univerzálne, aby bolo efektívne.

V aplikácii Sourcegraph majú vývojári možnosť vyhľadávať kódy, ktoré pokrývajú celý ich vesmír kódu, s plnou podporou regulárnych výrazov a pokročilejším porovnávaním vzorov, ako je napríklad Combyho syntax. Vyhľadávač Sourcegraph je optimalizovaný pre zdrojový kód, takže je neuveriteľne rýchly. Bol tiež navrhnutý od základu až k rozsahu pre veľké databázy a organizácie. Niektoré organizácie majú státisíce úložísk a Sourcegraph ich poskytuje všetkým vývojárom na dosah ruky.

Expresívna a výkonná syntax vyhľadávania umožňuje používateľovi filtrovať výsledky podľa súborov, jazykov, archívov a mnohých ďalších atribútov. Sourcegraph si je tiež vedomý sémantiky kódu a umožňuje vyhľadávať symboly priamo.

Sourcegraph

Učte sa príkladom

"Ako to môžem použiť?" je otázka, ktorú si vývojári kladú tuctykrát za deň. Najčastejšou dokumentáciou je príklad použitia. Funkcia globálnych hľadacích referencií Sourcegraph umožňuje vývojárovi vyhľadávať príklady použitia v celom vesmíre kódu, aj keď ideálny príklad použitia existuje v inom úložisku. To je obzvlášť užitočné v prípade kódových báz, ktoré sú staré, neznáme alebo zle zdokumentované.

Urobte recenzie kódu rýchle a dôkladné

Bežný citát o kontrole kódu hovorí, že ak zadáte desaťriadkovú sadu zmien, získate 10 komentárov, ale ak zadáte tisícriadkovú sadu zmien, nebudete mať žiadne komentáre - a automatické schválenie.

Kontroly kvalitného kódu sú často bolestivé a pomalé, pretože tradičným nástrojom chýba veľa základných funkcií, ktoré by recenzentom pomohli rýchlo pochopiť zmeny kódu. Sourcegraph pridáva navigáciu a popisy kódov podobných IDE do existujúceho pracovného toku vývojárov v oblasti kontroly kódu.

Popisy ukazovateľa myši na Sourcegraph umožňujú recenzentovi rýchlo nahliadnuť do definícií funkcií a dokumentácie bez toho, aby museli sťahovať sadu zmien do miestneho IDE. Bez opustenia rozhrania na kontrolu kódu vám Sourcegraph umožní prejsť na definíciu, aby ste lepšie pochopili, ako funguje odkazovaná časť kódu.

Sourcegraph

Sourcegraph integruje tieto funkcie navigácie po kódoch priamo do používateľského rozhrania populárnych nástrojov na kontrolu kódu, ako sú GitHub Pull Requests, GitLab Merge Requests a Phabricator, takže vývojársky zážitok sa zlepšuje bez akýchkoľvek nákladov na prepínanie.

Lepšie kontroly kódu znižujú chyby, dodržiavajú štandardy kvality kódu a zvyšujú šírenie inštitucionálnych znalostí v technickej organizácii.

Sourcegraph Sourcegraph

Urobte veľké refaktory príťažlivými

S rastom báz kódov sa veľkí refaktori stávajú nevyhnutným úzkym miestom pri zlepšovaní kvality kódu a implementácii nových funkcií. Môže byť napríklad potrebné aktualizovať rozhranie API zdieľanej knižnice, aby podporovalo novú funkciu, ale môže to vyžadovať aktualizácie pre desiatky alebo dokonca stovky závislých závislých osôb. Počet miest v kóde, ktoré sa musia zmeniť v dôsledku aktualizácie jednej zdieľanej závislosti, sa dá ľahko nafúknuť na tisíce bodov rozložených v rôznych komponentoch vlastnených rôznymi tímami.

Sourcegraph pomáha vývojárom nielen porozumieť dopadu refaktora (tým, že im umožňuje prehľadávať a objavovať všetky miesta, kde sa používa konkrétna funkcia knižnice), ale poskytuje aj aparát na vykonávanie refaktora a správu kampaní skupín zmien a kontroly kódu. Sourcegraph Campaigns je prvý nástroj tohto druhu prístupný všetkým softvérovým podnikom. Rovnako ako vyhľadávanie kódu Sourcegraph, aj kampaň podporuje novú Combyho syntax zhody vzorov, ktorá je užívateľsky príjemnejšia a expresívnejšia ako regulárne výrazy.

Sourcegraph

Podporujte zdieľanie vedomostí vo svojej organizácii

Moderné softvérové ​​tímy spolupracujú na zdieľaní inštitucionálnych znalostí o kóde. Diskusia o kóde je však často ťažká z týchto dôvodov:

  • Hypertextové odkazy na súbory, ktoré máte otvorené v IDE, nemôžete zdieľať
  • Tradičné nástroje na prezeranie kódov prehliadača nemajú dobrú navigáciu v kóde

Sourcegraph ponúka to najlepšie z oboch svetov: presnú a presnú navigáciu v kóde vo webovom rozhraní. Toto uľahčuje zdieľanie odkazov aj pre príjemcu okamžité začatie skúmania a porozumenia kódu prepojeného s kódom bez toho, aby ste ho museli zdĺhavo vyťahovať v miestnom IDE.

Sourcegraph

Zdieľanie kódových odkazov je pre tímy vzdialených inžinierov ešte dôležitejšie. Odkazy na Sourcegraph sú zdieľané stokrát za deň prostredníctvom chatu, na trackeroch vydaní, v oficiálnej dokumentácii a na wiki. Stávajú sa základnými kanálmi poznatkov, najmä ak nie je možné zavolať kolegu k stolu.

Je to otvorený zdroj

Sourcegraph je softvér s otvoreným zdrojovým kódom. Sledovač problémov je verejný a tím veľmi dobre reaguje na hlásenia chýb a požiadavky na funkcie. Moderní vývojári softvéru by mali uprednostňovať otvorené nástroje z rovnakých dôvodov, ktoré uprednostňujú knižnice otvoreného zdroja: základné vedomosti, na ktorých je založený váš softvér a tím, by mali byť prístupné všetkým, aby všetci mohli pochopiť, ako to funguje, a všetci by ich mohli pomôcť vylepšiť.

Zvýšte celkovú produktivitu svojho tímu

Ako môže byť softvérový projekt o rok pozadu? Jeden deň v kuse. Sourcegraph pomáha vášmu tímu držať sa pred termínmi zjednodušením každodenných úloh. Umožňuje vývojárom minimalizovať vplyv kontextových prepínačov, zostať v toku, robiť rýchlejšie kontroly kódu a nájsť odpoveď na otázky typu „Ako to môžem použiť?“ ktoré sa pýtajú každý deň niekoľkokrát. Tieto účinnosti sa rýchlo zvyšujú.

Podporte prijatie nových nástrojov v celej organizácii

Väčšina používateľov Sourcegraph ho používa viackrát za deň, ale veľa vývojárskych nástrojov sa používa oveľa menej často. Môže byť výzvou pre CIO a riaditeľov produktivity vývojárov, aby podporili prijatie nových nástrojov.

Monitory pozorovateľnosti a výkonu, distribuované sledovače aplikácií, analyzátory pokrytia kódu - to všetko sú nástroje, ktoré nemusia byť ľahko dostupné alebo prístupné pre všetkých členov vášho tímu.

Sourcegraph

Rozhranie API Sourcegraph umožňuje nástrojom tretích strán pridávať anotácie do webového používateľského rozhrania Sourcegraph a do používateľského rozhrania kódových hostiteľov, ako sú GitHub a GitLab. Rozšírenia existujú pre populárne bežné nástroje, ako sú Codecov, Datadog a Sentry, a tímy interných vývojárskych nástrojov môžu vytvárať súkromné ​​rozšírenia aj pre vlastné nástroje.

Urýchlite nástup nových inžinierov

Nastúpiť na palubu nových inžinierov môže byť boj, najmä ak je strojárska organizácia alebo základňa kódov veľká. Sourcegraph skracuje čas medzi dátumom začatia a prvým spáchaním tým, že umožňuje rýchlejšie pochopenie existujúceho kódu. Noví najímatelia často trávia väčšinu času skákaním po neznámych častiach kódovej základne, aby si vytvorili mentálny model kódu organizácie. Univerzálna navigácia v kóde kódu Sourcegraph im umožňuje preskúmať celú základňu kódov s minimálnym prepínaním kontextu a schopnosť zdieľať odkazy im umožňuje klásť konkrétne otázky, ktoré nestrácajú čas vyšším inžinierom.

Skráťte čas odozvy na incident

Pri reakcii na produkčný incident sa počíta každá minúta. Vyhľadávanie v zdrojovom kóde skráti čas potrebný na odstránenie problému, pretože uľahčí vyhľadanie chybových správ v zdrojovom kóde. Chybové hlásenie často pochádza zo závislej závislosti, a preto je ťažké ho nájsť pomocou vyhľadávacieho nástroja IDE alebo príkazového riadku. Sourcegraph indexuje všetok kód relevantný pre vašu organizáciu a umožňuje okamžité vyhľadanie chybových správ.

Rozširovacie rozhranie API Sourcegraph tiež umožňuje integráciu nástrojov devops do Sourcegraph. Napríklad rozšírenie Sentry zobrazuje počet výrobných výstrah, ktoré generuje konkrétny riadok prístrojového kódu. To poskytuje cenné kontextové znalosti pri ladení incidentov.

Sourcegraph

Udržiavať a rozširovať štandardy kvality kódu

Sourcegraph umožňuje organizáciám udržiavať a šíriť štandardy kvality kódu prostredníctvom niekoľkých vektorov:

  • Efektívna, ale dôkladná kontrola kódu pomocou navigácie a popisov kódu Sourcegraph zabraňuje zlúčeniu nekvalitného kódu.
  • Automatizované kontroly kvality kódu (napr. Codecov) je možné integrovať do kontroly kódu pomocou rozhrania API rozšírenia Sourcegraph. Sourcegraph pridáva tieto anotácie k existujúcemu nástroju na kontrolu kódu.
  • Zdieľanie kódových odkazov a navigácia v kóde v prehľadávači umožňujú vývojárom odkazovať na príklady vzorov, ktoré sa majú emulovať, a anti-vzorov, od ktorých sa treba odradiť.

Vystavte svoju databázu kódov ako súbor údajov prostredníctvom rozhrania API

Sourcegraph vystavuje výkonné GraphQL API. Rozhranie API používajú tímy interných vývojových nástrojov na vytváranie interných nástrojov, ktoré využívajú možnosti Sourcegraph, ako je univerzálne vyhľadávanie kódu, navigácia v kóde a štatistika kódu. Prístupové tokeny umožňujú dôveryhodným nástrojom bezpečnú autentifikáciu v serveri Sourcegraph. Sourcegraph sa dodáva s interaktívnym prieskumníkom API, ktorý uľahčuje učenie a experimentovanie s API.

Sourcegraph