Programavimas

„Sourcegraph“: universali kodo paieška ir intelektas

Kodo kiekis pasaulyje sprogsta. Kai programinė įranga tampa pagrindiniu inovacijų varikliu beveik visose pramonės šakose, programinės įrangos kūrėjai susiduria su didesnėmis, labiau priklausomomis kodų bazėmis. Dauguma organizacijų kiekvieną dieną nustato naujus savo kodų bazės dydžio rekordus.

Šiame pasaulyje tradiciniai kūrėjų įrankiai, tokie kaip redaktoriai ir IDE, yra nepakankami. Jie buvo skirti atskiriems kūrėjams, dirbantiems su atskirais kodo elementais, o ne programinės įrangos komandoms, kuriančioms dideles dideles kodų bazes. Šiuolaikinėse programinės įrangos organizacijose ieškojimas masinėse kodų bazėse, nepažįstamo kodo suvokimas ir dalijimasis institucinėmis žiniomis tampa pirmos eilės rūpesčiais. Programinės įrangos komandoms reikia įrankio, kuris įgalintų šį visuotinį kodo intelektą.

Kodo paieška turi būti universali, kad būtų veiksminga - ji turi apimti visas kalbas, visas saugyklas, visus kodų pagrindinius kompiuterius ir visus konfigūracijos failus. Paieška, ribojama tik „Python“ arba tik „GitHub“, yra panaši į tai, kad „Google“ indeksuoja tik svetaines, sukurtas naudojant „Ruby on Rails“ arba „Apache HTTP Server“ - tai ne starteris, skirtas kūrėjų komandoms, kurios dirba šiuolaikinėje kodo visatoje.

Tokios pirmaujančios technologijų kompanijos kaip „Uber“, „Lyft“ ir „Yelp“ naudoja „Sourcegraph“, kad sujauktų šią kodo visatą. Tokios įmonės kaip „Google“ ir „Facebook“ išleido šimtus milijonų dolerių vidaus įrankiams, panašiems į „Sourcegraph“, kurti. „GitLab“, kodų prieglobos ir „devops“ kompanija, neseniai paskelbė apie partnerystę su „Sourcegraph“, kad natūraliai integruotų kai kurias „Sourcegraph“ funkcijas į „GitLab“ vartotojo sąsają.

Pagrindinės priežastys naudoti „Sourcegraph“

„Sourcegraph“ yra kūrėjų platforma, skirta spręsti problemas, su kuriomis susiduria šiuolaikinės programinės įrangos komandos. „Sourcegraph“ atkreipia dėmesį į kritinius skausmo taškus, kuriuos jaučia programinės įrangos inžinieriai ir inžinerijos lyderiai.

Individualiems kūrėjams pateikiamos pagrindinės „Sourcegraph“ naudojimo priežastys:

  1. Likite sraute, išvenkite mirties tūkstančiu kontekstinių jungiklių
  2. Suraskite adatą šaudymo šachtoje
  3. Greitai, išsamiai ir mažiau skausmingai atlikite kodų peržiūras - nebereikės TL; DR
  4. Mokykitės pavyzdžiu, o ne prastais ar neegzistuojančiais dokumentais
  5. Padarykite didelius refaktorius ir kodo pakeitimus lengvai valdomus
  6. Lengvai dalinkitės ir aptarkite kodą, ypač su nuotoliniais kolegomis
  7. Tai atvirasis šaltinis

Čia pateikiamos dažniausios priežastys, dėl kurių inžinerijos lyderiai pristato „Sourcegraph“ savo organizacijai:

  1. Padidinkite komandos kasdieninį produktyvumą
  2. Skatinkite dalytis žiniomis
  3. Skatinkite naujų įrankių pritaikymą organizacijoje
  4. Paspartinkite naujų inžinierių įsitraukimą
  5. Sumažinkite reagavimo į incidentą laiką
  6. Palaikyti ir skleisti kodo kokybės standartus
  7. Kurkite geresnius vidinius kūrėjų įrankius naudodami „code-as-data“ API
  8. Tai lengva įdiegti ir išplėsti su komanda ir kodų baze

Likite sraute

Programavimo produktyvumas dažnai miršta tūkstančiu kontekstinių jungiklių. Pažįstamas scenarijus yra toks, kai kūrėjas įgyvendina funkciją ar klaidų taisymą, bet staiga turi pereiti į kitą kodo bazės dalį. Galbūt jiems reikia ieškoti tam tikros bibliotekos funkcijos arba išsiaiškinti, kaip ja naudotis. Galbūt kolegai kyla klausimas dėl kokio nors kito kodo. Dabar kūrėjas turi atidaryti tuos failus savo IDE ir tai darydamas sunaikinti dabartinę darbinę būseną, kurią vėliau teks skaudžiai priminti ir rekonstruoti.

