Hacker News

Bonisa HN: Rev-dep – 20x ekhawulezayo knip.dev enye indlela yokwakha kwiGo

Amagqabantshintshi

10 min read Via github.com

Mewayz Team

Editorial Team

Hacker News

Irhafu efihliweyo kulo lonke iQela leSoftwe eliKhulayo

Yonke iprojekthi yesoftware ephila ixesha elide ngokwaneleyo ekugqibeleni ijongana nengxaki efanayo ezolileyo: icodebase iqala ukukhula ngokukhawuleza kunokuba iqela linokuqonda. Imisebenzi ekungekho mntu ufowunayo, ukuthunyelwa ngaphandle okwenzelwe into eyathunyelwa ngo-2022 kwaye yayekwa ngokuthula, izinto ezihlala kwidiski kodwa zingafikeleli kwisikhangeli. Obu ayibobudenge — yifiziksi. Amaqela ahamba ngokukhawuleza, iimfuno ziyatshintsha, kwaye i-entropy ayipheli. Umbuzo awungowokuba icodebase yakho inekhowudi efileyo. Umbuzo ngowokuba ixabisa malini kuwe ngoku.

Ngokophando olusuka kwiqela lemveliso yobunjineli bakaGoogle, abaphuhlisi bachitha umndilili we42% yexesha labo lokubhala iikhowudi ukufunda nokuqonda ikhowudi esele ikhona kunokubhala umsebenzi omtsha. Xa loo khowudi ikhoyo ibandakanya amawaka emigca engasasebenziyo nayiphi na injongo, loo pesenti ijike nangaphezulu. Kwiqela leenjineli ezilishumi, oko ngabasebenzi abane bexesha elizeleyo abangenzi nto inemveliso - hayi ngenxa yokuba besonqena, kodwa ngenxa yokuba izixhobo zabo azihambisani nesantya apho isoftwe ubudala.

Kungoko iliza elitsha lesixhobo sophuhlisi esakhelwe kwiinkqubo zeelwimi ezifana neGo kunye neRust ivelisa uchulumanco lokwenyani kwizangqa zobunjineli. Izixhobo ezifana ne-Rev-dep - i-reverse dependency analyzer ethi iqhube 20x ngokukhawuleza kune-JavaScript esekelwe kwi-knip.dev eyaziwayo - imele ngaphezu kokuphucula okunyukayo. Babonisa ukucinga kwakhona okusisiseko malunga nendlela esisixhobo ngayo inkqubo yophuhliso ngokwayo.

Yenziwa Ntoni Uhlahlelo Lokuxhomekeka Kwenyani Ngokwenene

Ngaphambi kokuqonda ukuba kutheni isantya sibaluleke kangaka, kuyanceda ukuqonda ukuba zeziphi izixhobo zokuhlalutya ukuxhomekeka ezenza ngokwenene. Kwiprojekthi yeJavaScript okanye iTypeScript, zonke iifayile zithatha ngaphandle kwezinye iifayile. Wonke umsebenzi, iklasi, okanye rhoqo ezithunyelwa ngaphandle kwimodyuli yenza ukuxhomekeka okunokubakho-into ezinye iindawo zekhowudi ezinokuthi zithembele kuyo. "Reverse" ucazululo lokuxhomekeka luphequlula le mbono: endaweni yokubuza "ixhomekeke kwintoni le modyuli," iyabuza "yintoni exhomekeke kule modyuli?"

Ukuba impendulo yalo mbuzo wesibini ithi "akukho nto," ufumene ikhowudi efile. Ukuthumela ngaphandle okungekho nto ithunyelwa ngaphandle yinkcitho. Umsebenzi ongekho nto ufowunayo lityala lobugcisa elinenzala yenyanga. Ukubuyisela umva izixhobo zokuxhomekeka ngokulandelelanayo hamba yonke igrafu yeprojekthi yakho, imephu yonke ubudlelwane phakathi kweemodyuli, kwaye ujonge iindawo ezingenalo unxibelelwano lwangaphakathi. Iziphumo luphicotho oluchanekileyo lwayo yonke into ekwikhowudi yakho enokususwa ngokukhuselekileyo.

