Hacker News

Erakutsi HN: Vertex.js - A 1kloc SPA Framework

Iruzkinak

9 min read Via lukeb42.github.io

Mewayz Team

Editorial Team

Hacker News
Hona hemen artikulua:

Mikro-esparruen gorakada: zergatik garatzaileek uko egiten diote puztutako JavaScript tresna

Duela gutxi, garatzaile batek orrialde bakarreko aplikazio-esparru bat argitaratu zuen Hacker News-i gutxi gorabehera 1.000 kode lerrotan eraikia, eta erantzuna elektrikoa izan zen. Proiektuak —SPA esparru minimalista bat— urteak daramatzaten web garapenaren komunitatean piztutako eztabaida piztu zuen: gure tresnak konplexuegiak bihurtu al dira konpontzen dituzten arazoetarako? React-en oinarrizko liburutegiak, bere bideratzaileak, bere egoera kudeatzeko geruzak eta bere eraikuntza-tresnak kolektiboki ehunka mila kode-lerro pisatzen dituenean, bideraketa, erreaktibotasuna eta osagaien errendatzea 1.000 lerrotan soilik eskaintzen duen esparruak galdera deseroso bat behar du. Bezeroei begira dauden aplikazioak eraikitzen dituzten enpresentzat, galdera horri erantzunak benetako ondorioak ditu: karga-denboretan, garatzaileen produktibitatean eta epe luzerako mantentze-kostuetan.

1.000 lerroko marko batek benetan frogatzen duena

Mikro-esparruaren ideia ez da berria. Backbone.js 2010ean estreinatu zenean 1.800 iturburu-kode komentatu zituen gutxi gorabehera. Kategoria honetako sarrera berri bakoitza nabarmentzen duena ez da lerroen zenbaketa bera, arakatzaileen APIen egungo egoerari buruz erakusten duena baizik. Arakatzaile modernoek txantiloien literalak, Historiaren APIa, Proxy-n oinarritutako erreaktibotasuna, elementu pertsonalizatuak eta moduluen kargatzeko jatorrizko euskarria eskaintzen dute. Duela hamarkada bat, esparruek milaka lerro behar zituzten Internet Explorer eta Chromeren arteko desberdintasunak normalizatzeko. Gaur egun, garatzaile trebe batek SPA esparru guztiz funtzionala eraiki dezake orkestrazio geruza mehe gisa plataforma primitiboen gainean.

Hau garrantzitsua da elkarrizketa "zein esparru aukeratu behar dugu?" "Marko bat behar al dugu batere?" Proiektu txiki eta ertainei dagokienez —atal dinamikoekin helmuga-orri bat, barne-arbel bat, bezeroen atari bat—, erantzuna gero eta handiagoa da: agian ez, edo, behintzat, astuna. 1.000 lerroko markoa plataformak markoaren lana murrizten den punturaino heldu dela frogatzen du.

Noski, React eta Vue bezalako markoek oraindik ere pisua irabazten dute eskala handiko aplikazioetan egoera-zuhaitz konplexuekin, zerbitzariaren errendatze-beharrekin eta konbentzio zurrunetatik etekina ateratzen duten 20 garatzaile baino gehiagoko taldeekin. Funtsezko ikuspegia da tresna egokia arazoaren esparruaren araberakoa dela erabat.

JavaScript bloat-en benetako kostua

Google-ren ikerketak etengabe erakutsi du karga-denbora gehitzen den 100 milisegundo bakoitzean bihurtze-tasak %7raino murrizten dituela. Batez besteko web-orriak 500 KB baino gehiago ditu JavaScript, 2015etik hirukoiztu egin den zifra hori. Enpresentzat, hau ez da errendimendu-neurri abstraktua. Zuzenean diru-sarrerak galdu, errebote-tasa handiagoak eta bilatzaileen sailkapen okerrago bihurtzen ditu.

Arazoa sare mugikorretan areagotzen da. 3G baino gehiago konektatzen den gama ertaineko Android gailu bateko erabiltzaileak 5-8 segundo itxaron dezake JavaScript-a duen orrialde bat interaktibo bihur dadin, hasierako HTMLa errendatu ondoren ere. Hau bereziki zigorgarria da gorabidean dauden merkatuetan bezeroak zerbitzatzen dituzten enpresentzat, non mugikorrerako lehen arakatzea araua den eta sarearen azpiegitura izugarri aldatzen baita.

  • Analizatze-denbora: JavaScript sorta handiek denbora gehiago behar dute analizatzeko eta konpilatzeko, nahiz eta aplikazio-kode-lerro bakar bat exekutatu aurretik
  • Memoriaren presioa: esparru konplexuen barnekoek aplikazioak berak erabil dezakeen memoria kontsumitzen dute
  • Eguneratu nekea: markoaren berritze nagusiek (Angular 1etik 2ra, Vue 2tik 3ra, React klaseko osagaiak kakoetara) migrazio-esfortzu garestiak behartzen dituzte 2-3 urtean behin
  • Mendekotasun-kateak: React proiektuaren ohiko node_modules karpetak 800-1.200 pakete ditu, bakoitza segurtasun ahultasun potentziala edo aldaketa hauskorra
  • Eraiki konplexutasuna: Webpack, Babel, PostCSS eta haien konfigurazio-fitxategiek maiz gainditzen dute zerbitzatzen duten aplikazio-kodea

Mikro-markoek kostu horietako gehienak alboratzen dituzte. Abstrakzio gutxiagorekin, gauza gutxiago daude apurtzeko, menpekotasun gutxiago ikuskatzeko eta byte gutxiago arakatzailera bidaltzeko. Frontend azpiegitura-talde dedikaturik gabe web presentzia azkarra eta fidagarria behar duen negozioarentzat, matematikak gero eta erraztasunaren alde egiten du.

Garatzaileen komunitatea zergatik banatzen den

SPA esparru txikien inguruko Hacker News eztabaidak bi eremu kontrajarriak sortzen ditu modu fidagarrian. Alde batetik, React edo Angular-en eraikitako kode-oinarri handietan urteak eman dituzten garatzaileak eta markoaren konplexutasuna denboran zehar nola konposatzen den bertatik bertara ikusi dute. Ezaugarri sinpleak egun anitzeko zereginetan sartzen ikusi dute, esparruaren konbentzioek bideratzaileen konfigurazioa, egoera kudeaketaren boilerplatea eta markoaren barneak iseka egiten dituzten proba-arnesak ukitzea eskatzen dutelako. Garatzaile hauentzat, 1.000 lerroko marko batek askapena adierazten du, beren aplikazioan exekutatzen diren kode-lerro guztiak ulertzera itzultzea.

Beste aldean, markoak existitzen direla adierazten duten pragmatikoak daude, azkenean mundu errealeko aplikazioek eskaintzen dutena behar dutelako: irisgarritasun-erabilgarritasunak, nazioartekotzea, kodea zatitzea, zerbitzariaren errendatzea eta tresna dagoeneko ezagutzen duten garatzaileen kontratazioa. Mikro-esparru bat atsegina izan daiteke asteburuko proiektu baterako, diote, baina saiatu bost laguneko talde bat sartzen 1.000 lerroko neurrirako kode-base batean, Stack Overflow erantzunik eta dokumentazio ofizialik gabe.

Bi aldeek baliozko puntuak dituzte, eta egia da aukera testuingurua dela. MVP bat eraikitzen duen bakarkako sortzaile batek bost urteko aplikazio bat mantentzen duen enpresa talde batek baino beharrizan desberdinak ditu. Arriskua abiarazte-arazoetan enpresa-soluzioak aplikatzean datza, edo abiarazte-tresnak enpresa-erronketan.

Enpresa modernoek benetan behar dutena beren teknologia-pilatik

Marko-eztabaida, azken finean, galdera handiago baten proxy bat da: nola banatu behar dituzte enpresek baliabide tekniko mugatuak? Garatzaile batek eraikuntza kanalizazioa konfiguratzen edo markoaren bertsio berri batera migratzen ematen duen ordu bakoitza bezeroei balioko dieten funtzioak eraikitzen igarotzen ez den ordua da. Enpresa askorentzat —batez ere eragiketa txiki eta ertainentzat— aukera teknologiko aproposa da "Ideia bat daukat" eta "bezeroak erabiltzen ari dira" arteko aldea murrizten duena.

Hazten ari den negozio batek har dezakeen teknologia-erabakirik onena gaurko arazoak konpontzen dituzten tresnak aukeratzea da, biharko mantentze-zamarik sortu gabe. Horrek 1.000 lerroko esparrua edo guztiz kudeatutako plataforma bat esan nahi badu ere, helburua berdina da: zure denbora zure negozioa berezia egiten duen horretan eman, ez negozio bakoitzak behar dituen azpiegituretan.

Printzipio hau frontend-esparruetatik haratago zabaltzen da. Enpresek ohiko sistema berberak berreraikitzen dituzte (erabiltzaileen autentifikazioa, ordainketa prozesatzea, CRM, fakturazioa, programazioa), aukeratutako teknologia-pilak hala eskatzen duelako. Mewayz bezalako plataformak, hain zuzen, lan errepikakorrak ezabatzeko existitzen dira, eta aurrez eraikitako 207 modulu eskaintzen dituzte CRM eta nominak eta erreserba sistemak eta analisiak barne. Garatzaileak mikro-esparruetara bultzatzen dituen filosofia berak (gehiago egin gutxiagorekin, alferrikako konplexutasuna ezabatzea) plataforma bateratuetara bultzatzen ditu negozioak, SaaS harpidetza dozenaka sistema bakar batekin ordezkatzen dituztenak.

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

Markoaren espektroa: zure leku gozoa aurkitzea

Marko-aukera bitar gisa tratatu beharrean (mega-markoa edo mikro-markoa) espektro baten arabera pentsatzen laguntzen du. Mutur batean, bainila JavaScript duzu zero abstrakzioekin. Bestean, Next.js edo Nuxt bezalako pila osoko meta-markoak dituzu bideratzea, errendatzea, datuak eskuratzea eta hedatzea kudeatzen dutenak. Proiektu gehienak erdialdean daude.

Elementu interaktibo gutxi dituen bezeroei begirako marketin gune baterako, mikro-markoa edo Alpine.js estiloko lineako erreaktibotasuna ezin hobea izan daiteke. Denbora errealeko datuak, roletan oinarritutako baimenak eta lineaz kanpoko euskarria dituen SaaS panel konplexu baterako, ekosistema aberatsa duen esparru heldu batek merezi du gastuak. Akatsa aukera astunena lehenetsia da ezagunena delako, edo arinena lehenetsita intelektualki asebetetzen duena delako.

Proba praktikoa erraza da: zerrendatu zure aplikazioak behar dituen funtzio guztiak hurrengo 12 hilabeteetan. Mikro-esparru batek behar horien % 90 estaltzen badu eta gainerako % 10a eskuz eraman dezakezu esparru handiago bat konfiguratzen gastatuko zenukeena baino denbora gutxiagoan, mikro-markoa irabaziko du. Zure eginbide-zerrendak zerbitzariaren errendatzea, inprimakien baliozkotze konplexua, animazio-orkestrazioa eta erabilerraztasun-laguntza sakona barne hartzen baditu, ziurrenik esparru handiagoak bere kabuz balio du.

Teknikoak ez diren sortzaileentzako eta negozio-operadoreentzako ikasgaiak

Enpresa bat zuzentzen ari bazara eta zure talde teknikoa esparruak eztabaidatzen ari bazara, hona hemen benetan garrantzitsua dena. Lehenik eta behin, galdetu denborari buruz lehen funtzioa: zenbat azkar bidali dezake taldeko garatzaile berri batek aldaketa esanguratsu bat? Erantzunak ingurunea konfiguratzeko eta markoaren ikaskuntzako egunak badakartza, hori abisu seinale bat da zein esparru aukeratu den kontuan hartu gabe. Bigarrenik, galdetu berritze-bideari buruz. 18 hilabetez behin hautsitako aldaketak askatzen dituzten markoek hasierako ebaluazioan gutxitan agertzen den ezkutuko zerga bat ezartzen dute.

Hirugarrena, eta garrantzitsuena, galdera egin ezazu kasuan kasuko funtziorako pertsonalizatutako softwarerik behar duzun. Enpresa askok garatzaileen denbora hilabeteetan inbertitzen dute barne-tresnak eraikitzen - aginte-panelak, CRM sistemak, fakturazio-fluxuak, programazio-interfazeak - dagoeneko leundutako produktu gisa existitzen direnak. Mewayz bezalako plataforma batek, 138.000 erabiltzaileri baino gehiagori zerbitzatzen dion negozio-eragiketen espektro osoa hartzen duten moduluekin, negozio-funtzio estandarretarako garapen pertsonalizatuaren beharra guztiz ezaba dezake. Honek zure garapen-taldea zure produktuaren alderdi benetan berezietan zentratu ahal izateko aske utziko du: erabilgarri dauden tresnak ez dituen eginbideetan.

  1. Zure kode pertsonalizatua ikuskatu: identifikatu zein barne-tresnek bikoizten duten funtzionaltasuna lehendik dauden plataformetan
  2. Kalkulatu benetako kostua: kontuan hartu hasierako garapena ez ezik, etengabeko mantentze-lanak, segurtasun-adabakiak eta eginbideen eskaerak
  3. Ebaluatu kontsolidazioa: zenbatu zure egungo SaaS harpidetzak eta alderatu kostua plataforma integratu batekin
  4. Babestu zure bereizleak: erreserbatu garapen pertsonalizatuko baliabideak zure negozioa benetan bereizten duten funtzioetarako

Etorkizuna nahita egindako aukerei dagokie

1.000 lerroko SPA esparru baten inguruan dagoen zirrara ez da benetan markoa bera. Software garapenean intentzionalitaterantz hazten ari den mugimenduari buruzkoa da: tresnak aukeratzea arazora egokitzen direlako, ez merkatuan nagusi direlako. JavaScript ekosistemak ezaugarri eta abstrakzioen armamentu-lasterketa batean eman du azken hamarkada. Kontra-mugimendua, mikro-markoek, zerbitzarian errendatutako HTML-ek eta plataformako jatorrizko APIek adierazten dutena, pragmatismorako zuzenketa da.

Enpresentzat, aldaketa hau guztiz positiboa da. Aukera gehiago, aldatzeko kostu txikiagoak eta soiltasuna eta abiadura osotasun teorikoaren gainetik gero eta gehiago baloratzen dituen garatzaileen kultura esan nahi du. WordPress eta neurrira egindako gune baten artean aukeratzen duen bakarkako ekintzailea bazara, edo zure hurrengo barne tresna eraiki edo erosi behar duzun ebaluatzen duen CTO bat zaren, printzipio bera aplikatzen da: teknologiarik onena bigarren planoan desagertzen dena da, zure bezeroei zerbitzatzen zentratu ahal izateko.

1.000 lerroko esparruak gogorarazten digu botereak ez duela konplexutasunik behar. Negozio eraginkorrenak —eta tresna eraginkorrenak— behar dena eta ezer gehiago egiten dutenak dira.

Arraztu zure negozioa Mewayz-ekin

Mewayz-ek 207 negozio-modulu ekartzen ditu plataforma bakarrean: CRM, fakturazioa, proiektuen kudeaketa eta abar. Bat egin 138.000 erabiltzaile baino gehiago beren lan-fluxua erraztu duten.

Hasi doan gaur →

Ohiko galderak

Zer da Vertex.js bezalako mikro-markoa?

Mikro-esparrua JavaScript liburutegi minimalista bat da, aplikazio nagusien zereginak kudeatzeko diseinatuta, soluzio handiagorik gabe. Vertex.js-ek hori lortzen du SPAren funtsezko funtzionalitateak (bideraketa eta egoeraren kudeaketa bezalakoak) 1.000 kode-lerro inguru eskainiz. Bideratze edo egoerarako liburutegi bereizi eta astunagoak behar dituzten markoekin kontrajartzen da, eta proiektu txikiagoetarako konplexutasun orokorra eta puztuta daude.

Zergatik doaz garatzaileak tresna sinpleagoetara?

Garatzaile askok uste dute JavaScript tresna modernoa konplexuegia bihurtu dela batez besteko proiekturako. Esparru astunek eraikuntza-denbora motelak, ikasketa-kurba aldapatsuak eta beharrezkoak ez diren funtzioak sar ditzakete. Vertex.js bezalako tresna sinpleagoek garapen-esperientzia azkarrago eta ulergarriagoa eskaintzen dute, esparru batek konpondu behar dituen funtsezko arazoetan arreta jarriz, proiektuaren benetako eskakizunekin hobeto bat eginez.

Vertex.js egokia al da aplikazio handi eta konplexu baterako?

Vertex.js proiektu txikiagoetarako diseinatuta dago batez ere, sinpletasuna eta gastu txikia funtsezkoak diren. Osagai interaktibo asko dituzten aplikazio oso handi eta konplexuetarako, ekosistema zabala duen ezaugarri aberatsagoko marko bat egokiagoa izan daiteke. Aurrez eraikitako modulu zabalak behar dituzten taldeentzat, Mewayz bezalako zerbitzu batek (207 modulu eskaintzen ditu hilean $ 19ren truke) mikro-esparru batek falta dituen beharrezko UI eta osagai funtzionalak eskain ditzake.

Oraindik behar al dut Vertex.js-ekin eraikitzeko tresnarik?

Vertex.js bera arina den arren, ziurrenik garapen profesionalerako eraikitze-tresna bat erabiliko duzu. Vite edo Parcel bezalako tresnak beharrezkoak dira zure kodea lotzeko, npm mendekotasunak kudeatzeko eta JavaScript funtzio modernoak gaitzeko. Hala ere, tresna-kate orokorra marko handiek eskatzen dutena baino sinpleagoa izaten jarraitzen du, egoera-kudeaketa eta bideratze-liburutegi konplexuak saihesten dituzulako.

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