Hacker News

Show HN: Rev-dep - 20x méi séier knip.dev Alternativ bauen an Go

Kommentaren

14 min read Via github.com

Mewayz Team

Editorial Team

Hacker News

Déi verstoppt Steier op all wuessend Software Team

All Softwareprojet, dee laang genuch iwwerlieft, steet schlussendlech mat der selwechter roueger Kris: d'Codebase fänkt méi séier un wéi d'Team et versteet. Fonctiounen déi kee rifft, Exporter déi erstallt goufen fir eng Feature déi am Joer 2022 verschéckt gouf a roueg ofgeschaaft gouf, Komponenten déi op der Disk liewen awer ni e Browser erreechen. Dëst ass keng Schläifheet - et ass Physik. Équipë plënneren séier, Ufuerderunge änneren, an Entropie ass onermiddlechen. D'Fro ass net ob Är Codebase doudege Code huet. D'Fro ass wéi vill et Iech elo kascht.

No Fuerschung vum Google Ingenieursproduktivitéitsteam verbréngen d'Entwéckler am Duerchschnëtt 42% vun hirer Kodéierungszäit fir existente Code ze liesen an ze verstoen anstatt nei Funktionalitéit ze schreiwen. Wann dee existente Code Dausende vu Linnen enthält, déi keen Zweck méi déngen, schieft dee Prozentsaz nach méi héich. Fir en Team vun zéng Ingenieuren sinn dat effektiv véier Vollzäitaarbechter, déi näischt produktiv maachen - net well se faul sinn, mee well hir Tools net mat der Geschwindegkeet halen, bei där d'Software alternd ass.

Dofir generéiert eng nei Welle vun Entwéckler-Tooling op Systemsprooche wéi Go a Rust richteg Opreegung an Ingenieurskreesser. Tools wéi Rev-dep - e Reverse Ofhängegkeetsanalysator, dee behaapt 20x méi séier ze lafen wéi déi populär JavaScript-baséiert knip.dev - representéieren méi wéi nëmmen inkrementell Verbesserung. Si signaliséieren eng fundamental Iwwerleeung wéi mir den Entwécklungsprozess selwer instrumentéieren.

Wat ëmgedréint Ofhängegkeet Analyse tatsächlech mécht

Ier Dir versteet firwat d'Geschwindegkeet sou wichteg ass, hëlleft et ze verstoen wat Ofhängegkeetsanalyse Tools tatsächlech maachen. An engem JavaScript- oder TypeScript-Projet importéiert all Datei vun anere Dateien. All Funktioun, Klass oder Konstant, déi aus engem Modul exportéiert gëtt, erstellt eng potenziell Ofhängegkeet - eppes op wat aner Deeler vun der Codebase vertrauen kënnen. "Reverse" Ofhängegkeetsanalyse dréit dës Perspektiv ëm: amplaz ze froen "op wat hänkt dëse Modul of", freet se "wat hänkt vun dësem Modul of?"

Wann d'Äntwert op déi zweet Fro "näischt" ass, hutt Dir doudege Code fonnt. En Export deen näischt importéiert ass Offall. Eng Funktioun déi näischt nennt ass technesch Schold mat engem monatlecht Zënssaz. Ëmgekéiert Ofhängegkeetsinstrumenter plangen systematesch Är ganz Projetsgrafik, kartéiert all Bezéiung tëscht Moduler, a Uewerfläch d'Knäppercher déi keng inbound Verbindungen hunn. D'Resultat ass e präzisen Audit vun allem an Ärer Codebase, déi sécher ewechgeholl ka ginn.