I-Knip.dev ikwenza kakuhle oku kwi-JavaScript kunye neeprojekthi ze-TypeScript, kwaye ihlonitshwa ngokubanzi kuluntu. Kodwa ibhalwe kwiJavaScript, nto leyo ethetha ukuba isebenza kwi-Node.js, okuthetha ukuba ifumana ilifa layo yonke imiqobo yokusebenza enomsonto omnye weNode xa kusenziwa isixa esikhulu senkqubo yefayile enqamlezayo kunye nohlalutyo lwesimboli. Kwiprojekthi eneefayile ezingama-500, oku kulungile. Kwiprojekthi eneefayile ze-50,000 - uhlobo lwe-monorepo olunika amandla ishishini langempela lemveliso ye-SaaS - uhlalutyo lungathatha imizuzu. Kwaye imizuzu, kwi-cadence imibhobho yangoku ye-CI/CD esebenza kuyo, yi-dealbreaker.

Kutheni Uhamba Utshintsha Ubalo

I-Go yayiyilwe ukusuka phantsi ukuya phezulu kuhlobo oluchanekileyo lomsebenzi olufunwa nguhlalutyo lokuxhomekeka: ifayile ekhawulezayo ye-I/O, i-concurrence egqwesileyo yakudala, kunye nexesha elincinci lokubaleka. Apho i-Node.js iqhuba umsebenzi omnye ngexesha kumsonto omnye kwaye ixhomekeke ekufowunelweni kwaye ithembisa ukufana okungeyonyani, iGo inokuvelisa amawaka ee-goroutines ezisebenza ngokunyanisekileyo ngokunxuseneyo kuzo zonke ii-CPU cores ezikhoyo. Kumsebenzi obandakanya ukufunda amakhulu eefayile, ukwahlulahlula ii-ASTs zazo, kunye nokwakha igrafu yobudlelwane besimboli, lo mahluko wokwakha uguqulela ngokuthe ngqo kwiwotshi yodonga.

I-speedup ka-20x ibango yi-Rev-dep ayingomlingo — yinto eyenzekayo xa uthelekisa ulwimi olululo nengxaki elungileyo. Indalo ehlanganisiweyo kaGo ikwathetha ukuba akukho sohlwayo se-JIT sokufudumala. Ukususela ekuqaleni okubandayo ukuya kuhlalutyo olupheleleyo, i-Go binary isebenza ngokusondeleyo kwincopho yokusebenza. Intsingiselo esebenzayo kukuba uhlalutyo oluthathe imizuzwana ye-90 kwisixhobo esisekelwe kwi-Node sinokugqiba ngaphantsi kwemizuzwana ye-5 kwi-Go elinganayo ephunyezwe kakuhle. Lowo ngumahluko phakathi kwetshekhi abatsibayo abaphuhlisi kuba "ithatha unaphakade" kwaye enye isebenza kuzo zonke izibophelelo ngaphandle nabani na oqaphela ngaphezulu.

"Esona sixhobo sophuhlisi sisona siphuma endleleni. Ukuba indawo yokuhlalutya yongeza imizuzu emithathu kumbhobho weCI ngamnye, abaphuhlisi baya kufumana iindlela zokuyitsiba. Isantya asiyonto intle-iyimfuneko yokumkelwa."

I-Business Case ye-Codebase Hygiene

Ikhowudi efileyo ayiyongxaki nje yomphuhlisi wobuhle - ineziphumo zeshishini ezibambekayo ezithi zidibanise ixesha. Qwalasela ukuba zeziphi na ii-codebases ezidumbileyo zibiza imibutho:

  • Amaxesha amade okwakhaanciphisa imibhobho yokuthunyelwa kunye nokunciphisa inani lokukhutshwa kweqela elinokuthumela ngokukhuselekileyo ngeveki
  • Umthwalo wokuqonda ophezulu kwiinjineli ezikhwelayo, ekufuneka zichithe iiveki zohlula iipatheni ezisebenzayo kwezilahliweyo
  • Ukwenyuka kobukhulu be-bundle ezenzakalisa ukusebenza kwesicelo, ngakumbi kwii-apps zewebhu apho ikhilobhayithi nganye ichaphazela amaxesha omthwalo kunye namazinga okuguqulwa
  • Ukwandiswa kwendawo yokhuseleko — ikhowudi efileyo esele iqulethe ukuxhomekeka kusekho i-vector ye-vulnerabilities kwezo phakheji
  • Test suite bloat apho iimvavanyo zokusebenza ezisusiweyo ziqhubeka ziqhuba, zisebenzisa imizuzu yeCI, kwaye ngamanye amaxesha zisilele ngeendlela ezibhidayo
  • Iimpawu ezintsonkothileyo zobuxokiezenza izigqibo zezakhiwo zibe nzima kuba akucaci ukuba yintoni ethwele umthwalo kunye nokuba yintoni i-vestigial