Šie pertraukimai yra žalingi, nes jie pašalina kūrėją iš srauto būsenos, o neigiamas poveikis produktyvumui yra didelis. „Sourcegraph“ naršyklė pagrįsta kodo paieškos ir paieškos sąsaja leidžia kūrėjui išlaikyti redaktoriaus būseną tyrinėjant kitas kodo dalis. Dėl tokio darbinės būsenos išsaugojimo konteksto perjungimas yra daug pigesnis, o tai leidžia atskiriems kūrėjams daugiau nuveikti ir mažiau pasunkinti.

Sourcegraph

Suraskite adatas šieno kupetoje

Įprasta kasdienės programinės įrangos inžinerijos užduotis yra ieškoti konkrečios eilutės ar modelio kode. Tai gali būti klaidos pranešimas, kuris rodomas gamybos žurnaluose, antimalus šablonas, kurį reikėtų pašalinti, arba tiesiog kokia nors unikali eilutė, kurią kūrėjas susieja su tam tikru šaltinio kodo įdomumu.

Sourcegraph

Šių adatų radimas dažnai būna skausmingas. IDE turi paieškos galimybes, tačiau aptariamas kodas gali egzistuoti ne IDE atidarytame. Komandinės eilutės įrankiai taip pat neturi prieigos prie kodo, esančio už vietinės failų sistemos ribų, ir gali būti sudėtinga naudoti. Kodo prieglobos ieško tik per priimtą kodą ir dažnai ta paieška yra lėta arba nekokybiška. Kodo paieška turi būti universali, kad būtų veiksminga.

Naudodamiesi „Sourcegraph“, kūrėjai turi kodo paiešką, apimančią visą jų kodą, visapusiškai palaikydami reguliarius posakius ir pažangesnius modelių derinimus, pvz., „Comby“ sintaksę. „Sourcegraph“ paieškos sistema yra optimizuota šaltinio kodui, todėl ji yra nepaprastai greita. Jis taip pat buvo sukurtas nuo pat pagrindų iki didelių kodų bazių ir organizacijų. Kai kurios organizacijos turi šimtus tūkstančių saugyklų, o „Sourcegraph“ jas visas pateikia kiekvienam kūrėjui.

Išraiškinga ir galinga paieškos sintaksė leidžia vartotojui filtruoti rezultatus pagal failą, kalbą, saugyklą ir begalę kitų atributų. „Sourcegraph“ taip pat žino kodo semantiką ir leidžia tiesiogiai ieškoti simbolių.

Sourcegraph

Mokykis pavyzdžiu

„Kaip tai naudoti?“ yra klausimas, kurį kūrėjai užduoda dešimtis kartų per dieną. Geriausia dokumentacija yra naudojimo pavyzdys. „Sourcegraph“ pasaulinė radimo nuorodų funkcija leidžia kūrėjui ieškoti naudojimo pavyzdžių visoje kodo visatoje, net jei idealus naudojimo pavyzdys yra kitoje saugykloje. Tai ypač naudinga senose, nepažįstamose ar blogai dokumentuotose kodų bazėse.

Greitai ir išsamiai atlikite kodo peržiūras

Įprastas patarimas apie kodo peržiūrą sako, kad jei pateiksite 10 eilučių pakeitimų rinkinį, gausite 10 komentarų, bet jei pateiksite tūkstančių eilučių pakeitimų rinkinį, negausite jokių komentarų ir automatinio patvirtinimo.

Kokybės kodo peržiūros dažnai būna skausmingos ir lėtos, nes tradiciniuose įrankiuose trūksta daugybės esminių funkcijų, kurios padėtų apžvalgininkui greitai suprasti kodo pakeitimus. „Sourcegraph“ prideda į IDE panašų kodo naršymą ir patarimus prie esamos kūrėjų peržiūros darbo eigos.

„Sourcegraph hover“ patarimai leidžia apžvalgininkui greitai žvilgtelėti į funkcijų apibrėžimus ir dokumentus, nereikalaujant pakeisti vietos rinkinio į vietinį IDE. Nepalikdamas kodo peržiūros sąsajos, „Sourcegraph“ leidžia pereiti prie apibrėžimo, kad geriau suprastumėte, kaip veikia nurodytas kodo fragmentas.

