Hacker News

Montre HN: Rev-dep - 20 fwa pi vit knip.dev altènatif bati nan Go

Kòmantè

15 min read Via github.com

Mewayz Team

Editorial Team

Hacker News

Taks kache sou chak ekip lojisyèl k ap grandi

Chak pwojè lojisyèl ki siviv ase tan evantyèlman fè fas a menm kriz trankil la: baz kòd la kòmanse grandi pi vit pase ekip la ka konprann li. Fonksyon pèsonn pa rele, ekspòtasyon ki te kreye pou yon karakteristik ki te anbake an 2022 epi ki te demode tou dousman, eleman ki ap viv sou disk men ki pa janm rive nan yon navigatè. Sa a se pa neglijans - li nan fizik. Ekip yo deplase vit, kondisyon yo chanje, ak entropi se inplakabl. Kesyon an se pa si wi ou non baz kòd ou a gen kòd ki mouri. Kesyon an se konbyen li koute ou kounye a.

Dapre rechèch ekip pwodiktivite jeni Google la, devlopè yo pase an mwayèn 42% tan kodaj yo li ak konprann kòd ki deja egziste olye yo ekri nouvo fonksyonalite yo. Lè kòd sa a ki egziste deja gen ladann dè milye de liy ki pa sèvi okenn objektif ankò, pousantaj sa a se menm pi wo. Pou yon ekip dis enjenyè, sa se efektivman kat anplwaye aplentan ki pa fè anyen pwodiktif - pa paske yo parese, men paske zouti yo pa kenbe vitès ak vitès lojisyèl an laj.

Se poutèt sa yon nouvo vag zouti devlopè ki bati sou langaj sistèm tankou Go ak Rust ap jenere vrè eksitasyon nan sèk jeni. Zouti tankou Rev-dep — yon analizeur depandans ranvèse ki fè konnen kouri 20 fwa pi vitpase knip.dev popilè ki baze sou JavaScript — reprezante plis pase yon amelyorasyon incrémentielle. Yo siyal yon repanse fondamantal sou fason nou enstriman pwosesis devlopman nan tèt li.

Kisa analiz depandans ranvèse fè aktyèlman

Avan ou konprann poukisa vitès enpòtan anpil, li ede w konprann ki sa zouti analiz depandans yo aktyèlman ap fè. Nan yon pwojè JavaScript oswa TypeScript, chak dosye enpòte soti nan lòt dosye. Chak fonksyon, klas, oswa konstan ki ekspòte soti nan yon modil kreye yon depandans potansyèl - yon bagay ke lòt pati nan kodbaz la ta ka konte sou. Analiz depandans "Reverse" ranvèse pèspektiv sa a: olye pou yo mande "de ki sa modil sa a depann de," li mande "ki sa ki depann de modil sa a?"

Si repons pou dezyèm kesyon sa a se "anyen," ou jwenn kòd ki mouri. Yon ekspòtasyon ke pa gen anyen enpòte se fatra. Yon fonksyon ki pa gen anyen rele se dèt teknik ak yon to enterè chak mwa. Zouti depandans ranvèse sistematikman mache tout graf pwojè ou a, kat tout relasyon ant modil yo, epi sifas nœuds ki pa gen okenn koneksyon entrant. Rezilta a se yon odit egzak tout bagay ki nan baz kod ou a ki ka retire san danje.

Knip.dev fè sa byen pou pwojè JavaScript ak TypeScript, epi li lajman respekte nan kominote a. Men, li ekri nan JavaScript, ki vle di li kouri sou Node.js, ki vle di li eritye tout kontrent pèfòmans sèl-threaded Node a lè w ap fè gwo echèl sistèm dosye ak analiz senbòl. Pou yon pwojè ki gen 500 fichye, sa a bon. Pou yon pwojè ki gen 50,000 fichye - kalite monorepo ki pouse pwodwi SaaS reyèl antrepriz - analiz la ka pran minit. Ak minit, nan kadans modèn CI/CD tiyo opere nan, se yon dealbreaker.

Poukisa Go Chanje Kalkil la

Go te fèt depi nan baz pou egzakteman kantite travay ke analiz depandans mande: rapid I/O fichye, ekselan primitif konkourans, ak sou tèt exécution minim. Kote Node.js trete yon sèl travay alafwa sou yon sèl fil epi depann sou apèl ak pwomès fo paralelis, Go ka anjandre dè milye de goroutines ki vrèman egzekite an paralèl atravè tout nwayo CPU ki disponib. Pou yon travay ki enplike li plizyè santèn fichye, analize AST yo, ak bati yon graf nan relasyon senbòl, diferans achitekti sa a tradui dirèkteman nan pèfòmans revèy miray la.