Knip.dev mécht dëst gutt fir JavaScript an TypeScript Projeten, an et gëtt wäit an der Gemeinschaft respektéiert. Awer et ass a JavaScript geschriwwen, dat heescht datt et op Node.js leeft, dat heescht datt et all Node seng Single-threaded Leeschtungsbeschränkungen ierft wann Dir grouss-Skala Dateisystem Traversal a Symbolanalyse mécht. Fir e Projet mat 500 Dateien ass dëst gutt. Fir e Projet mat 50.000 Dateien - d'Aart vu Monorepo déi richteg Entreprise SaaS Produkter mécht - kann d'Analyse Minutten daueren. A Minutten, bei der Kadens, déi modern CI/CD Pipelines funktionnéieren, ass en Dealbreaker.

Firwat Go ännert d'Berechnung

Go gouf vun Ufank un entworf fir genau d'Aart vun der Aarbechtsbelaaschtung déi Ofhängegkeetsanalyse verlaangt: séier Datei I/O, exzellente Concurrency Primitiv a minimale Runtime Overhead. Wou Node.js eng Aufgab gläichzäiteg op engem eenzege Fuedem veraarbecht an op Callbacks hänkt a versprécht fir Parallelismus ze fälschen, kann Go Dausende vu Goroutinen auswierken, déi wirklech parallel iwwer all verfügbare CPU Cores ausféieren. Fir eng Aufgab déi Honnerte vu Fichieren liesen, hir ASTs analyséieren an eng Grafik vu Symbolverhältnisser bauen, iwwersetzt dësen architektoneschen Ënnerscheed direkt an d'Maueruhrleistung.

Den 20x Speedup behaapt vum Rev-dep ass keng Magie - et ass wat geschitt wann Dir déi richteg Sprooch mam richtege Problem passt. Go's kompiléiert Natur bedeit och keng JIT Warmup Strof. Vum kale Start bis zur kompletter Analyse funktionnéiert e Go-Binär mat bal Peak-Leeschtung. Déi praktesch Implikatioun ass datt d'Analyse déi 90 Sekonnen an engem Node-baséierten Tool gedauert huet a manner wéi 5 Sekonnen an engem gutt ëmgesate Go Äquivalent fäerdeg ass. Dat ass den Ënnerscheed tëscht engem Scheck deen d'Entwéckler iwwersprangen well et "éiweg dauert" an engem deen op all Verpflichtung leeft ouni datt iergendeen den Overhead bemierkt.

"De beschten Entwéckler-Tool ass een deen aus dem Wee geet. Wann Är Analyse-Suite dräi Minutten zu all CI-Pipeline bäidréit, fannen d'Entwéckler Weeër fir se ze iwwersprangen. Geschwindegkeet ass net gutt ze hunn - et ass d'Viraussetzung fir d'Adoptioun."

De Business Case fir Codebase Hygiène

Dout Code ass net nëmmen en Entwéckler Ästhetik Problem - et huet konkret Geschäftskonsequenzen déi sech mat der Zäit zesummesetzen. Bedenkt wat opgeblosen Codebasen tatsächlech Organisatiounen kaschten:

  • Méi laang Bauzäiten déi Ofbau Pipelines verlangsamen an d'Zuel vun de Verëffentlechungen reduzéieren déi e Team sécher pro Woch verschéckt ka
  • Héich kognitiv Belaaschtung fir Onboarding-Ingenieuren, déi Woche musse verbréngen fir aktiv Mustere vun opginnen ze z'ënnerscheeden
  • Vergréissert Bündelgréissten déi d'Performance vun der Applikatioun schueden, besonnesch a Webapps, wou all Kilobyte d'Laaschtzäiten an d'Konversiounsraten beaflosst
  • Sécherheetsfläch Expansioun - doudege Code deen nach ëmmer Ofhängegkeeten enthält ass nach ëmmer e Vektor fir Schwachstelle an dëse Packagen
  • Test Suite bloat wou Tester fir ewechgeholl Funktionalitéit weider lafen, CI-Minuten verbrauchen, an heiansdo op konfus Weeër versoen
  • Falsch Komplexitéitssignaler déi architektonesch Entscheedunge méi schwéier maachen well et net kloer ass wat dréit a wat vestigial ass