Sourcegraph

„Sourcegraph“ integruoja šias kodo naršymo funkcijas tiesiogiai į populiarių kodų peržiūros įrankių, tokių kaip „GitHub Pull Requests“, „GitLab Merge Requests“ ir „Phabricator“, vartotojo sąsają, todėl kūrėjo patirtis pagerėja be jokių perjungimo išlaidų.

Geresnis kodų peržiūra sumažina klaidas, palaiko kodų kokybės standartus ir padidina institucinių žinių sklaidą inžinerijos organizacijoje.

Sourcegraph Sourcegraph

Padarykite didelius refaktorius lengvai valdomus

Augant kodų bazėms, didelio masto refaktoriai tampa neišvengiama kliūtimi, padedančia pagerinti kodo kokybę ir įdiegti naujas funkcijas. Pvz., Norint palaikyti naują funkciją, gali tekti atnaujinti bendros bibliotekos API, tačiau tai padarius gali reikėti atnaujinti keliasdešimt ar net šimtus vartotojų. Vietų skaičius kode, kuris turi pasikeisti atnaujinus vieną bendrą priklausomybę, gali lengvai padidinti tūkstančius taškų, paskirstytų skirtingiems komponentams, priklausantiems skirtingoms komandoms.

„Sourcegraph“ ne tik padeda kūrėjams suprasti refaktoriaus poveikį (leisdamas jiems ieškoti ir atrasti visas vietas, kuriose naudojama tam tikra bibliotekos funkcija), bet ir suteikia aparatą refaktoriui vykdyti bei valdyti pakeitimų rinkinių ir kodų peržiūrų kampaniją. „Sourcegraph“ kampanijos yra pirmasis tokio pobūdžio įrankis, prieinamas visoms programinės įrangos įmonėms. Kaip ir „Sourcegraph“ kodo paieška, „Kampanijos“ palaiko naują „Comby“ modelio atitikimo sintaksę, kuri yra patogesnė vartotojui ir išraiškinga nei įprasti posakiai.

Sourcegraph

Skatinkite dalytis žiniomis visoje savo organizacijoje

Šiuolaikinės programinės įrangos komandos bendradarbiauja dalydamosi institucinėmis žiniomis apie kodą. Tačiau dėl šių priežasčių dažnai sunku aptarti kodą:

  • Negalite bendrinti hipersaitų į failus, kuriuos atidarėte savo IDE
  • Tradiciniai naršyklės kodo peržiūros įrankiai neturi gero kodo naršymo

„Sourcegraph“ siūlo geriausias iš abiejų pasaulių: tikslią ir tikslią kodo naršymą žiniatinklio sąsajoje. Tai leidžia lengvai bendrinti nuorodas ir gavėjui nedelsiant pradėti tyrinėti ir suprasti susietą kodą, be vargo ir trinties jį traukiant vietiniame IDE.

Sourcegraph

Nuotolinių inžinerijos komandų naudojimasis kodo nuorodomis tampa dar svarbesnis. „Sourcegraph“ nuorodos šimtus kartų per dieną dalijamasi pokalbio metu, leidimų sekimo priemonėse, oficialiuose dokumentuose ir vikiuose. Tai tampa esminiais žinių perdavimo būdais, ypač kai neįmanoma pasikviesti kolegos prie savo stalo.

Tai atvirasis šaltinis

„Sourcegraph“ yra atviro kodo programinė įranga. Problemų stebėjimo priemonė yra vieša, o komanda labai reaguoja į pranešimus apie klaidas ir funkcijų užklausas. Šiuolaikiniai programinės įrangos kūrėjai turėtų teikti pirmenybę atviriems įrankiams dėl tų pačių priežasčių, dėl kurių jie palaiko atvirojo kodo bibliotekas: pagrindinės žinios, kuriomis remiasi jūsų programinė įranga ir komanda, turėtų būti atviros visiems, kad visi suprastų, kaip ji veikia, ir visi gali padėti jas tobulinti.

Padidinkite bendrą komandos produktyvumą

Kaip programinės įrangos projektas atsilieka metais? Po vieną dieną. „Sourcegraph“ padeda jūsų komandai nesilaikyti terminų, supaprastindamas kasdienes užduotis. Tai leidžia kūrėjams sumažinti konteksto jungiklių poveikį, palaikyti srautą, greičiau atlikti kodų peržiūras ir rasti atsakymą į tokius klausimus kaip „Kaip tai naudoti?“ kurių kiekvieną dieną klausiama dešimtimis kartų. Šie efektyvumo padidėjimai greitai padidėja.