Rev-dep reklame yon vitès 20x la pa majik - se sa k ap pase lè ou matche ak bon lang ak pwoblèm nan. Nati konpile Go a vle di tou pa gen okenn penalite chofe JIT. Soti nan kòmansman frèt pou konplete analiz, yon binè Go ap opere nan pèfòmans tou pre-pik. Enplikasyon an pratik se ke analiz ki te pran 90 segonn nan yon zouti ki baze sou Node ka ranpli nan mwens pase 5 segonn nan yon ekivalan Go ki byen aplike. Sa a se diferans ki genyen ant yon chèk ke devlopè sote paske li "pran pou tout tan" ak yon sèl ki kouri sou chak komite san pèsonn remake sou tèt la.

"Pi bon zouti devlopè a se youn ki soti nan chemen an. Si suite analiz ou a ajoute twa minit nan chak tiyo CI, devlopè yo pral jwenn fason pou sote li. Vitès se pa yon bèl-a-genyen - li se avantou pou adopsyon."

Ka biznis pou ijyèn Codebase

Kod ki mouri a se pa sèlman yon pwoblèm estetik pwomotè - li gen konsekans biznis konkrè ki konpoze sou tan. Konsidere ki sa kodbaz gonfleman koute òganizasyon yo:

  • Pi long tan konstriksyon ki ralanti tiyo deplwaman yo epi redwi kantite lage yon ekip ka voye an sekirite pa semèn
  • Pi wo chay kognitif pou enjenyè abònman yo, ki dwe pase plizyè semèn pou fè distenksyon ant modèl aktif ak modèl abandone yo
  • Ogmantasyon gwosè pake ki fè mal pèfòmans aplikasyon an, patikilyèman nan aplikasyon entènèt kote chak kilookte afekte tan chaj ak pousantaj konvèsyon
  • Agrandisman sifas sekirite — kòd ki mouri ki toujou gen depandans se toujou yon vektè pou frajilite nan pake sa yo
  • Tès suite gonfleman kote tès pou retire fonksyon yo kontinye ap kouri, konsome minit CI, epi detanzantan echwe nan fason konfizyon
  • Fo siyal konpleksite ki rann desizyon achitekti pi difisil paske li pa klè sa ki pote chay ak sa ki vestijyal

Yon etid 2023 pa gwoup DevOps Research and Assessment (DORA) te jwenn ke ekip ki gen bon jan kalite kòd fò - ki gen ladan regilye retire kòd mouri - anbake 2.4 fwa pi souvan epi yo te gen 7 fwa pi ba pousantaj echèk chanjman pase ekip ki kite dèt teknik akimile. Korelasyon an pa azar. Netwaye kodbaz yo pi fasil pou rezone, pi fasil pou teste, epi pi fasil pou chanje san danje.

Pou biznis ki bati sou platfòm tankou Mewayz — ki bay 138,000 itilizatè atravè 207 modil biznis diferan ki sòti nan CRM ak pewòl rive nan jesyon flòt ak zouti link-in-bio — codebase health te miltipliye bèl avantaj. Lè platfòm ou a kouvri anpil domèn fonksyonèl, sifas entegrasyon ant modil yo menmen. Ekspòtasyon ki pa itilize nan yon modil debaz yo ka kreye fo atant pou modil depandan yo, deklanche re-rann initil nan kouch UI a, epi konplike graf depandans la nan fason ki fè chanjman nan lavni riske.

Entegre analiz depandans nan travay devlopman modèn

Vrè pouvwa zouti rapid tankou Rev-dep se pa netwayaj yon sèl fwa li pèmèt - se kapasite pou fè analiz kontinyèl kòm yon pati nan sik devlopman nòmal ou. Lè yon eskanè kòd mouri pran 4 segonn olye de 4 minit, ou ka ajoute li nan kwòk pre-komèt ou yo. Lè li pran 4 segonn olye de 4 minit, tiyo CI ou a ka echwe yon demann rale ki prezante nouvo ekspòtasyon ki pa itilize olye ke kite yo akimile an silans.

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