Eng 2023-Studie vun der DevOps Research and Assessment (DORA) Grupp huet festgestallt datt Teams mat staarke Codequalitéitspraktiken - inklusiv reegelméissegen doudege Codeentfernung - 2.4x méi dacks verschéckt hunn an 7x manner Ännerungsfehlraten haten wéi Teams déi technesch Schold accumuléieren. D'Korrelatioun ass net zoufälleg. Propper Codebase si méi einfach ze raisonnéieren, méi einfach ze testen a méi einfach sécher z'änneren.

Fir Entreprisen déi op Plattformen wéi Mewayz bauen - déi 138.000 Benotzer iwwer 207 verschidde Geschäftsmodule reagéiert, rangéiert vu CRM a Payroll bis Flottmanagement a Link-in-Bio Tools - Codebase Gesondheet huet d'Inset multiplizéiert. Wann Är Plattform esou vill funktionell Domainen iwwerspant, ass d'Integratiounsfläch tëscht Moduler enorm. Onbenotzt Exporter an engem Kärmodul kënne falsch Erwaardungen fir ofhängeg Moduler erstellen, onnéideg Re-Rendeuren an der UI-Schicht ausléisen, an d'Ofhängegkeetsgrafik komplizéiert op Weeër déi zukünfteg Ännerungen riskant maachen.

Integratioun vun Ofhängegkeetsanalyse an modernen Entwécklungsworkflows

Déi reell Kraaft vu schnelle Tooling wéi Rev-dep ass net déi eemoleg Botzen déi et erméiglecht - et ass d'Fäegkeet fir kontinuéierlech Analyse als Deel vun Ärem normale Entwécklungszyklus auszeféieren. Wann en doudege Code Scan 4 Sekonnen dauert anstatt 4 Minutten, kënnt Dir et op Är Pre-Commit Hooks addéieren. Wann et 4 Sekonnen amplaz vu 4 Minutten dauert, kann Är CI Pipeline eng Pull-Ufro ausfalen, déi nei onbenotzt Exporter aféieren anstatt se roueg ze accumuléieren.

💡 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 →

Dës Verréckelung vun "Véierel-Botz-Event" op "kontinuéierlech Qualitéitspaart" ass analog zu deem wat geschitt ass, wann d'Linters séier genuch gi fir op all Tastatur an enger IDE ze lafen. Ier ESLint an Echtzäit gelaf ass, gouf de Codestil duerch periodesch Codebewäertungen duerchgesat. Duerno gouf et Ambient - Deel vun der Feedback Loop Entwéckler erlieft beim Schreiwen vum Code, net duerno. Schnell Ofhängegkeetsanalyse kann deeselwechten Ambientqualitéitsdrock ronderëm dout Code erstellen.

Den Workflow opzestellen beinhalt normalerweis dräi Komponenten:

  1. Baseline Analyse: Fuert den Tool géint Är aktuell Codebase fir d'Skala vum existente doudege Code ze verstoen. Probéiert net alles op eemol ze fixéieren - Triage no Modul a Prioritéit no Risiko.
  2. CI Duerchféierung: Füügt d'Analyse op Är Pipeline mat engem Schwell un - versoen op all nei agefouert onbenotzt Exporter, awer fällt net op existent bis Dir se gebotzt hutt.
  3. Geplangte Botzsprints: Benotzt den Output vum Tool fir regelméisseg Botzaarbecht ze guidéieren, d'Zuel vun doudege Coden als Teamgesondheetsmetrik iwwer Zäit ze verfollegen.

Wat d'Go Tooling Renaissance Signaler fir SaaS Builders

