Fihan HN: Rev-dep – 20x yiyara knip.dev yiyan kọ ni Go
Comments
Mewayz Team
Editorial Team
The farasin Tax lori Gbogbo Dagba Software Egbe H2> Gbogbo iṣẹ akanṣe sọfitiwia ti o ye gun to nikẹhin dojukọ aawọ idakẹjẹ kanna: codebase bẹrẹ dagba ni iyara ju ẹgbẹ le loye rẹ. Awọn iṣẹ ko si ẹnikan ti o pe, awọn okeere ti o ṣẹda fun ẹya kan ti o firanṣẹ ni ọdun 2022 ati pe o ni ipalọlọ ni idakẹjẹ, awọn paati ti n gbe lori disiki ṣugbọn ko de ẹrọ aṣawakiri kan. Eyi kii ṣe isokuso - fisiksi ni. Awọn ẹgbẹ n gbe ni iyara, awọn ibeere yipada, ati entropy jẹ alailẹṣẹ. Ibeere naa kii ṣe boya koodu koodu rẹ ni koodu ti o ku. Ibeere naa ni iye ti o n san fun ọ ni bayi.
Gẹgẹbi iwadii lati ọdọ ẹgbẹ iṣelọpọ imọ-ẹrọ Google, awọn olupilẹṣẹ lo aropin ti42% ti akoko ifaminsi wọnkika ati agbọye koodu ti o wa tẹlẹ ju kikọ iṣẹ ṣiṣe tuntun. Nigbati koodu ti o wa tẹlẹ ba pẹlu ẹgbẹẹgbẹrun awọn laini ti ko ṣe iṣẹ fun idi kan mọ, ipin ogorun yẹn paapaa ga julọ. Fun ẹgbẹ kan ti awọn onimọ-ẹrọ mẹwa, iyẹn ni imunadoko awọn oṣiṣẹ alakooko mẹrin mẹrin ti wọn ko ṣe ohunkohun ti o munadoko - kii ṣe nitori pe wọn ọlẹ, ṣugbọn nitori pe awọn irinṣẹ wọn ko ni iyara pẹlu iyara ni eyiti awọn ọjọ ori sọfitiwia.
Eyi ni idi ti igbi tuntun ti irinṣẹ irinṣẹ idagbasoke ti a ṣe lori awọn eto eto bii Go ati Rust n ṣe idasi-ara gidi ni awọn iyika imọ-ẹrọ. Awọn irinṣẹ bii Rev-dep — olutupalẹ igbẹkẹle iyipada ti o sọ pe o ṣiṣẹ20x yiyaraju orisun JavaScript olokiki knip.dev - ṣe aṣoju diẹ sii ju ilọsiwaju afikun lọ. Wọn ṣe afihan atunyẹwo ipilẹ ti bi a ṣe ṣe ohun elo ilana idagbasoke funrararẹ.
Kini Yii Itupalẹ Igbẹkẹle Yipada Ṣe Nitootọ
Ṣaaju ki o to ni oye idi ti iyara ṣe pataki pupọ, o ṣe iranlọwọ lati loye kini awọn irinṣẹ itupalẹ igbẹkẹle n ṣe. Ninu JavaScript tabi iṣẹ akanṣe TypeScript, gbogbo faili gbe wọle lati awọn faili miiran. Gbogbo iṣẹ, kilasi, tabi igbagbogbo ti o gba okeere lati inu module ṣẹda igbẹkẹle ti o pọju - nkan ti awọn ẹya miiran ti codebase le gbarale. Itupalẹ igbẹkẹle “iyipada” yi irisi yii pada: dipo bibeere “kini module yii dale lori,” o beere “kini o da lori module yii?”Ti idahun si ibeere keji naa jẹ “ko si nkankan,” o ti rii koodu ti o ku. Ọja okeere ti ko si ohun ti o gbe wọle jẹ egbin. Iṣẹ kan ti ko si ohun ti o pe ni gbese imọ-ẹrọ pẹlu oṣuwọn iwulo oṣooṣu. Awọn irinṣẹ igbẹkẹle yiyipada ni ọna ṣiṣe rin gbogbo aworan ise agbese rẹ, ṣe maapu gbogbo ibatan laarin awọn modulu, ati dada awọn apa ti ko ni awọn asopọ inbound. Abajade jẹ iṣayẹwo deede ti ohun gbogbo ninu koodu koodu rẹ ti o le yọ kuro lailewu.
Knip.dev ṣe eyi daradara fun JavaScript ati awọn iṣẹ akanṣe TypeScript, ati pe o jẹ ibowo pupọ ni agbegbe. Ṣugbọn a kọ ọ ni JavaScript, eyi ti o tumọ si pe o nṣiṣẹ lori Node.js, eyi ti o tumọ si pe o jogun gbogbo awọn ihamọ iṣẹ-ẹyọkan ti Node nigbati o n ṣe igbasilẹ eto faili nla-nla ati iṣiro aami. Fun iṣẹ akanṣe pẹlu awọn faili 500, eyi dara. Fun iṣẹ akanṣe pẹlu awọn faili 50,000 - iru monorepo ti o ṣe agbara awọn ọja SaaS ile-iṣẹ gidi - itupalẹ le gba awọn iṣẹju. Ati awọn iṣẹju, ni cadence igbalode CI/CD pipelines ṣiṣẹ ni, ni a dealbreaker.
Kí nìdí Lọ Ṣe Yipada Iṣiro naa
Go ti ṣe apẹrẹ lati ilẹ fun deede iru iṣẹ ṣiṣe ti o nilo itupalẹ igbẹkẹle: Faili iyara I/O, awọn iṣaju iṣaju ti o dara julọ, ati akoko ṣiṣe to kere ju. Ibi ti Node.js lakọkọ iṣẹ-ṣiṣe kan ni akoko kan lori kan nikan o tẹle ati ki o gbekele lori callbacks ati ki o ileri lati iro parallelism, Go le spawn egbegberun goroutines ti o lotitọ ṣiṣẹ ni afiwe kọja gbogbo wa Sipiyu inu ohun kohun. Fun iṣẹ ṣiṣe ti o kan kika awọn ọgọọgọrun awọn faili, ṣiṣayẹwo awọn AST wọn, ati kikọ aworan kan ti awọn ibatan aami, iyatọ ti ayaworan yii tumọ taara si iṣẹ ṣiṣe aago odi.
Iyara 20x ti Rev-dep sọ kii ṣe idan — o jẹ ohun ti o ṣẹlẹ nigbati o baamu ede ti o tọ si iṣoro to tọ. Iseda akojọpọ Go tun tumọ si pe ko si ijiya igbona JIT. Lati ibẹrẹ tutu lati pari itupalẹ, alakomeji Go kan n ṣiṣẹ ni iṣẹ ṣiṣe ti o sunmọ. Itumọ ti o wulo ni pe itupalẹ ti o gba awọn aaya 90 ni ohun elo orisun-Node le pari ni labẹ awọn aaya 5 ni deede Go ti a ṣe daradara. Iyẹn ni iyatọ laarin ayẹwo ti awọn olupilẹṣẹ foju nitori pe o “gba lailai” ati ọkan ti o nṣiṣẹ lori gbogbo iṣẹ laisi ẹnikan ti o ṣakiyesi oke.
"Ohun elo oluṣe idagbasoke ti o dara julọ jẹ ọkan ti o jade kuro ni ọna. Ti ibi-itupalẹ rẹ ba ṣafikun iṣẹju mẹta si gbogbo opo gigun ti epo CI, awọn olupilẹṣẹ yoo wa awọn ọna lati fo. Iyara kii ṣe ohun ti o wuyi-lati ni — o jẹ pataki ṣaaju fun isọdọmọ.”
Ọran Iṣowo fun Imọtoto Codebase
Koodu ti o ku kii ṣe iṣoro aesthetics ti o dagbasoke nikan - o ni awọn abajade iṣowo ti nja ti o ṣajọpọ lori akoko. Gbé ohun ti awọn koodu codebases ni iye owo awọn ajo:
- Awọn akoko kikọ gigun gunti o fa fifalẹ awọn opo gigun ti imuṣiṣẹ ati dinku nọmba awọn idasilẹ ti ẹgbẹ kan le gbe lọ lailewu ni ọsẹ kan
- Iru oye ti o ga julọfun awọn onimọ-ẹrọ lori ọkọ, ti o gbọdọ lo awọn ọsẹ ni iyatọ awọn ilana ti nṣiṣe lọwọ lati awọn ti a fi silẹ
- Awọn iwọn lapapo pọ siti o ṣe ipalara iṣẹ ṣiṣe ohun elo, pataki ni awọn ohun elo wẹẹbu nibiti gbogbo kilobyte yoo kan awọn akoko fifuye ati awọn oṣuwọn iyipada
- Imugboroosi dada aabo — koodu ti o ku ti o tun ni awọn igbẹkẹle ninu tun jẹ fekito fun awọn ailagbara ninu awọn idii wọnyẹn
- Idanwo suite bloatnibiti awọn idanwo fun iṣẹ ṣiṣe kuro tẹsiwaju lati ṣiṣẹ, jẹun awọn iṣẹju CI, ati lẹẹkọọkan kuna ni awọn ọna iruju
- Awọn ifihan agbara idiju eketi o mu ki awọn ipinnu ti ayaworan le le nitori pe ko ṣe akiyesi kini ohun ti o ru ati kini o jẹ iṣọṣọ
Iwadi 2023 nipasẹ Ẹgbẹ Iwadi ati Ayẹwo DevOps (DORA) rii pe awọn ẹgbẹ ti o ni awọn iṣe didara koodu to lagbara - pẹlu yiyọ koodu oku deede - ti a firanṣẹ 2.4x nigbagbogbo nigbagbogboati pe o ni 7x awọn oṣuwọn ikuna kekere iyipadaju awọn ẹgbẹ ti o jẹ ki gbese imọ-ẹrọ kojọpọ. Ibaṣepọ naa kii ṣe lairotẹlẹ. Awọn ipilẹ koodu mimọ rọrun lati ronu nipa, rọrun lati ṣe idanwo, ati rọrun lati yipada lailewu.
Fun awọn iṣowo ti o kọ lori awọn iru ẹrọ biMewayz - eyiti o ṣe agbara awọn olumulo 138,000 kọja awọn modulu iṣowo ọtọtọ 207 ti o wa lati CRM ati isanwo-owo si iṣakoso ọkọ oju-omi kekere ati awọn irinṣẹ ọna asopọ-in-bio - ilera codebase ti pọ si awọn ipin. Nigbati pẹpẹ rẹ ba kọja ọpọlọpọ awọn ibugbe iṣẹ ṣiṣe, dada isọpọ laarin awọn modulu jẹ nla. Awọn ọja okeere ti a ko lo ninu module mojuto le ṣẹda awọn ireti eke fun awọn modulu ti o gbẹkẹle, nfa awọn atunṣe ti ko wulo ni Layer UI, ati idiju awọn aworan igbẹkẹle ni awọn ọna ti o jẹ ki awọn iyipada ọjọ iwaju lewu.
Ṣiṣe Iṣayẹwo Igbẹkẹle Sinu Awọn ṣiṣan Idagbasoke Modern
Agbara gidi ti ohun elo irinṣẹ iyara bii Rev-dep kii ṣe afọmọ-akoko kan ti o mu ṣiṣẹ - o jẹ agbara lati ṣiṣe itupalẹ lilọsiwaju gẹgẹbi apakan ti ọna idagbasoke deede rẹ. Nigbati ọlọjẹ koodu ti o ku ba gba iṣẹju-aaya 4 dipo iṣẹju 4, o le ṣafikun si awọn ifikọ-iṣaaju iṣaaju rẹ. Nigbati o ba gba iṣẹju-aaya 4 dipo iṣẹju mẹrin, opo gigun ti epo CI le kuna ibeere fifa kan ti o ṣafihan awọn ọja okeere tuntun ti a ko lo dipo ki o jẹ ki wọn kojọpọ ni idakẹjẹ.
💡 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 →Yiyi lati “iṣẹlẹ afọmọ idamẹrin” si “ẹnu-ọna didara tẹsiwaju” jẹ afiwe si ohun ti o ṣẹlẹ nigbati awọn linters ti yara to lati ṣiṣẹ lori gbogbo bọtini bọtini ni IDE. Ṣaaju ki ESLint to ṣiṣẹ ni akoko gidi, aṣa koodu ti fi ipa mu nipasẹ awọn atunwo koodu igbakọọkan. Lẹhin, o di ibaramu - apakan ti awọn olupilẹṣẹ lupu esi ti o ni iriri lakoko kikọ koodu, kii ṣe lẹhin. Ayẹwo igbẹkẹle iyara le ṣẹda titẹ didara ibaramu kanna ni ayika koodu ti o ku.
Ṣiṣeto iṣan-iṣẹ yii ni igbagbogbo pẹlu awọn paati mẹta:
- Itupalẹ ipilẹ: Ṣiṣe awọn ọpa lodi si koodu koodu rẹ lọwọlọwọ lati loye iwọn ti koodu ti o ku tẹlẹ. Ma ṣe gbiyanju lati ṣatunṣe ohun gbogbo ni ẹẹkan — ipin nipasẹ module ki o ṣe pataki nipasẹ ewu.
- Imufinfin CI: Ṣafikun itupalẹ naa si opo gigun ti epo rẹ pẹlu iloro kan - kuna lori eyikeyi awọn ọja okeere ti a ko lo ti a ṣe tuntun, ṣugbọn maṣe kuna lori awọn ti o wa titi ti o fi sọ di mimọ.
- Sprints afọmọ ti a ṣe eto: Lo iṣelọpọ ohun elo lati ṣe itọsọna iṣẹ isọdọmọ deede, titọpa nọmba koodu ti o ku bi metiriki ilera ẹgbẹ kan ni akoko pupọ.
Kini Awọn ifihan agbara Renesansi Ọpa Lọ fun Awọn olupilẹṣẹ SaaS
Rev-dep jẹ apakan ti apẹrẹ ti o gbooro ni ohun elo oluṣe idagbasoke: awọn yiyan iṣẹ ṣiṣe giga si awọn irinṣẹ JavaScript ti iṣeto, ti a ṣe sinu Go tabi Rust, n farahan ni gbogbo ẹka. Biome rọpo ESLint ati Prettier fun ọpọlọpọ awọn ẹgbẹ. Turbopack ati Rspack n jẹ ounjẹ ọsan Webpack. Bun nija Node.js funrararẹ. Okun ti o wọpọ ni pe awọn irinṣẹ wọnyi kii ṣe imudara ilọsiwaju nikan - wọn funni ni awọn ilọsiwaju iṣẹ-igbesẹ ti o yi ohun ti o wulo pada.
Fun awọn ile-iṣẹ SaaS ile eka, awọn ọja-ọpọlọpọ-module, isọdọtun irinṣẹ irinṣẹ ni awọn ipa taara fun iyara ẹrọ. Mewayz's 207-modul faaji - leta ti ohun gbogbo lati HR ati owoosu to fowo si awọn ọna šiše ati atupale dashboards - duro gangan ni irú ti o tobi, interconnected codebase ibi ti sare, deede gbára onínọmbà di isẹ pataki. Nigbati iyipada si module IwUlO ti o pin le ni imọ-jinlẹ nipasẹ awọn dosinni ti awọn ẹya ara ẹrọ ẹya ara ẹrọ, nini hihan isunmọ lẹsẹkẹsẹ sinu aworan igbẹkẹle gangan kii ṣe irọrun nikan - o jẹ iru awọn amayederun ti o ṣe idiwọ awọn iṣẹlẹ iṣelọpọ gbowolori.
Agbara lati dahun "kini o nlo iṣẹ yii gangan" ni labẹ iṣẹju-aaya marun ju iṣẹju marun lọ yipada bi awọn onimọ-ẹrọ ṣe n ṣe ipinnu. O dinku iye owo iwadii, eyiti o tumọ si pe awọn onimọ-ẹrọ ṣe iwadii nigbagbogbo, eyiti o tumọ si pe wọn ṣe awọn ipinnu to dara julọ. Eyi ni ipadabọ iṣakojọpọ lori idoko-owo ni ohun-elo iyara ti a maṣe gbagbe nigbagbogbo nigbati awọn ẹgbẹ ba ronu nipa inawo iṣelọpọ iṣelọpọ.
Ṣiṣe Imukuro koodu ti o ku Apá ti Asa Imọ-ẹrọ Rẹ
Imọ-ẹrọ nikan ko kọ awọn ipilẹ koodu mimọ — aṣa ṣe. Awọn irinṣẹ bii Rev-dep n pese agbara naa, ṣugbọn titan agbara yẹn sinu adaṣe deede nilo ifaramo ajo. Awọn ẹgbẹ ti o munadoko julọ ṣe itọju awọn metiriki koodu ti o ku ni ọna kanna ti wọn tọju agbegbe idanwo: bi ifihan ti o han, itọpa ti ilera codebase ti o ṣe atunyẹwo ni awọn ipade imọ-ẹrọ ati ki o ṣe ifọkansi sinu igbero sprint.
Diẹ ninu awọn iṣe aṣa kan pato ti o ṣiṣẹ daradara pẹlu yiyan “awọn ọjọ piparẹ koodu” - awọn iṣẹlẹ igbakọọkan nibiti ibi-afẹde ti o fojuhan ni lati yọ koodu kuro dipo ki o ṣafikun. Netlify olokiki ni ere yii nipasẹ ṣiṣiṣẹ awọn bọọdu adari titọpa awọn laini apapọ ti paarẹ. Stripe ti kọ ni gbangba nipa iṣe wọn ti atọju piparẹ koodu bi ilowosi imọ-ẹrọ kilasi akọkọ, dogba ni iye si iṣẹ ẹya. Iyipada iṣaro ti o nilo ni mimọ pe koodu ti o dara julọ jẹ koodu ti ko si: gbogbo ila ti o ko kọ jẹ ila ti o ko ni lati ṣetọju, idanwo, yokokoro, tabi ṣe alaye si ọya titun kan.Fun awọn ile-iṣẹ ọja ti n ṣakoso awọn iṣẹ iṣowo idiju, afiwera ti ita ti imọ-ẹrọ jẹ itọni dọgbadọgba. Ẹkọ kanna ti o jẹ ki awọn koodu codebases ni ilera - awọn iṣayẹwo deede, nini mimọ, imukuro awọn nkan ti ẹnikan ko lo - jẹ ki awọn ilana iṣowo ni ilera paapaa. Awọn iru ẹrọ biiMewayzti wa ni itumọ ni pipe lati fun awọn iṣowo ni iru iṣipaya iṣiṣẹ: wiwo iṣọkan ti eyiti awọn irinṣẹ ti wa ni lilo, eyiti awọn ṣiṣan iṣẹ n ṣe iye, ati nibiti iwuwo iku ti ajo ti n ṣajọpọ. Boya o n ṣayẹwo awọn ọja okeere sọfitiwia ti ko lo tabi awọn ilana iṣowo ti ko lo, ibawi ti o wa labẹ jẹ aami kanna.
Awọn irinṣẹ n yara yiyara, awọn iyipo esi ti n pọ si, ati awọn ẹgbẹ ti o ṣe idoko-owo ni awọn amayederun imototo codebase loni n kọ anfani idapọ ti yoo san awọn ipin fun awọn ọdun. Rev-dep ati ẹgbẹ rẹ ti awọn irinṣẹ idagbasoke ti Go-agbara kii ṣe awọn ipilẹ ti o nifẹ nikan - wọn jẹ ipele amayederun ti o jẹ ki iyara sọfitiwia alagbero ṣee ṣe. Ati ni agbaye nibiti iyara aṣetunṣe jẹ anfani ifigagbaga akọkọ fun awọn iṣowo sọfitiwia, iyẹn kii ṣe ibakcdun agbeegbe. O jẹ gbogbo ere.
Awọn ibeere Nigbagbogbo
Kini o mu ki Rev-dep yiyara ju knip.dev?
Rev-dep ti wa ni itumọ ti ni Go, ede awọn ọna ṣiṣe ti o ṣajọ iṣapeye fun concurrency ati iyara ipaniyan aise, lakoko ti knip.dev nṣiṣẹ lori Node.js. Iyatọ ayaworan yii ngbanilaaye Rev-dep lati ṣe itupalẹ awọn aworan igbẹkẹle ati rii koodu ti o ku titi di 20x yiyara. Fun monorepos nla tabi awọn koodu koodu idiju — bii 207-module faaji ti n ṣe agbara OS iṣowo Mewayz ni app.mewayz.com — aafo iṣẹ yẹn tumọ si akoko gidi ti o fipamọ sori gbogbo ṣiṣe CI.
Bawo ni koodu ti o ku ni iṣẹ akanṣe dagba aṣoju kojọpọ?
Awọn ikẹkọ ati awọn ijabọ itan-akọọlẹ lati awọn ẹgbẹ imọ-ẹrọ daba pe awọn koodu koodu ti o dagba le gbe nibikibi lati 10% si 35% ti a ko lo tabi koodu ti ko le de ọdọ. Awọn akopọ iṣoro naa bi iwọn awọn ẹgbẹ - awọn ẹya ti bajẹ, awọn API yipada, ati pe awọn modulu ti kọ silẹ laisi isọdi. Awọn iru ẹrọ bii Mewayz, eyiti o ṣe idapọ lori awọn modulu iṣowo 207 sinu ẹrọ ṣiṣe $19/mo kan, gbarale lori wiwa koodu ti o ku eto lati jẹ ki codebase jẹ ki o tẹẹrẹ ati ṣetọju.
Ṣe Rev-dep dara fun awọn ẹgbẹ ti ko lo JavaScript tabi TypeScript?
Rev-dep wa ni idojukọ lọwọlọwọ lori JavaScript ati awọn ilolupo IruScript, ṣiṣe ni yiyan taara si knip.dev fun awọn agbegbe wọnyẹn. Atilẹyin fun awọn ede afikun le faagun bi iṣẹ akanṣe n dagba. Ti ẹgbẹ rẹ ba kọ awọn ọja ti o da lori wẹẹbu tabi awọn irinṣẹ SaaS - ti o jọra si bii Mewayz ṣe n gba OS ni kikun iṣowo rẹ ni app.mewayz.com - ati pe akopọ rẹ jẹ JS/TS-eru, Rev-dep tọsi ni iṣiro bi apakan ti ohun elo irinṣẹ idagbasoke rẹ loni.
Njẹ MO le ṣepọ Rev-dep sinu opo gigun ti epo CI/CD mi ti o wa bi?
Bẹẹni. Rev-dep jẹ apẹrẹ bi ohun elo CLI kan, ṣiṣe ni taara lati ju silẹ sinu opo gigun ti epo CI/CD lẹgbẹẹ linting rẹ ti o wa ati awọn igbesẹ idanwo. Anfani iyara rẹ jẹ pataki ni pataki ni awọn opo gigun ti adaṣiṣẹ nibiti awọn yipo esi yiyara dinku awọn akoko idaduro idagbasoke idagbasoke. Boya o n ṣiṣẹ ibẹrẹ ti o tẹẹrẹ tabi ṣakoso pẹpẹ ti o ni ifihan ni kikun bi Mewayz's $19/mo OS iṣowo, iṣakojọpọ itupalẹ koodu ti o ku sinu opo gigun ti epo rẹ ṣe iranlọwọ lati fi ipa mu imototo codebase ni gbogbo iṣọpọ.
We use cookies to improve your experience and analyze site traffic. Cookie Policy