Chanjman sa a soti nan "evènman netwayaj chak trimès" pou ale nan "pòtay bon jan kalite kontinyèl" se analogue ak sa ki te pase lè linters te vin ase vit pou kouri sou chak frap nan yon IDE. Anvan ESLint te kouri an tan reyèl, style kòd te ranfòse pa revize kòd peryodik. Apre, li te vin anbyen - yon pati nan devlopè yo bouk fidbak ki gen eksperyans pandan y ap ekri kòd, pa apre. Analiz depandans rapid ka kreye menm presyon anbyen kalite alantou kòd mouri.

Enfigirasyon workflow sa a anjeneral enplike twa eleman:

  1. Analiz debaz: Kouri zouti a kont baz kod ou ye kounye a pou w konprann echèl kòd ki mouri ki egziste deja. Pa eseye ranje tout bagay an menm tan — triyay pa modil epi priyorite pa risk.
  2. Anfòsman CI: Ajoute analiz la nan tiyo ou a ak yon papòt — echwe sou nenpòt ekspòtasyon ki fèk prezante ki pa itilize, men pa echwe sou ekspòtasyon ki deja egziste jiskaske ou fin netwaye yo.
  3. Sprint netwayaj pwograme: Sèvi ak pwodiksyon zouti a pou gide travay netwayaj regilye, swiv konte kòd ki mouri kòm yon mezi sante ekip sou tan.

What the Go Tooling Renaissance Signals for SaaS Builders

Rev-dep se yon pati nan yon modèl pi laj nan zouti devlopè: altènativ wo-pèfòmans nan zouti JavaScript etabli, ki bati nan Go oswa Rust, ap parèt nan chak kategori. Biome ranplase ESLint ak Prettier pou anpil ekip. Turbopack ak Rspack ap manje manje midi Webpack la. Pen se defi Node.js tèt li. Fil komen an se ke zouti sa yo pa sèlman ofri amelyorasyon incrémentielle - yo ofri amelyorasyon etap-fonksyon ki chanje sa ki pratik.

Pou konpayi SaaS ki bati pwodwi konplèks, milti-modil, renesans zouti sa a gen enplikasyon dirèk sou vitès jeni. Achitekti 207 modil Mewayz la - ki kouvri tout bagay soti nan HR ak pewòl rive nan sistèm anrjistreman ak tablodbò analytics - reprezante egzakteman ki kalite gwo kodbaz ki konekte ansanm kote analiz depandans rapid ak egzat vin operasyonèlman kritik. Lè yon chanjman nan yon modil sèvis piblik pataje teyorikman ta ka rid nan plizyè douzèn modil karakteristik, gen yon vizibilite pre-enstantane nan graf depandans aktyèl la se pa sèlman pratik - se kalite enfrastrikti ki anpeche ensidan pwodiksyon chè.

Kapasite pou reponn "sa ki aktyèlman itilize fonksyon sa a" nan mwens pase senk segonn olye ke senk minit chanje fason enjenyè yo pran desizyon. Li bese pri ankèt la, ki vle di enjenyè envestige pi souvan, ki vle di yo pran pi bon desizyon. Sa a se retounen nan envestisman an konpoze nan zouti rapid ki souvan vin neglije lè òganizasyon yo panse sou depans pwodiktivite pwomotè yo.

Fè eliminasyon kòd ki mouri a yon pati nan kilti jeni ou

Teknoloji pou kont li pa bati kod pwòp - kilti fè. Zouti tankou Rev-dep bay kapasite a, men vire kapasite sa a nan pratik ki konsistan mande yon angajman òganizasyonèl. Ekip ki pi efikas yo trete paramèt kòd ki mouri yo menm jan yo trete pwoteksyon tès yo: kòm yon endikatè vizib, ki swiv sante kòd ki vin revize nan reyinyon jeni yo epi ki konsidere yo nan planifikasyon sprint.

Kèk pratik kiltirèl espesifik ki travay byen gen ladan yo deziyen "jou efase kòd" - evènman peryodik kote objektif eksplisit la se retire kòd olye ke ajoute li. Netlify famezman te jwe sa a lè li te kouri klasman yo swiv liy nèt yo efase. Stripe te ekri piblikman sou pratik yo trete efase kòd kòm yon kontribisyon jeni premye klas, ki egal nan valè ak travay karakteristik. Chanjman mantalite ki nesesè a se rekonèt ke pi bon kòd la se kòd ki pa egziste: chak liy ou pa ekri se yon liy ou pa janm oblije kenbe, teste, debogaj, oswa eksplike yon nouvo anplwaye.