Rev-dep ass Deel vun engem méi breet Muster am Entwéckler Tooling: Héichleistungsalternativer zu etabléierten JavaScript Tools, gebaut a Go oder Rust, erschéngen an all Kategorie. Biome ersat ESLint a Prettier fir vill Équipen. Turbopack an Rspack iessen Webpack Mëttegiessen. Bun Erausfuerderung Node.js selwer. De gemeinsame Fuedem ass datt dës Tools net nëmmen inkrementell Verbesserung ubidden - si bidden Schrëttfunktiounsverbesserungen déi änneren wat praktesch ass.

Fir SaaS Firmen déi komplex Multi-Modul Produkter bauen, huet dës Tooling Renaissance direkt Implikatioune fir d'Ingenieurgeschwindegkeet. Dem Mewayz seng 207-Modularchitektur - iwwer alles aus HR a Paieziedel bis Buchungssystemer an Analyse-Dashboards - representéiert genee déi Aart vu grousser, interkonnektéierter Codebase wou séier, korrekt Ofhängegkeetsanalyse operationell kritesch gëtt. Wann eng Ännerung vun engem gemeinsame Utility-Modul theoretesch duerch Dosende vu Feature-Module kéint rëselen, ass bal direkt Visibilitéit an déi aktuell Ofhängegkeetsgrafik net nëmme praktesch - et ass d'Aart vun der Infrastruktur déi deier Produktiounsfäll verhënnert.

D'Kapazitéit fir "wat tatsächlech dës Funktioun benotzt" an ënner fënnef Sekonnen ze beäntweren anstatt fënnef Minutten ännert wéi d'Ingenieuren Entscheedungen treffen. Et senkt d'Käschte vun der Enquête, dat heescht datt Ingenieuren méi dacks ënnersichen, dat heescht datt se besser Entscheedungen treffen. Dëst ass de komponéierte Rendement op Investitioun a séier Tooling, deen dacks iwwersinn gëtt wann Organisatiounen un d'Entwécklerproduktivitéitsausgaben denken.

Dout Code Eliminatioun Deel vun Ärer Ingenieurskultur maachen

Technologie eleng baut keng propper Codebasen - Kultur mécht. Tools wéi Rev-dep bidden d'Fäegkeet, awer dës Fäegkeet a konsequent Praxis ëmzewandelen erfuerdert organisatoresch Engagement. Déi effektivst Teams behandelen dout Code Metriken déiselwecht wéi se d'Testofdeckung behandelen: als e siichtbaren, verfollegte Indikator vun der Codebase Gesondheet, déi an Ingenieursversammlungen iwwerpréift gëtt an an d'Sprintplanung agefouert gëtt.

E puer spezifesch kulturell Praktiken, déi gutt funktionnéieren, enthalen d'Bezeechnung vun "Code Läschdeeg" - periodesch Eventer wou dat explizit Zil ass de Code ze läschen anstatt en derbäi ze ginn. Netlify huet dëst berühmt gamifizéiert andeems Leaderboards lafen déi Netzlinnen geläscht verfollegen. Stripe huet ëffentlech geschriwwen iwwer hir Praxis fir d'Code Läschung als éischtklasseg Ingenieursbeitrag ze behandelen, gläichwäerteg mat Feature Aarbecht. De Mentalitéitswiessel erfuerdert ass ze erkennen datt de beschte Code Code ass deen net existéiert: all Zeil déi Dir net schreift ass eng Zeil déi Dir ni muss erhalen, testen, debuggen oder engem neien Employeur erklären.

Fir Produktfirmen déi komplex Geschäftsoperatioune managen, ass d'Parallel ausserhalb vum Ingenieur gläich léierräich. Déi selwecht Disziplin déi Codebase méi gesond mécht - reegelméisseg Auditen, kloer Besëtz, Eliminatioun vu Saachen déi kee benotzt - mécht och Geschäftsprozesser méi gesond. Plattforme wéiMewayzGinn präzis gebaut fir Entreprisen déi Zort vun operationell Kloerheet ze ginn: eng vereenegt Vue op wéi eng Tools benotzt ginn, wéi eng Workflows Wäert generéieren, a wou organisatoresch Doudesgewiicht accumuléiert. Egal ob Dir onbenotzt Softwareexporter oder onbenotzt Geschäftsprozesser auditéiert, d'Basisdisziplin ass identesch.