Uphononongo lwe-2023 olwenziwa yi-DevOps Research and Assessment (DORA) iqela lifumene ukuba amaqela anemilinganiselo eqinile yomgangatho wekhowudi - kubandakanywa nokususwa kwekhowudi efileyo rhoqo - ithunyelwe 2.4x rhoqokwaye7x izinga lokungaphumeleli eliphantsi lokutshintshakunamaqela avumela ukuba ityala lobugcisa liqokelele. Unxulumano aluzenzekelanga. Iziseko zekhowudi ezicocekileyo kulula ukuqiqa ngazo, kulula ukuzivavanya, kwaye kulula ukuzitshintsha ngokukhuselekileyo.

Kumashishini akhiwe kwiiplatifomu ezifana Mewayz - enika amandla abasebenzisi be-138,000 kwiimodyuli ze-207 ezihlukeneyo zoshishino ukusuka kwi-CRM kunye ne-payroll ukuya kulawulo lweenqwelo kunye ne-link-in-bio izixhobo - i-codebase yezempilo iye yanda ii-stakes. Xa iqonga lakho lithatha indawo ezininzi ezisebenzayo, umphezulu wokudibanisa phakathi kweemodyuli mkhulu. Ukuthunyelwa ngaphandle okungasetyenziswanga kwimodyuli engundoqo kunokudala ulindelo olungeyonyani kwiimodyuli ezixhomekeke kuyo, kubangele unikezelo olungeyomfuneko kuluhlu lwe-UI, kwaye ludibanise igrafu yokuxhomekeka ngeendlela ezenza utshintsho oluzayo lube yingozi.

Ukudibanisa uHlahlelo lokuXhomekeka kwiMisebenzi yoPhuhliso lwangoku

Amandla okwenyani ezixhobo ezikhawulezayo ezifana ne-Rev-dep ayilucoco lwexesha elinye elwenzayo — kukukwazi ukuqhuba uhlalutyo oluqhubekayo njengenxalenye yomjikelo wakho wophuhliso lwesiqhelo. Xa ikhowudi efileyo scan ithatha imizuzwana emi-4 endaweni yemizuzu emi-4, ungayongeza kumagwegwe akho angaphambi kokuzibophelela. Xa kuthatha imizuzwana emi-4 endaweni yemizuzu emi-4, umbhobho wakho weCI ungasilela isicelo esizisa ukuthunyelwa kwempahla kumazwe angaphandle okungasetyenziswanga okutsha endaweni yokubavumela ukuba baqokelelane ngokuthe cwaka.

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

Olu tshintsho lusuka "kwisiganeko sokucoca ngekota" ukuya "kwisango lomgangatho oqhubekayo" luyafana nento eyenzekayo xa iilitha ziye zakhawuleza ngokwaneleyo ukuba zisebenze kwisitshixo ngasinye kwi-IDE. Ngaphambi kokuba i-ESLint ibaleke ngexesha lokwenyani, isitayile sekhowudi sanyanzeliswa kukuphononongwa kwekhowudi ngamaxesha athile. Emva koko, yaba yinto eqhelekileyo-inxalenye yabaphuhlisi belophu yengxelo ngelixa bebhala ikhowudi, hayi emva koko. Uhlalutyo olukhawulezayo lokuxhomekeka kunokudala umgangatho ofanayo woxinzelelo olujikeleze ikhowudi efileyo.