Pou konpayi pwodwi ki jere operasyon biznis konplèks, paralèl la deyò nan jeni se egalman enstriktif. Menm disiplin ki fè kodbaz yo pi an sante - odit regilye, pwopriyetè klè, eliminasyon bagay pèsonn pa itilize yo - fè pwosesis biznis yo an sante tou. Platfòm tankou Mewayzyo bati jisteman pou bay biznis yo ki kalite operasyon klè: yon gade inifye sou ki zouti yo te itilize, ki workflows yo jenere valè, ak ki kote pwa mouri òganizasyonèl ap akimile. Kit w ap odit ekspòtasyon lojisyèl ki pa itilize yo oswa pwosesis biznis ki pa itilize yo, disiplin ki kache a idantik.

Zouti yo ap vin pi vit, bouk fidbak yo ap vin pi sere, ak ekip ki envesti nan enfrastrikti ijyèn kodbaz jodi a ap konstwi yon avantaj konpozisyon ki pral peye dividann pandan plizyè ane. Rev-dep ak kowòt li yo nan zouti devlopè Go-powered yo se pa sèlman referans enteresan - yo se kouch enfrastrikti ki fè vitès lojisyèl dirab posib. Ak nan yon mond kote vitès nan iterasyon se avantaj konpetitif prensipal la pou biznis lojisyèl, sa a pa yon enkyetid periferik. Se tout jwèt la.

Kesyon yo poze souvan

Kisa ki fè Rev-dep pi vit pase knip.dev?

Rev-dep bati nan Go, yon langaj sistèm konpile ki optimize pou konkouran ak vitès egzekisyon anvan tout koreksyon, tandiske knip.dev kouri sou Node.js. Diferans achitekti sa a pèmèt Rev-dep analize graf depandans ak detekte kòd ki mouri jiska 20 fwa pi vit. Pou gwo monorepo oswa baz kod konplèks - tankou achitekti 207-modil ki alimante eksplwatasyon biznis Mewayz la nan app.mewayz.com - diferans pèfòmans sa a tradui nan tan reyèl sove sou chak kouri CI.

Ki kantite kòd ki mouri yon pwojè tipik k ap grandi akimile?

Etid ak rapò anekdotik ekip jeni sijere ke baz kod ki gen matirite ka pote nenpòt kote ant 10% a 35% kòd ki pa itilize oswa ki pa ka jwenn. Pwoblèm nan konpoze kòm ekip yo echèl - karakteristik yo vin obsolete, API yo chanje, ak modil yo abandone san yo pa netwaye. Platfòm tankou Mewayz, ki konsolide plis pase 207 modil biznis nan yon sèl sistèm operasyon $19/mois, konte anpil sou deteksyon sistematik kòd ki mouri pou kenbe kodbaz la mèg ak antretyen.

Èske Rev-dep apwopriye pou ekip ki pa sèvi ak JavaScript oswa TypeScript?

Rev-dep kounye a konsantre sou ekosistèm JavaScript ak TypeScript, sa ki fè li yon altènatif dirèk nan knip.dev pou anviwònman sa yo. Sipò pou lòt lang ka elaji kòm pwojè a matirite. Si ekip ou a bati pwodwi ki baze sou entènèt oswa zouti SaaS - menm jan ak fason Mewayz delivre eksplwatasyon biznis konplè li yo nan app.mewayz.com - ak pil ou a se JS/TS-lou, Rev-dep vo byen evalye kòm yon pati nan chèn zouti devlopè ou jodi a.

Èske mwen ka entegre Rev-dep nan tiyo CI/CD mwen ki egziste deja?

Wi. Rev-dep fèt kòm yon zouti CLI, sa ki fè li fasil pou lage nan nenpòt tiyo CI/CD ansanm ak etap liting ak tès ou ki egziste deja. Avantaj vitès li yo gen anpil valè espesyalman nan tiyo otomatik kote bouk fidbak pi vit diminye tan datant pwomotè yo. Kit ou ap dirije yon demaraj mèg oswa jere yon platfòm konplè tankou eksplwatasyon biznis $ 19 / mwa Mewayz a, entegre analiz kòd ki mouri nan tiyo ou a ede ranfòse ijyèn kodbaz nan chak fizyon.