Erakutsi HN: Rev-dep - Go-n knip.dev alternatiba 20 aldiz azkarragoa
Iruzkinak
Mewayz Team
Editorial Team
Hazten ari diren software-talde ororen ezkutuko zerga
Aski bizirik irauten duen software-proiektu guztiek krisi lasai berari aurre egiten diote azkenean: kode-basea taldeak ulertzen duen baino azkarrago hasten da hazten. Inork deitzen ez dituen funtzioak, 2022an bidalitako eginbide baterako sortu ziren eta isilki zaharkituta geratu ziren esportazioak, diskoan bizi diren baina arakatzaile batera iristen ez diren osagaiak. Hau ez da alferkeria, fisika baizik. Taldeak azkar mugitzen dira, eskakizunak aldatzen dira eta entropia gupidagabea da. Galdera ez da zure kode-baseak kode hilik ote duen. Kontua da orain zenbat kostatzen zaizun.
Google-ren ingeniaritza produktibitate-taldearen ikerketaren arabera, garatzaileek batez beste kodetzeko denboraren % 42 pasatzen dute lehendik dagoen kodea irakurtzen eta ulertzen funtzionalitate berriak idazten beharrean. Lehendik dagoen kode horrek jada ezertarako balio ez duten milaka lerro biltzen dituenean, ehuneko hori are gehiago okertzen da. Hamar ingeniariz osatutako talde batentzat, lanaldi osoko lau langilek ez dute ezer produktiborik egiten, ez alferrak direlako, baizik eta haien tresnek ez dutelako softwarea zahartzen den abiadurarekin bat egiten.
Horregatik, Go eta Rust bezalako sistemen lengoaietan eraikitako garatzaile-tresnaren bolada berri batek benetako zirrara sortzen ari da ingeniaritzako zirkuluetan. Rev-dep bezalako tresnek — JavaScript-en oinarritutako knip.dev ezaguna baino 20 aldiz azkarrago exekutatzen dela dio alderantzizko mendekotasun-analisia, hobekuntza inkrementala baino gehiago adierazten dute. Garapen-prozesua bera nola instrumentatzen dugun oinarrizko birpentsaketa adierazten dute.
Alderantzizko mendekotasun-analisiak benetan egiten duena
Abiadurak horrenbesteko garrantzia duen ulertu aurretik, mendekotasunak aztertzeko tresnak benetan zer egiten duten ulertzen laguntzen du. JavaScript edo TypeScript proiektu batean, fitxategi guztiak beste fitxategi batzuetatik inportatzen dira. Modulu batetik esportatzen den funtzio, klase edo konstante bakoitzak balizko menpekotasun bat sortzen du, kode-oinarriaren beste atal batzuetan konfiantza izan dezaketen zerbait. "Alderantzizko" mendekotasun-analisiak ikuspegi hau iraultzen du: "Zerren araberakoa da modulu hau" galdetu beharrean, "Zerren araberakoa da modulu honen menpe?"
Bigarren galdera horren erantzuna "ezer ez" bada, hildako kodea aurkitu duzu. Ezerk inportatzen ez duen esportazioa hondakina da. Ezer deitzen ez duen funtzio bat hileroko interes-tasa duen zor teknikoa da. Alderantzizko mendekotasun-tresnek sistematikoki zure proiektuaren grafiko osoa ibiltzen dute, moduluen arteko erlazio guztiak mapatzen dituzte eta sarrerako konexiorik ez duten nodoak azaleratzen dituzte. Ondorioz, segurtasunez kendu daitekeen kode-baseko guztiaren auditoria zehatza da.
Knip.dev-ek ondo egiten du JavaScript eta TypeScript proiektuetarako, eta oso errespetatua da komunitatean. Baina JavaScript-en idatzita dago, hau da, Node.js-en exekutatzen dela esan nahi du, eta horrek esan nahi du Node-ren hari bakarreko errendimendu-murriztapen guztiak heredatzen dituela eskala handiko fitxategi-sistemaren zeharkaldia eta sinboloen azterketa egitean. 500 fitxategi dituen proiektu baterako, ondo dago. 50.000 fitxategi dituen proiektu baterako - benetako enpresa SaaS produktuak bultzatzen dituen monorepo mota - azterketak minutuak iraun ditzake. Eta minutuak, CI/CD kanalizazio modernoek funtzionatzen duten kadentzian, akordio-hausle bat da.
Zergatik Gok kalkulua aldatzen du
Go hasieratik diseinatu zen mendekotasun-analisiak eskatzen duen lan-kargarako: fitxategien I/O azkarra, aldiberekotasun primitibo bikainak eta exekuzio-denbora gutxieneko gastua. Node.js-ek zeregin bat aldi berean hari bakarrean prozesatzen duen eta deien itzuleretan oinarritzen da eta paralelismo faltsua agintzen du, Go-k milaka goroutine sor ditzake PUZaren nukleo guztietan benetan paraleloan exekutatzen direnak. Ehunka fitxategi irakurtzea, haien ASTak analizatzea eta sinbolo-erlazioen grafikoa eraikitzea dakartzan zeregin baterako, desberdintasun arkitektoniko hau horma-erlojuaren errendimenduan bihurtzen da zuzenean.
Rev-dep-ek aldarrikatzen duen 20 aldiz bizkortzea ez da magia; hizkuntza egokia arazo egokiarekin lotzen duzunean gertatzen dena da. Go-ren konpilatutako izaerak JIT beroketa zigorrik ez izateak ere esan nahi du. Hasiera hotzetik analisi osoa arte, Go bitar bat errendimendu ia gailurrean ari da funtzionatzen. Ondorio praktikoa da Nodoan oinarritutako tresna batean 90 segundo behar izan dituen analisiak 5 segundo baino gutxiagotan burutu daitezkeela ondo inplementatutako Go baliokide batean. Hori da garatzaileek saltatzen duten egiaztapen baten arteko aldea, "betiko irauten duelako" eta konpromiso guztietan exekutatzen denaren arteko aldea.
"Garatzaile-tresnarik onena bidetik kentzen dena da. Zure analisi-suiteak CI kanalizazio bakoitzean hiru minutu gehitzen baditu, garatzaileek hori saltatzeko moduak aurkituko dituzte. Abiadura ez da atsegina izatea; hartzeko ezinbesteko baldintza da."
Codebase Higienearen negozio kasua
Hildako kodea ez da garatzaileen estetika-arazo bat soilik; negozio-ondorio zehatzak ditu denboran zehar konposatzen direnak. Kontuan izan kode-oinarri puztuak benetan zer kostatzen zaien erakundeei:
- Eraiketa-denbora luzeagoak, inplementazioaren kanalizazioa moteltzen dutenak eta talde batek astean segurtasunez bidal ditzakeen bertsio kopurua murrizten dutenak
- Zarga kognitibo handiagoa barneratzeko ingeniarientzat, asteak eman behar baitituzte eredu aktiboak eta abandonatutakoak bereizten Aplikazioen errendimenduari kalte egiten dion
- sorta-tamainak, batez ere web-aplikazioetan, non kilobyte bakoitzak karga-denbora eta bihurtze-tasak eragiten dituen
- Segurtasun gainazalaren hedapena — mendekotasunak dituen kode hilak oraindik pakete horietako ahultasunen bektore bat da
- Test suite bloat, non kendutako funtzionalitatearen probek exekutatzen jarraitzen duten, CI minutuak kontsumitzen dituzten eta noizean behin modu nahasian huts egiten duten
- Konplexutasun-seinale faltsuak, erabaki arkitektonikoak zailtzen dituztenak, ez baitago argi zer den karga jasangarria eta zer den aztarna
DevOps Research and Assessment (DORA) taldeak 2023an egindako ikerketa batek aurkitu zuen kode-kalitate-praktika sendoak zituzten taldeek —hildako kode arruntak kentzea barne— 2,4 aldiz maizago bidaltzen zutela eta zor teknikoa pilatzen uzten zuten taldeek baino 7 aldiz txikiagoak izan ziren aldaketa-porrot tasa. Korrelazioa ez da kasualitatea. Kode-oinarri garbiak errazagoak dira arrazoitzeko, probatzeko eta modu seguruan aldatzeko.
Mewayz bezalako plataformetan eraikitzen diren enpresentzat, 138.000 erabiltzaileri 207 negozio-modulu desberdinetan, CRM eta nominak, flota kudeatzeko eta link-in-bio tresnetara, kodebasearen osasunak apustuak ugaritu ditu. Zure plataformak domeinu funtzional asko hartzen dituenean, moduluen arteko integrazio azalera izugarria da. Oinarrizko modulu batean erabiltzen ez diren esportazioek menpeko moduluen itxaropen faltsuak sor ditzakete, alferrikako errendaketak sor ditzake UI geruzan eta mendekotasun grafikoa zaildu etorkizuneko aldaketak arriskutsuak izan daitezen.
Mendekotasun-analisia garapen modernoko lan-fluxuetan integratzea
Rev-dep bezalako tresneria azkarren benetako indarra ez da ahalbidetzen duen behin-behineko garbiketa; etengabeko analisia egiteko gaitasuna da, zure garapen-ziklo arruntaren zati gisa. Kode hilak eskaneatzea 4 segundo beharrean 4 minutu behar direnean, zure aurreko konpromisoetan gehi dezakezu. 4 segundo behar direnean 4 minutu beharrean, zure CI kanalizazioak huts egin dezake erabili gabeko esportazio berriak sartzen dituen tira-eskaera batean, isilean pilatzen utzi beharrean.
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →"Hiruhileko garbiketa-gertaera"tik "kalitate etengabeko ate" izatera pasatze hau linters IDE bateko tekla sakatze bakoitzean exekutatzeko nahikoa azkarra izan zenean gertatu zenaren antzekoa da. ESLint denbora errealean exekutatu aurretik, kode-estiloa aldizkako kode berrikuspenek ezartzen zuten. Ondoren, giroa bihurtu zen: kodea idazten ari zirenean garatzaileek izandako feedback-begizta zatia, ez ondoren. Mendekotasun-analisi azkarrak giro-kalitatearen presio bera sor dezake hildako kodearen inguruan.
Lan-fluxu hau konfiguratzeak normalean hiru osagai ditu:
- Oinarrizko analisia: exekutatu tresna zure uneko kode-oinarriarekin lehendik dagoen kode hilaren eskala ulertzeko. Ez saiatu dena aldi berean konpontzen, moduluka sailkatu eta arriskuaren arabera lehenetsi.
- CI betearaztea: Gehitu analisia zure kanalizaziora atalase batekin: huts egin berri diren erabili gabeko esportazioetan, baina ez huts egin lehendik daudenetan, garbitu arte.
- Garbiketa esprint programatuak: erabili tresnaren irteera ohiko garbiketa lanak gidatzeko, denboran zehar taldearen osasun-neurri gisa hildako kodeen kopuruaren jarraipena eginez.
SaaS Builders for Go Tooling Errenazimentuko seinaleak zer diren
Rev-dep garatzaileentzako tresnetako eredu zabalago baten parte da: Go edo Rust-en eraikitako JavaScript tresnen errendimendu handiko alternatibak agertzen dira kategoria guztietan. Biomek ESLint eta Prettier ordezkatu zituen talde askotan. Turbopack eta Rspack Webpack-en bazkaria jaten ari dira. Bun-ek Node.js berari erronka egiten dio. Hari komuna da tresna hauek ez dutela hobekuntza inkrementala bakarrik eskaintzen, praktikoa aldatzen duten urrats-funtzioen hobekuntzak eskaintzen dituzte.
Modulu anitzeko produktu konplexuak eraikitzen dituzten SaaS enpresentzat, tresnen berpizkunde honek inplikazio zuzenak ditu ingeniaritza abiaduran. Mewayz-en 207 modulu arkitekturak, HR eta nominak eta erreserba sistemak eta analisi-panelak barne hartzen dituena, elkarren arteko kode-oinarri handi eta konektatua adierazten du, non mendekotasun-analisi azkarra eta zehatza operatiboki kritiko bihurtzen den. Partekatutako erabilgarritasun-modulu baten aldaketak teorikoki hamaika funtzio-modulutan eragin ditzaketenean, benetako mendekotasun grafikoan berehalako ikusgarritasuna izatea ez da erosoa, produkzio-intzidentzia garestiak saihesten dituen azpiegitura mota da.
"Funtzio hau benetan erabiltzen duena" bost minutu baino gutxiagotan bost segundotan erantzuteko gaitasunak aldatzen du ingeniariek erabakiak nola hartzen dituzten. Ikerketaren kostua murrizten du, hau da, ingeniariek maizago ikertzen dute, hau da, erabaki hobeak hartzen dituzte. Erakundeek garatzaileen produktibitatearen gastuari buruz pentsatzen dutenean askotan ahaztu egiten den tresna azkarreko inbertsioaren etekin konbinatua da.
Kode hilak ezabatzea zure ingeniaritza kulturaren zati bihurtzea
Teknologiak bakarrik ez ditu kode-oinarri garbiak eraikitzen; kulturak bai. Rev-dep bezalako tresnek gaitasuna eskaintzen dute, baina gaitasun hori praktika koherente batean bihurtzeak antolakuntzaren konpromisoa eskatzen du. Talde eraginkorrenek hildako kodeen neurketak probaren estaldura tratatzen duten modu berean tratatzen dituzte: ingeniaritza-bileretan berrikusi eta sprint plangintzan kontuan hartzen den kode-basearen osasun-adierazle ikusgarri eta jarraitu gisa.
Ongi funtzionatzen duten kultura-praktika zehatz batzuk "kodea ezabatzeko egunak" izendatzea da, aldiroko gertaerak non helburu esplizitua kodea kentzea baino gehiago gehitzea den. Netlify-k ezabatutako sare-lerroen jarraipena egiteko sailkapen-taulak exekutatu zituen. Stripe-k publikoki idatzi du kodea ezabatzea lehen mailako ingeniaritza-ekarpen gisa tratatzeko duten praktikari buruz, ezaugarrien lanaren balio berdina. Behar den mentalitate aldaketa koderik onena existitzen ez den kodea dela aitortzea da: idazten ez duzun lerro bakoitza sekula mantendu, probatu, arakatu edo kontratazio berri bati azaldu behar ez duzun lerroa da.
Negozio-eragiketa konplexuak kudeatzen dituzten produktu-enpresentzat, ingeniaritzatik kanpoko paraleloa ere irakasgarria da. Kode-oinarriak osasuntsuagoak egiten dituen diziplina berberak —ohiko auditoriak, jabetza argia, inork erabiltzen ez dituen gauzak ezabatzea— negozio-prozesuak ere osasuntsuagoak egiten ditu. Mewayz bezalako plataformak enpresei nolabaiteko argitasun operatiboa emateko eraiki dira, hain zuzen ere: ikuspegi bateratua zein tresna erabiltzen ari diren, zein lan-fluxuek balioa sortzen duten eta antolakuntza-pisua non pilatzen den. Erabili gabeko software-esportazioak edo erabili gabeko negozio-prozesuak ikuskatzen ari zaren ala ez, azpian dagoen diziplina berdina da.
Tresnak gero eta azkarragoak dira, feedback-begiztak gero eta estuagoak dira, eta kode-oinarrizko higiene-azpiegituretan inbertitzen duten taldeek urte luzez etekinak emango dituen abantaila konposatu bat eraikitzen ari dira. Rev-dep eta bere Go-powered garatzaile-tresnen multzoa ez dira erreferentzia interesgarriak soilik, softwarearen abiadura iraunkorra ahalbidetzen duen azpiegitura-geruza dira. Eta software-enpresentzat iterazio-abiadura lehiakortasun abantaila nagusia den mundu batean, hori ez da kezka periferikoa. Joko osoa da.
Ohiko galderak
Zerk egiten du Rev-dep knip.dev baino azkarragoa?
Rev-dep Go-n eraikita dago, aldiberekotasunerako eta exekuzio-abiadura gordinarako optimizatutako sistema-lengoaia konpilatu batean, knip.dev Node.js-en exekutatzen den bitartean. Desberdintasun arkitektoniko honek Rev-dep-ek mendekotasun grafikoak azter ditzake eta kode hilak 20 aldiz azkarrago detektatu ditzake. Monorepo handietarako edo kode-oinarri konplexuetarako (mewayz-en negozio-OS-a bultzatzen duen 207 moduluko arkitektura, app.mewayz.com helbidean), errendimendu hutsune hori denbora errealean aurrezten da CI exekuzio bakoitzean.
Zenbat kode hildako pilatzen da hazten ari den proiektu tipiko batek?
Ingeniaritza-taldeen ikerketek eta txosten anekdotikoek iradokitzen dute kode-oinarri helduek erabili gabeko edo eskuraezin den kodea %10etik %35era eraman dezaketela. Arazoa taldeek eskalatzen duten heinean konposatzen da: funtzioak zaharkituta geratzen dira, APIak aldatzen dira eta moduluak utzi egiten dira garbiketarik gabe. Mewayz bezalako plataformek, 207 negozio-modulu baino gehiago bateratzen baitituzte 19 $/hileko sistema eragile bakar batean, asko oinarritzen dira hildako kode sistematikoki hautemateko kode-oinarria leun eta mantendu ahal izateko.
Rev-dep egokia al da JavaScript edo TypeScript erabiltzen ez duten taldeentzat?
Une honetan, Rev-dep JavaScript eta TypeScript ekosistemetan zentratuta dago, eta ingurune horietarako knip.dev-en alternatiba zuzena da. Proiektua heldu ahala hizkuntza gehigarrietarako laguntza zabal daiteke. Zure taldeak web-oinarritutako produktuak edo SaaS tresnak eraikitzen baditu (Mewayz-ek bere negozio-OS osoa app.mewayz.com helbidean eskaintzen duenaren antzera) eta zure pila JS/TS-astuna bada, Rev-dep-ek merezi du gaur zure garatzaile-tresna-katearen parte gisa ebaluatzea.
Integra al dezaket Rev-dep nire CI/CD kanalizazioan?
Bai. Rev-dep CLI tresna gisa diseinatuta dago, eta erraza da edozein CI/CD kanalizazioan sartzea lehendik dituzun listing eta probaren urratsekin batera. Bere abiadura-abantaila bereziki baliotsua da kanalizazio automatizatuetan, non iritzi-begizta azkarragoek garatzaileen itxaronaldia murrizten duten. Startup lean bat exekutatzen ari zaren edo Mewayz-en $ 19/mo negozio-OS bezalako plataforma oso bat kudeatzen ari zaren ala ez, hildako kodeen azterketa zure kanalizazioan integratzeak kode-basearen higienea betetzen laguntzen du bateratze bakoitzean.
We use cookies to improve your experience and analyze site traffic. Cookie Policy