Skatinkite naujų įrankių pritaikymą organizacijoje

Dauguma „Sourcegraph“ vartotojų naudojasi kelis kartus per dieną, tačiau daugelis kūrėjų įrankių naudojami žymiai rečiau. Tai gali būti iššūkis CIO ir Kūrėjų produktyvumo direktoriams paskatinti naujų priemonių pritaikymą.

Stebimumo ir našumo monitoriai, paskirstyti programų žymekliai, kodo aprėpties analizatoriai - tai visi įrankiai, kuriuos gali lengvai neatrasti ar pasiekti visi jūsų komandos nariai.

Sourcegraph

„Sourcegraph“ plėtinio API leidžia trečiųjų šalių įrankiams pridėti anotacijas į „Sourcegraph“ žiniatinklio vartotojo sąsają ir kodų kompiuterių, tokių kaip „GitHub“ ir „GitLab“, vartotojo sąsają. Plėtiniai yra populiariems iš anksto parduodamiems įrankiams, tokiems kaip „Codecov“, „Datadog“ ir „Sentry“, o vidinės kūrėjų įrankių komandos taip pat gali kurti privačius vidaus įrankių plėtinius.

Paspartinkite naujus inžinierius

Tai gali būti kova dėl naujų inžinierių, ypač jei inžinerijos organizacija ar kodų bazė yra didelė. „Sourcegraph“ sumažina laiką nuo pradžios datos iki pirmo įsipareigojimo, nes leidžia greičiau suprasti esamą kodą. Nauji darbuotojai dažniausiai praleidžia didžiąją laiko dalį šokinėdami po nepažįstamas kodo bazės dalis, kad sukurtų mentalinį organizacijos kodo modelį. Universalus „Sourcegraph“ naršymas kodais leidžia jiems ištirti visą kodų bazę minimaliai keičiant kontekstą, o galimybė dalytis nuorodomis leidžia jiems užduoti konkrečius klausimus, kurie negaišta vyresniųjų inžinierių laiko.

Sumažinkite reagavimo į incidentą laiką

Kiekviena minutė yra svarbi reaguojant į gamybos incidentą. „Sourcegraph“ kodo paieška sumažina laiką, kurio prireikia norint išprovokuoti problemą, todėl šaltinio kode lengva rasti klaidų pranešimus. Dažnai klaidos pranešimas kyla iš ankstesnio lygio priklausomybės, todėl jį sunku rasti naudojant IDE arba komandinės eilutės paieškos įrankį. „Sourcegraph“ indeksuoja visą jūsų organizacijai svarbų kodą ir leidžia iškart rasti klaidų pranešimus.

„Sourcegraph“ plėtinio API taip pat leidžia integruoti „devops“ įrankius į „Sourcegraph“. Pvz., „Sentry“ plėtinys rodo gamybos įspėjimų, kuriuos generuoja tam tikra prietaisų kodo eilutė, skaičių. Tai suteikia vertingų kontekstinių žinių derinant įvykius.

Sourcegraph

Palaikyti ir skleisti kodo kokybės standartus

„Sourcegraph“ suteikia organizacijoms galimybę palaikyti ir skleisti kodo kokybės standartus per kelis vektorius:

  • Veiksminga, bet išsami kodo peržiūra, naudojant „Sourcegraph“ kodo naršymą ir patarimus, neleidžia sujungti prastos kokybės kodų.
  • Automatinius kodo kokybės tikrintuvus (pvz., „Codecov“) galima integruoti į kodo peržiūrą per „Sourcegraph“ plėtinio API. „Sourcegraph“ prideda šias anotacijas prie esamo kodo peržiūros įrankio.
  • Kodo nuorodų bendrinimas ir naršymas naršyklėje leidžia kūrėjams pateikti pavyzdžių, kuriuos reikia imituoti, ir atgrasyti nuo šablonų.

Pateikite savo kodų bazę kaip duomenų rinkinį per API

„Sourcegraph“ pateikia galingą „GraphQL“ API. API vidinės kūrėjų įrankių komandos naudoja kurdami vidinius įrankius, kurie naudoja „Sourcegraph“ galimybes, tokias kaip universalaus kodo paieška, kodo naršymas ir kodo statistika. Prieigos žetonai įgalina patikimus įrankius saugiai autentifikuoti „Sourcegraph“. „Sourcegraph“ pristatomas su interaktyviu API tyrinėtoju, todėl jį lengva išmokti ir eksperimentuoti su API.

Sourcegraph