D'Tools ginn méi séier, d'Feedback-Schleife ginn méi enk, an d'Equipen déi haut an Codebase Hygiène Infrastruktur investéieren, bauen e komponéierte Virdeel deen Dividenden fir Joeren ausbezuelt. Rev-dep a seng Kohort vu Go-powered Entwéckler Tools sinn net nëmmen interessant Benchmarks - si sinn d'Infrastrukturschicht déi nohalteg Software Geschwindegkeet méiglech mécht. An an enger Welt wou d'Geschwindegkeet vun der Iteratioun de primäre kompetitive Virdeel fir Softwaregeschäfter ass, ass dat keng Peripherie. Et ass dat ganzt Spill.

Heefeg gestallte Froen

Wat mécht Rev-dep méi séier wéi knip.dev?

Rev-dep ass a Go gebaut, eng kompiléiert Systemsprooch optimiséiert fir gläichzäiteg a rau Ausféierungsgeschwindegkeet, wärend knip.dev op Node.js leeft. Dësen architektoneschen Ënnerscheed erlaabt Rev-dep Ofhängegkeetsgrafiken ze analyséieren an doudege Code bis zu 20x méi séier z'entdecken. Fir grouss Monorepos oder komplex Codebasen - wéi d'207-Modul-Architektur, déi dem Mewayz säi Business OS bei app.mewayz.com dréit - gëtt dee Performance-Lück an Echtzäit gespäichert op all CI Run.

Wéi vill doudege Code accumuléiert en typesche wuessende Projet?

Studien an anekdotesch Berichter vun Ingenieursteams suggeréieren datt reife Codebasen iwwerall vun 10% bis 35% onbenotzten oder onerreechbare Code droen kënnen. D'Problemverbindunge wéi d'Teams Skala - Feature ginn ofgeschaaft, APIe änneren, a Moduler ginn opginn ouni Botzen. Plattforme wéi Mewayz, déi iwwer 207 Geschäftsmoduler an engem eenzegen $ 19/mo Betribssystem konsolidéiert, vertrauen staark op systematesch Doudescode Detektioun fir d'Codebase schlank an erhalebar ze halen.

Ass Rev-dep gëeegent fir Teams déi keng JavaScript oder TypeScript benotzen?

Rev-dep konzentréiert sech momentan op JavaScript an TypeScript Ökosystemer, sou datt et eng direkt Alternativ zu knip.dev fir dës Ëmfeld mécht. Ënnerstëtzung fir zousätzlech Sprooche kann erweidert wéi de Projet reift. Wann Äert Team Web-baséiert Produkter oder SaaS Tools baut - ähnlech wéi Mewayz säi komplette Business OS bei app.mewayz.com liwwert - an Äre Stack ass JS/TS-schwéier, Rev-dep ass et derwäert ze evaluéieren als Deel vun Ärem Entwéckler Toolchain haut.

Kann ech Rev-dep a meng bestehend CI/CD Pipeline integréieren?

Jo. Rev-dep ass als CLI-Tool entworf, wat et einfach mécht an all CI / CD Pipeline niewent Äre existente Linting- an Testschrëtt ze falen. Säi Geschwindegkeetsvirdeel ass besonnesch wäertvoll an automatiséierte Pipelines, wou méi séier Feedback-Schleifen d'Waardezäite vum Entwéckler reduzéieren. Egal ob Dir e schlanke Startup leeft oder eng vollstänneg Plattform verwaltet wéi dem Mewayz $ 19 / mo Business OS, d'Integratioun vun doudege Code Analyse an Ärer Pipeline hëlleft Codebase Hygiène bei all Fusioun ëmzesetzen.