Hacker News

Muuji HN: Rev-dep - 20x degdeg ah knip.dev dhismo kale oo gudaha Go

Faallo

14 min read Via github.com

Mewayz Team

Editorial Team

Hacker News

Canshuurta Qarsoon ee Koox kasta oo Soo Koraysa Software

Mashruuc kasta oo software-ka ah oo sii noolaada muddo dheer oo ku filan ugu dambeyntii wuxuu wajahayaa isla qalalaasaha xasilloon: codebase wuxuu u bilaabmaa si ka dhaqso badan in kooxdu ay fahmi karto. Hawlaha qofna ma soo waco, dhoofinta loo sameeyay sifo la soo raray 2022 oo si aamusnaan leh u dhacday, qaybaha ku nool saxanka laakiin aan weligood gaarin browserka. Tani maaha caajisnimo - waa fiisigiska. Kooxuhu si degdeg ah ayay u socdaan, shuruudaha way isbedelaan, entropyna waa mid aan naxariis lahayn. Su'aashu maaha in codebase-kaagu leeyahay kood dhintay iyo in kale. Su'aashu waxay tahay imisa ayay kugu kacaysaa hadda.

Sida laga soo xigtay cilmi baarista kooxda wax soo saarka injineernimada Google, horumariyayaashu waxay ku qaataan celcelis ahaan 42% wakhtiga codayntaakhrinta iyo fahamka koodka jira halkii ay qori lahaayeen hawl cusub. Marka koodkaas jira uu ku jiro kumannaan xariiq oo aan hadda u adeegayn ujeedo kasta, boqolleydaasi way qalloocdaa xitaa sare. Koox ka kooban toban injineer, taasi waxay si wax ku ool ah u tahay afar shaqaale waqti-buuxa ah oo aan samaynin wax waxtar leh - ma aha inay caajis yihiin, laakiin sababtoo ah qalabkoodu maaha kuwo la jaan qaadaya xawaaraha ay da'da software-ka.

Tani waa sababta mowjad cusub oo qalabayneed oo horumariye ah oo lagu dhisay nidaamka luuqadaha sida Go iyo Rust ay ka dhalinayso farxad dhab ah wareegyada injineernimada. Aaladaha sida Rev-dep - falanqeeye ku-tiirsanaanta rogaal celiska ah oo sheeganaya inuu ku socdo 20x ka dhakhso badanmarka loo eego JavaScript-ku-salaysan knip.dev - waxay ka dhigan tahay wax ka badan horumar kordhin. Waxay muujinayaan dib-u-eegis aasaasi ah oo ku saabsan sida aan u qalabeyno habka horumarinta laftiisa.

Waa maxay Falanqaynta Ku-tiirsanaanta Dhabta ah ee uu sameeyo

Kahor intaadan fahmin sababta uu xawaaruhu muhiim ugu yahay, waxay kaa caawinaysaa inaad fahanto waxa ay dhab ahaantii samaynayaan qalabka falanqaynta ku tiirsanaanta. Mashruuc JavaScript ama TypeScript ah, fayl kastaa wuxuu ka keenaa faylal kale. Shaqa kasta, fasalka, ama joogtada ah ee laga dhoofiyo moduleka waxay abuurtaa ku-tiirsanaan suurtagal ah - wax ay qaybaha kale ee codebase ku tiirsanaan karaan. Falanqaynta ku-tiirsanaanta "Reverse" waxay rogtay aragtidan: halkii la waydiin lahaa "maxay qaybtani ku xidhan tahay," waxay waydiinaysaa "maxay ku xidhan tahay cutubkan?"

Haddii jawaabta su'aasha labaad ay tahay "waxba," waxaad heshay code dhintay. Dhoofinta aan waxba soo dejin waa qashin. Shaqo aan waxba u yeedhin waa deyn farsamo oo leh dulsaar bille ah. Aaladaha ku-tiirsanaanta roga waxay si nidaamsan u socdaan garaafkaaga mashruuca oo dhan, khariidad xidhiidh kasta oo ka dhexeeya cutubyada, oo korka noodhyada aan lahayn xidhidh soo gal ah. Natiijadu waa hubinta saxda ah ee wax kasta oo ku jira codebase-kaaga oo si badbaado leh looga saari karo.

Knip.dev waxa uu tan si fiican ugu qabtaa JavaScript iyo Mashruucyada TypeScript, waana mid si weyn looga ixtiraamo bulshada dhexdeeda. Laakiin waxay ku qoran tahay JavaScript, taas oo macnaheedu yahay inay ku socoto Node.js, taas oo macnaheedu yahay inay dhaxli doonto dhammaan caqabadaha waxqabadka hal-xadhka ah ee Node marka la samaynayo hab-nololeedka ballaaran ee nidaamka faylka iyo falanqaynta calaamadaha. Mashruuc leh 500 oo fayl, tani waa ku fiican tahay. Mashruuc leh 50,000 oo faylal - nooca monorepo ee awood u leh ganacsiga dhabta ah ee SaaS - falanqayntu waxay qaadan kartaa daqiiqado. Daqiiqadona, marka la fiiriyo dhuumaha casriga ah ee CI/CD ee ka shaqeeya, waa heshiisyo.

Maxaa Go u beddelaa Xisaabinta

Go waxaa laga soo naqdiyay ilaa salka si sax ah nooca culeyska shaqada ee u baahan falanqaynta ku-tiirsanaanta: faylalka degdega ah ee I/O, premitives aad u wanaagsan, iyo wakhtiga ugu yar ee ka sareeya. Meesha Node.js ay hal hawl mar ku wadato hal dun oo ay ku tiirsan tahay dib-u-soo-celinta iyo ballan-qaadyada is-barbar-dhigga been-abuurka ah, Go waxay dhalin kartaa kumanaan gorutines ah oo si dhab ah u fulinaya isbarbar-dhigga dhammaan kombuyuutarrada CPU ee la heli karo. Hawsha ku lug leh akhrinta boqollaal faylal, kala-soocida AST-yadooda, iyo dhisidda garaafka cilaaqaadka summada, kala duwanaanshahan qaabdhismeedku waxa uu si toos ah u tarjumaa waxqabadka saacadda gidaarka.

Xawaaraha 20x ee uu sheeganayo Rev-dep maaha sixir - waa waxa dhaca markaad luqadda saxda ah ku wajahdo dhibaatada saxda ah. Dabeecada la soo ururiyey ee Go sidoo kale waxay la macno tahay ciqaab kululaynta JIT ma jirto. Laga bilaabo bilawga qabow ilaa dhammaystirka falanqaynta, Go binary wuxuu ku shaqaynayaa waxqabadka ugu sarreeya. Macnaha la taaban karo ayaa ah in falanqaynta qaadatay 90 ilbiriqsi ee aaladda Node-ku-saleysan ay ku dhammayn karto wax ka yar 5 ilbiriqsi gudahood Go si wanaagsan loo hirgeliyay. Taasi waa farqiga u dhexeeya jeegga ay horumariyayaashu ka boodaan sababtoo ah waxay "qaadataa weligeed" iyo kan ku shaqeeya ballan kasta iyada oo aan cidina ogaanin dusha sare.

"Qalabka horumariyaha ugu fiican waa midka ka baxa jidka. Haddii qolka falanqayntaagu uu ku daro saddex daqiiqo dhuumaha CI kasta, horumariyayaashu waxay heli doonaan habab ay kaga boodaan

Kiiska Ganacsiga ee Nadaafadda Codebase

Koodhka dhintay kaliya maaha dhibaatada bilicda soo-saare - waxay leedahay cawaaqib ganacsi oo la taaban karo oo sii kordha waqti ka dib. Ka fiirso waxa saldhigyada koodka leh ee dhabta ah ay ku kacaan ururada:

  • Waqti dheer oo dhismo ahkaas oo hoos u dhigaya dhuumaha daadgureynta isla markaana hoos u dhigaya tirada sii daynta ee kooxi si badbaado leh u soo rari karto toddobaad kasta
  • Caydhka garashada sareee injineerada fuulaya, kuwaas oo ay tahay in ay ku qaataan toddobaadyo kala soocidda qaababka firfircoon iyo kuwa la dayacay
  • Xirmooyinka xidhmada oo kordhaykaas oo dhaawacaya waxqabadka arjiga, gaar ahaan abka webka halkaas oo kilobyte kastaa uu saameeyo wakhtiga rarka iyo qiimaha beddelka
  • Balaadhinta dusha sare ee amniga — Koodhka dhintay ee weli ka kooban ku-tiirsanaanta ayaa weli horseed u ah dayacanka xirmooyinkaas
  • Test suite bloathalkaas oo tijaabooyinka shaqada laga saaray ay ku sii socdaan, isticmaal daqiiqadaha CI, marmarna ku fashilmaan siyaabo jahawareer ah
  • Calaamadaha kakanaanta beenta ahkaas oo ka dhigaya go'aannada dhismaha mid adag sababtoo ah ma cadda waxa culeyska qaadaya iyo waxa ay tahay in la ilaaliyo

Daraasad 2023 ah oo ay samaysay kooxda DevOps Research and Assessment (DORA) waxay ogaatay in kooxaha leh dhaqamada tayada kood ee xooggan - oo ay ku jiraan ka saarista koodka dhintay ee joogtada ah - la soo diray2.4x marar badanoo lahaa7x heerarka hoos u dhaca isbeddelka hoos u dhacamarka loo eego kooxaha u oggolaaday deynta farsamada inay urursato. Xidhiidhku maaha wax iska yimid. Saldhigyada koodka nadiifka ah way fududahay in laga fikiro, way fududahay in la tijaabiyo, waana fududahay in si badbaado leh loo beddelo.

Meheradaha ku dhismaya aaladaha sidaMewayz - kaas oo awood u siinaya 138,000 isticmaalayaasha 207 nooc oo ganacsi oo kala duwan oo u dhexeeya CRM iyo mushaharka ilaa maaraynta maraakiibta iyo aaladaha isku xidhka-bio - caafimaadka codebase ayaa badiyay saamiyo. Marka madal-ku-sheeggaagu uu gaadho qaybo badan oo shaqaynaya, oogada is-dhexgalka ee modules-yada waa mid aad u weyn. Dhoofinta aan la isticmaalin ee cutubka xudunta u ah waxay abuuri kartaa rajooyin been abuur ah oo loogu talagalay cutubyada ku tiirsan, kicinta dib-u-celinta aan loo baahnayn ee lakabka UI, oo adkaynaya garaafka ku-tiirsanaanta siyaabo ka dhigaya isbeddellada mustaqbalka khatarta ah.

Isku-dhafka Falanqaynta Ku-tiirsanaanta ee Socodka Shaqooyinka Horumarinta Casriga ah

Awooda dhabta ah ee qalabaynta degdega ah sida Rev-dep ma aha nadiifinta hal mar ee ay awood u leedahay - waa awooda lagu socodsiiyo falanqaynta joogtada ah iyada oo qayb ka ah wareeggaaga horumarka caadiga ah. Marka sawirka koodka dhintay uu qaato 4 ilbiriqsi halkii uu ka ahaa 4 daqiiqo, waxaad ku dari kartaa qabsashadaada ballan-qaadka hore. Marka ay qaadato 4 ilbiriqsi halkii ay ka ahayd 4 daqiiqo, dhuumahaaga CI waxa ay ku fashilmi kartaa codsi jiidis kaas oo soo bandhigaya dhoofin cusub oo aan la isticmaalin halkii ay ka yeeli lahaayeen in ay si aamusnaan ah u urursadaan.

💡 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 →
Isbeddelkan "dhacdada nadiifinta rubuc-biloodlaha ah" ee loo beddelay "albaab tayo leh oo joogto ah" waxay la mid tahay wixii dhacay markii linters ay noqdeen kuwo degdeg ah oo ku filan inay ku socdaan furaha kasta oo IDE ah. Kahor ESLint ka hor intaysan soconin waqtiga dhabta ah, qaabka koodka waxaa lagu meel mariyay dib u eegis kood xilliyeed ah. Ka dib, waxa ay noqotay jawi - qayb ka mid ah soosaarayaasha loop-celinta ee ay la kulmeen markii ay qoreen koodka, ee aan ahayn ka dib. Falanqaynta ku-tiirsanaanta degdega ah waxay abuuri kartaa isla cadaadiska tayada jawiga agagaarka code dhintay.

Dejinta socodka shaqadu waxay caadi ahaan ku lug leedahay saddex qaybood:

  1. Falanqaynta asaasiga ah: Ku socodsii qalabka lidka koodkaaga hadda si aad u fahanto miisaanka koodka dhintay ee jira. Ha isku dayin inaad wax walba hagaajiso hal mar - kala soocida moduleka iyo kala hormarinta khatarta.
  2. Foojinta CI: Ku dar falanqaynta tubbadaada si xad-dhaaf ah — ku fashilanto dhoofinta cusub ee aan la isticmaalin, laakiin ha ku fashilmin kuwa hadda jira ilaa aad nadiifiso.
  3. Sprints nadiifinta la qorsheeyay: Isticmaal wax soo saarka qalabka si aad u hagto shaqada nadiifinta caadiga ah, raadraaca tirada koodka dhintay sida mitirka caafimaadka kooxda waqti ka dib.

Waa maxay calaamadaha Renaissance Go Tooling ee SaaS Builders

Rev-dep waa qayb ka mid ah qaabka ballaadhan ee qalabaynta horumariyaha: beddelka waxqabadka sare leh ee aaladaha JavaScript ee la aasaasay, ee lagu dhisay Go ama Rust, ayaa ka muuqda qayb kasta. Biome wuxuu bedelay ESLint iyo Prettier kooxo badan. Turbopack iyo Rspack waxay cunayaan qadada Webpack. Bun ayaa caqabad ku ah Node.js laftiisa. Mawduuca guud ayaa ah in qalabkani aanay bixin oo kaliya horumarinta korodhka - waxay bixiyaan horumarin waxqabad-tallaabo ah oo beddelaya waxa la taaban karo.

Shirkadaha SaaS ee dhisaya badeecooyin kala duwan, qalabyo badan, dib-u-cusbooneysiinta qalabku waxay saameyn toos ah ku leedahay xawaaraha injineernimada. Mewayz's 207-module qaab dhismeedka - oo ku baahsan wax walba laga bilaabo HR iyo mushaharka ilaa nidaamyada ballansashada iyo dashboards falanqaynta - waxay u taagan tahay nooca weyn, koodhka isku xidhan ee degdega ah, falanqaynta ku-tiirsanaanta saxda ah waxay noqotaa mid hawl gal ah. Marka wax ka beddelka habka tamarta la wadaago uu aragti ahaan ku rogman karo daraasiin qaybood oo muuqaal ah, lahaanshiyaha muuqaalka dhow ee garaafka ku-tiirsanaanta dhabta ah kaliya maaha mid ku habboon - waa nooca kaabayaasha ee ka hortagaya shilalka wax soo saarka ee qaaliga ah.

Awoodda lagu jawaabo "maxaa dhab ahaantii isticmaala shaqadan" in ka yar shan ilbiriqsi halkii ay ka ahaan lahayd shan daqiiqo ayaa isbeddelaysa sida injineeradu u qaataan go'aamada. Waxay hoos u dhigtaa kharashka baaritaanka, taas oo macnaheedu yahay in injineeradu ay marar badan baaraan, taas oo macnaheedu yahay inay sameeyaan go'aano wanaagsan. Tani waa soo laabashada isku dhafan ee maalgashiga qalabaynta degdega ah taas oo inta badan la iska indho tiro marka ay ururadu ka fikiraan kharashka horumarinta wax soo saarka.

Samaynta Ciribtirka Xeerka Dhimashada Qayb ka mid ah Dhaqankaaga Injineerinka

Tignoolajiyada kaligeed ma dhisto saldhigyo nadiif ah - dhaqanku wuu sameeyaa. Aaladaha sida Rev-dep ayaa bixiya awoodda, laakiin u beddelashada kartida ku-dhaqanka joogtada ah waxay u baahan tahay ballan-qaad urureed. Kooxaha ugu waxtarka badan waxay ula dhaqmaan cabbirada koodka dhintay si la mid ah si ay ula dhaqmaan daboolka imtixaanka: sida muuqata, tusaha la raadraacay ee caafimaadka codebase kaas oo dib loo eego shirarka injineernimada oo lagu saleeyay qorsheynta sprint.

Qaar ka mid ah dhaqamada dhaqameed ee gaarka ah ee si fiican u shaqeeya waxaa ka mid ah qoondaynta "maalmaha tirtirka koodka" - dhacdooyin xilliyeedka halkaas oo hadafka cadi yahay in meesha laga saaro koodka halkii lagu dari lahaa. Netlify si caan ah ayaa tan u samaysay iyada oo maamulaysa sabuuradaha hogaaminta ee raadraaca khadadka saafiga ah ee la tirtiray. Stripe ayaa si fagaare ah wax uga qortay dhaqankooda ah in ay daaweeyaan tirtirka koodka sidii wax ku biirinta injineernimada fasalka koowaad, oo la mid ah qiimaha lagu muujinayo shaqada. Isbeddelka maskaxeed ee loo baahan yahay waa garashada in code-ka ugu fiican uu yahay kood aan jirin:line kasta oo aadan qorin waa xariiq aanad waligaa ilaalin, tijaabin, saarin, ama u sharaxin shaqaale cusub.

Shirkadaha wax soo saarka ee maamula hawlo ganacsi oo adag, isbarbardhigga ka baxsan injineernimada ayaa si isku mid ah wax u baraya. Isla edbinta ka dhigaysa codebases kuwa caafimaad qaba - xisaab hubin joogto ah, lahaanshaha cad, baabi'inta waxyaabaha aan cidina isticmaalin - ayaa ka dhigaysa hababka ganacsiga kuwa caafimaad qaba. Platforms sidaMewayzwaxaa loo dhisay si sax ah si loo siiyo ganacsiyada nooca cad ee hawlgalka ah: aragti midaysan oo ah qalabka loo isticmaalo, kuwaas oo socodka shaqadu ay soo saarayaan qiimaha, iyo halka miisaanka dhintay ururku uu ururinayo. Haddii aad xisaabinayso dhoofinta software aan la isticmaalin ama hababka ganacsi ee aan la isticmaalin, anshaxa hoose waa isku mid.

Qalabku si degdeg ah ayay u kordhayaan, wareegyada jawaab-celinta ayaa sii adkaanaya, kooxaha maalgeliya kaabayaasha nadaafadda codebase maanta waxay dhisayaan faa'iido isku dhafan oo bixin doonta faa'iidooyin sannado ah. Rev-dep iyo kooxdeeda agabka horumariyaha ee Go-powered kaliya maaha jaangooyooyin xiiso leh - waa lakabka kaabayaasha kaas oo suurtageliya xawaaraha software waara. Iyo adduunka uu xawaaraha dib-u-eegistu uu yahay faa'iidada koowaad ee tartanka ganacsiyada software-ka, taasi maaha walaac dhinaceed ah. Waa ciyaarta oo dhan.

Su'aalaha Inta badan La Isweydiiyo

Maxaa ka dhigaya Rev-dep ka dhakhso badan knip.dev?

Rev-dep waxa lagu dhisay Go, luuqad habaysan oo la soo ururiyey oo loo habeeyay si isku mid ah iyo xawaaraha fulinta cayriin, halka knip.dev uu ku shaqeeyo Node.js. Farqiga qaabdhismeedku wuxuu u oggolaanayaa Rev-dep inuu falanqeeyo garaafyada ku-tiirsanaanta oo uu ogaado kood dhintay ilaa 20x dhakhso ah. Monorepos weyn ama saldhigyo adag oo adag - sida qaab-dhismeedka 207-module ee awooda Mewayz's ganacsigiisa OS ee app.mewayz.com - farqiga waxqabadku wuxuu u tarjumaa wakhtiga dhabta ah ee lagu badbaadiyay orod kasta oo CI ah.

Intee in le'eg ayaa kood dhintay mashruuca caadiga ah ee koraya?

Daraasado iyo warbixino xog-ogaal ah oo ka yimid kooxaha injineerada waxay soo jeedinayaan in codebaseyada qaan-gaarka ahi ay qaadi karaan meel kasta min 10% ilaa 35% kood aan la isticmaalin ama aan la gaadhi karin. Iskudhisyada dhibka marka ay kooxuhu cabiraan - sifooyinka waa la dhimaa, API-yada ayaa isbeddela, iyo qaybo ka mid ah waa laga tagay iyadoon la nadiifin. Platforms sida Mewayz, kaas oo isku xidha in ka badan 207 qaybood oo ganacsi oo ka dhigaya hal $19/mo nidaam hawleed, waxay si aad ah ugu tiirsan yihiin ogaanshaha koodka dhintay ee habaysan si ay codebase-ku caato oo loo ilaaliyo.

Rev-dep ma ku haboon yahay kooxaha aan isticmaalin JavaScript ama TypeScript?

Rev-dep waxa ay hadda diiradda saartaa JavaScript iyo Nidaamyada deegaanka TypeScript, taas oo ka dhigaysa beddel toos ah knip.dev ee deegaannadaas. Taageerada luuqadaha dheeraadka ah ayaa laga yaabaa inay balaadhiso marka mashruucu qaan gaadho. Haddii kooxdaadu ay dhisto badeecado ku salaysan mareegaha ama aaladaha SaaS - oo la mid ah sida Mewayz uu ugu bixiyo OS ganacsigiisa buuxa ee app.mewayz.com - oo xidhmadaadu ay tahay JS/TS-culus, Rev-dep aad bay u qalantaa in lagu qiimeeyo qayb ka mid ah qalabka horumariyahaaga maanta.

Miyaan ku dari karaa Rev-dep dhuuntayda CI/CD ee jirta?

Haa. Rev-dep waxaa loo qaabeeyey sidii qalab CLI ah, taasoo ka dhigaysa mid toos ah in lagu dhex dhaco dhuunta CI/CD oo ay weheliso tillaabooyinkaaga dahaarka iyo tijaabinta ee jira. Faa'iidada xawaaraheeda ayaa si gaar ah qiimo ugu leh dhuumaha otomaatiga ah halkaasoo wareegyada jawaab celinta degdega ah ay yareeyaan waqtiyada sugitaanka horumariyaha. Haddi aad ku shaqaynayso bilawga caatada ah ama aad maamulayso madal si buuxda u dhisan sida Mewayz's $19/m meherad OS, ku darida falanqaynta kood dhintay ee dhuumahaaga waxay kaa caawinaysaa xoojinta nadaafadda codebase marka la isku daro.