Ukuseta olu hambo lubandakanya amacandelo amathathu:

  1. Uhlalutyo olusisiseko: Sebenzisa isixhobo ngokuchasene nekhowudi yakho yangoku ukuze uqonde ubungakanani bekhowudi efileyo ekhoyo. Sukuzama ukulungisa yonke into ngexesha elinye — sebenzisa imodyuli kwaye ubeke phambili ngomngcipheko.
  2. CI ukunyanzeliswa: Yongeza uhlalutyo kumbhobho wakho kunye ne-threshold - ungaphumeleli kuzo naziphi na izinto ezithunyelwa ngaphandle ezisanda kwaziswa ezingasetyenziswanga, kodwa ungaphumeleli kwezikhoyo de ube uzicocile.
  3. Iisantya zokucoca ezicwangcisiweyo: Sebenzisa imveliso yesixhobo ukukhokela umsebenzi wokucoca rhoqo, ukulandelela ukubalwa kwekhowudi efileyo njengemetric yezempilo yeqela ngokuhamba kwexesha.
  4. Yintoni iGo Tooling Renaissance Signals for SaaS Builders

    I-Rev-dep yinxalenye yepatheni ebanzi kwisixhobo somphuhlisi: iindlela zokusebenza eziphezulu zokusebenza kwiJavaScript esele zisekiwe izixhobo, ezakhiwe kwiGo okanye kwiRust, zivela kulo lonke udidi. I-Biome ithathe indawo ye-ESLInt kunye nePrettier kumaqela amaninzi. I-Turbopack kunye ne-Rspack batya isidlo sasemini seWebpack. I-Bun icela umngeni kwi-Node.js ngokwayo. Umsonto oqhelekileyo kukuba ezi zixhobo azinikeli nje uphuculo olongezelelekileyo - zibonelela ngophuculo lwenyathelo elitshintsha into esebenzayo.

    Kwiinkampani ze-SaaS ezakha izinto ezinzima, iimveliso zeemodyuli ezininzi, olu hlaziyo lwezixhobo lunefuthe elithe ngqo kwisantya sobunjineli. I-Mewayz's 207-modyuli ye-architecture - ethatha yonke into esuka kwi-HR kunye ne-payroll ukuya kwiinkqubo zokubhukisha kunye ne-analytics dashboards - imele kanye uhlobo lwe-codebase enkulu, edibeneyo apho ngokukhawuleza, uhlalutyo oluchanekileyo lokuxhomekeka luba lubaluleke kakhulu ekusebenzeni. Xa utshintsho kwimodyuli eluncedo ekwabelwana ngayo inokuthi ngokwethiyori iqhubele kuninzi lweemodyuli zenqaku, ukubanokubonakala okukufutshane ngoko nangoko kwigrafu yokuxhomekeka ayiloncedo nje - luhlobo lwesiseko esithintela iziganeko zemveliso ezibizayo.

    Ukukwazi ukuphendula "yintoni kanye esebenzisa lo msebenzi" ngaphantsi kwemizuzwana emihlanu kunemizuzu emihlanu itshintsha indlela iinjineli ezithatha ngayo izigqibo. Ithoba iindleko zophando, nto leyo ethetha ukuba iinjineli ziphanda rhoqo, nto leyo ethetha ukuba zenza izigqibo ezingcono. Le yimbuyekezo edityanisiweyo kutyalo-mali kwizixhobo ezikhawulezayo ezihlala zingahoywa xa imibutho icinga ngenkcitho yemveliso yophuhlisi.

    Ukwenza iKhowudi efileyo ukuphelisa iNxalenye yeNkcubeko yobuNjineli bakho

    Itekhnoloji iyodwa ayenzi iziseko zekhowudi ezicocekileyo - inkcubeko iyayenza. Izixhobo ezifana ne-Rev-dep zibonelela ngesakhono, kodwa ukujikwa kwesakhono kwisenzo esingaguqukiyo kufuna ukuzibophelela kombutho. Awona maqela asebenzayo aphatha iimetriki zekhowudi efileyo ngendlela efanayo aphatha ngayo uvavanyo: njengesalathisi esibonakalayo, esilandelwayo sempilo ye-codebase ethi iphononongwe kwiintlanganiso zobunjineli kwaye ifakwe kwisicwangciso sokubaleka.

    Ezinye izenzo zenkcubeko ezisebenza kakuhle ziquka ukumisela "iintsuku zokucinywa kwekhowudi" - iziganeko zamaxesha apho injongo ecacileyo ikukususa ikhowudi kunokuyongeza. I-Netlify idume ngokudlala ngokubaleka iibhodi ezikhokelayo zokulandelela imigca yomnatha ecinyiweyo. U-Stripe ubhale esidlangalaleni malunga nomsebenzi wabo wokuphatha ukucinywa kwekhowudi njengegalelo lobunjineli bokuqala, elilingana nexabiso lokubonisa umsebenzi. Ukutshintsha kwengqondo efunekayo kukubona ukuba eyona khowudi yikhowudi engekhoyo: yonke umgca ongawubhaliyo ngumgca ongenakuze uwugcine, uvavanye, ulungise, okanye uchaze umqeshi omtsha.

    Kwiinkampani zemveliso ezilawula imisebenzi entsonkothileyo yeshishini, ukuhambelana ngaphandle kobunjineli kuyafundisa ngokulinganayo. Ingqeqesho efanayo eyenza i-codebases ibe nempilo - uphicotho oluqhelekileyo, ubunini obucacileyo, ukupheliswa kwezinto ezingasebenzisi mntu - kwenza iinkqubo zoshishino zibe nempilo. Iiplatforms ezifanaMewayzzakhiwe ngokuchanekileyo ukunika amashishini uhlobo olucacileyo lokusebenza: umbono odibeneyo wokuba zeziphi izixhobo ezisetyenziswayo, zeziphi ii-workflows ezivelisa ixabiso, kwaye apho ubunzima bombutho buqokelelayo. Nokuba uphicotha ukuthunyelwa ngaphandle kwesoftware engasetyenziswanga okanye iinkqubo zoshishino ezingasetyenziswanga, uqeqesho olusisiseko luyafana.

    Izixhobo ziya zikhula ngokukhawuleza, i-loops yempendulo iya iqina, kwaye amaqela atyala imali kwiziseko zococeko ze-codebase namhlanje akha inzuzo edibeneyo eya kuhlawula izabelo zeminyaka. I-Rev-dep kunye neqela layo le-Go-powered mphuhlisi izixhobo azikho nje ibhenchmarks ezinomdla - ngumaleko weziseko ezingundoqo owenza ukuba isantya sesoftware siqhubekeke. Kwaye kwihlabathi apho isantya sokuphindaphinda yeyona nto iphambili yokhuphiswano kumashishini esoftware, ayisiyiyo inkxalabo esecaleni. Ngumdlalo wonke.

    Imibuzo Ebuzwa Rhoqo

    Yintoni eyenza iRev-dep ikhawuleze kune knip.dev?

    I-Rev-dep yakhiwe kwi-Go, ulwimi lwezixokelelwano oluqokelelweyo olulungiselelwe ukuhambelana kunye nesantya sokwenziwa ekrwada, ngelixa i-knip.dev isebenza kwi-Node.js. Lo mahluko wokwakha uvumela i-Rev-dep ukuba ihlalutye iigrafu zokuxhomekeka kwaye ibone ikhowudi efileyo ukuya kuthi ga kwi-20x ngokukhawuleza. Kwiimonorepos ezinkulu okanye ii-codebases ezintsonkothileyo - njenge-207-modyuli ye-architecture enika amandla i-OS ye-Mewayz yeshishini kwi-app.mewayz.com - loo msantsa wokusebenza uguqulela kwixesha langempela eligcinwe kuyo yonke i-CI run.

    Ingakanani ikhowudi efileyo eqokelelwa yiprojekthi eqhelekileyo?

    Izifundo kunye neengxelo ze-anecdotal ezivela kumaqela obunjineli zibonisa ukuba i-codebases evuthiweyo inokuthwala naphi na ukusuka kwi-10% ukuya kwi-35% engasetyenziswanga okanye ikhowudi engafikelelekiyo. Ingxaki idibanisa njengomlinganiselo wamaqela - iimpawu ziyancipha, ii-APIs ziyatshintsha, kwaye iimodyuli ziyalahlwa ngaphandle kokucoca. Iiplatforms ezifana ne-Mewayz, ezidibanisa kwiimodyuli ze-207 zoshishino zibe yinkqubo enye yokusebenza ye-$ 19 / mo, ithembele kakhulu ekubhaqweni kwekhowudi efileyo ecwangcisiweyo ukugcina i-codebase incike kwaye igcinwe.

    Ngaba i-Rev-dep ifanelekile kumaqela angasebenzisi iJavaScript okanye i-TypeScript?

    I-Rev-dep okwangoku igxile kwiJavaScript kunye ne-TypeScript ecosystems, iyenza ibe yenye indlela ye knip.dev kwezo meko-bume. Inkxaso yeelwimi ezongezelelweyo inokwanda njengoko iprojekthi ikhula. Ukuba iqela lakho lakha iimveliso ezisekelwe kwiwebhu okanye izixhobo ze-SaaS-ezifana nendlela iMewayz ehambisa ngayo i-OS yayo epheleleyo kwi-app.mewayz.com - kwaye isitaki sakho si-JS/TS-heavy, i-Rev-dep ifanelekile ukuvavanywa njengenxalenye yesixhobo sakho somphuhlisi namhlanje.

    Ndingayidibanisa i-Rev-dep kumbhobho wam okhoyo we-CI/CD?

    Ewe. I-Rev-dep iyilwe njengesixhobo se-CLI, isenza ukuba kube lula ukuwisa kuyo nayiphi na imibhobho ye-CI/CD ecaleni kwamanyathelo akho asele enziwe okudibanisa kunye nokuvavanya. Uncedo lwayo lwesantya lubaluleke kakhulu kwimibhobho ezenzekelayo apho iilophu zempendulo ezikhawulezayo zinciphisa amaxesha okulinda aphuhlisi. Nokuba uqhuba uqalo olubhityileyo okanye ulawula iqonga eligcwele ngokupheleleyo njengeMewayz's $19/mo business OS, ukudibanisa uhlalutyo lwekhowudi efileyo kumbhobho wakho kunceda ukunyanzelisa ucoceko lwekhowudi kuko konke ukudityaniswa.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime