Hacker News

Afișați HN: Vertex.js – Un cadru SPA 1kloc

Comentarii

14 min read Via lukeb42.github.io

Mewayz Team

Editorial Team

Hacker News
Iată articolul:

Apariția micro-cadrelor: de ce dezvoltatorii resping instrumentele JavaScript umflate

Un dezvoltator a postat recent un cadru de aplicație cu o singură pagină construit în aproximativ 1.000 de linii de cod pentru Hacker News, iar răspunsul a fost electric. Proiectul – un cadru minimalist SPA – a reaprins o dezbatere care a fost fierbinte în comunitatea de dezvoltare web de ani de zile: au devenit instrumentele noastre prea complexe pentru problemele pe care le rezolvă? Când biblioteca de bază a React, routerul său, stratul său de management al stării și instrumentele sale de construcție cântăresc în mod colectiv sute de mii de linii de cod, un cadru care oferă rutare, reactivitate și redarea componentelor în doar 1.000 de linii impune o întrebare incomodă. Pentru companiile care construiesc aplicații orientate către clienți, răspunsul la această întrebare are consecințe reale — în timpii de încărcare, productivitatea dezvoltatorului și costurile de întreținere pe termen lung.

Ce demonstrează de fapt un cadru de 1.000 de linii

Ideea unui micro-cadru nu este nouă. Backbone.js avea aproximativ 1.800 de linii de cod sursă adnotat când a debutat în 2010. Mithril.js este livrat la sub 10KB gzipped. Ceea ce face ca fiecare intrare nouă din această categorie să fie remarcabilă nu este numărul rândurilor în sine, ci ceea ce dezvăluie despre starea actuală a API-urilor browserului. Browserele moderne sunt livrate cu suport nativ pentru literalele șablonului, API-ul History, reactivitate bazată pe proxy, elemente personalizate și încărcare de module. Acum un deceniu, cadrele aveau nevoie de mii de linii doar pentru a normaliza diferențele dintre Internet Explorer și Chrome. Astăzi, un dezvoltator calificat poate construi un cadru SPA complet funcțional ca un strat subțire de orchestrare deasupra primitivelor platformei.

Acest lucru contează deoarece schimbă conversația de la „ce cadru ar trebui să alegem?” la "avem nevoie de un cadru deloc?" Pentru proiectele mici spre mijlocii — o pagină de destinație cu secțiuni dinamice, un tablou de bord intern, un portal pentru clienți — răspunsul este din ce în ce mai mult: poate nu, sau cel puțin nu unul greu. Cadrul de 1.000 de linii este dovada că platforma s-a maturizat până la punctul în care munca cadrului se micșorează.

Desigur, cadre precum React și Vue își câștigă în continuare greutatea în aplicațiile la scară largă cu arbori de stări complexe, nevoi de randare pe partea de server și echipe de peste 20 de dezvoltatori care beneficiază de convenții rigide. Perspectiva cheie este că instrumentul potrivit depinde în întregime de domeniul de aplicare al problemei.

Costul real al JavaScript bloat

Propria cercetare Google a arătat în mod constant că fiecare 100 de milisecunde de timp de încărcare adăugat poate reduce ratele de conversie cu până la 7%. Pagina web mediană oferă acum peste 500 KB de JavaScript - o cifră care aproape s-a triplat din 2015. Pentru companii, aceasta nu este o valoare abstractă a performanței. Se traduce direct în venituri pierdute, rate de respingere mai mari și clasamente mai proaste în motoarele de căutare.

Problema se agravează pe rețelele mobile. Un utilizator de pe un dispozitiv Android de gamă medie care se conectează prin 3G poate aștepta 5-8 secunde pentru ca o pagină cu JavaScript să devină interactivă, chiar și după ce HTML-ul inițial a fost redat. Acest lucru este deosebit de pedepsitor pentru companiile care deservesc clienții pe piețele emergente, unde navigarea pe mobil este norma, iar infrastructura de rețea variază dramatic.

  • Timp de analiză: analizarea și compilarea pachetelor mari JavaScript durează mai mult, chiar înainte ca o singură linie de cod de aplicație să fie executată
  • Presiunea memoriei: elementele interne ale cadrului complexe consumă memorie care ar putea fi folosită de aplicația însăși
  • Oboseala actualizării: Actualizările majore ale cadrului (Angular 1 la 2, Vue 2 la 3, componentele clasei React la cârlige) forțează eforturi costisitoare de migrare la fiecare 2-3 ani
  • Lanțuri de dependență: folderul node_modules al unui proiect obișnuit React conține 800-1.200 de pachete, fiecare fiind o potențială vulnerabilitate de securitate sau o schimbare de ruptură
  • Clădire complexitate: Webpack, Babel, PostCSS și fișierele lor de configurare depășesc adesea codul aplicației pe care îl deservesc

Micro-cadrele ocolesc majoritatea acestor costuri. Cu mai puține abstracții, există mai puține lucruri de spart, mai puține dependențe de auditat și mai puțini octeți de expediat către browser. Pentru o afacere care are nevoie de o prezență web rapidă și de încredere, fără o echipă dedicată de infrastructură frontală, matematica favorizează din ce în ce mai mult simplitatea.

De ce comunitatea dezvoltatorilor este împărțită

Discuția Hacker News despre micile cadre SPA generează în mod fiabil două tabere opuse. Pe de o parte sunt dezvoltatorii care au petrecut ani de zile în baze de cod mari construite pe React sau Angular și au văzut direct cum complexitatea cadrului de lucru se agravează în timp. Ei au urmărit funcțiile simple cum se transformă în sarcini de mai multe zile, deoarece convențiile cadrului necesită o configurare a routerului atins, un boilerplate de gestionare a stării și cablaje de testare care batjocoresc elementele interne ale cadrului. Pentru acești dezvoltatori, un cadru de 1.000 de linii reprezintă eliberarea — o revenire la înțelegerea fiecărei linii de cod care rulează în aplicația lor.

Pe de altă parte, sunt pragmațiștii care subliniază că cadrele există, deoarece aplicațiile din lumea reală au nevoie în cele din urmă de ceea ce oferă: utilități de accesibilitate, internaționalizare, împărțire a codului, randare pe server și o serie de angajări de dezvoltatori care cunosc deja instrumentul. Un micro-cadru ar putea fi încântător pentru un proiect de weekend, susțin ei, dar încercați să încorporați o echipă de cinci persoane la o bază de cod personalizată de 1.000 de linii, fără răspunsuri Stack Overflow și fără documentație oficială.

Ambele părți au puncte valide, iar adevărul este că alegerea este contextuală. Un fondator solo care construiește un MVP are nevoi fundamental diferite față de o echipă de întreprindere care menține o aplicație veche de cinci ani. Pericolul constă în aplicarea soluțiilor de întreprindere la problemele de pornire sau a instrumentelor de pornire la provocările întreprinderii.

De ce au nevoie întreprinderile moderne de la tehnologia lor

Dezbaterea-cadru este în cele din urmă un proxy pentru o întrebare mai amplă: cum ar trebui întreprinderile să-și aloce resursele tehnice limitate? Fiecare oră petrecută de un dezvoltator pentru a configura o conductă de construcție sau pentru a migra la o nouă versiune de cadru este o oră pe care nu o petrece pentru a construi funcții care servesc clienții. Pentru multe întreprinderi — în special operațiunile mici și mijlocii — alegerea tehnologică ideală este cea care minimizează diferența dintre „Am o idee” și „clienții o folosesc”.

Cea mai bună decizie tehnologică pe care o poate lua o companie în creștere este să aleagă instrumente care rezolvă problemele de astăzi, fără a crea sarcina de întreținere de mâine. Indiferent dacă asta înseamnă un cadru de 1.000 de linii sau o platformă complet gestionată, obiectivul este același: petreceți-vă timpul pe ceea ce face afacerea dvs. unică, nu pe infrastructura de care are nevoie fiecare companie.

Acest principiu se extinde dincolo de cadrele frontend. Companiile reconstruiesc în mod obișnuit aceleași sisteme backend - autentificarea utilizatorilor, procesarea plăților, CRM, facturare, programare - pentru că tehnologia aleasă o cere acest lucru. Platforme precum Mewayz există tocmai pentru a elimina această muncă repetitivă, oferind 207 module pre-construite care acoperă totul, de la CRM și salarizare până la sisteme de rezervare și analiză. Aceeași filozofie care conduce dezvoltatorii către micro-cadre – faceți mai mult cu mai puțin, eliminați complexitatea inutilă – conduce companiile către platforme consolidate care înlocuiesc zeci de abonamente SaaS cu un singur sistem.

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

Spectrul Cadrului: Găsirea punctului favorabil

În loc să trateze alegerea cadrului drept binar – mega-cadru sau micro-cadru – ajută să gândim în termeni de spectru. La un capăt, aveți JavaScript vanilla cu zero abstracții. Pe de altă parte, aveți meta-cadre full-stack, cum ar fi Next.js sau Nuxt, care se ocupă de rutare, randare, preluare a datelor și implementare. Majoritatea proiectelor aparțin undeva la mijloc.

Pentru un site de marketing orientat către clienți, cu câteva elemente interactive, un micro-cadru sau chiar reactivitate în linie în stilul Alpine.js pot fi potrivite perfecte. Pentru un tablou de bord SaaS complex cu date în timp real, permisiuni bazate pe roluri și asistență offline, un cadru matur cu un ecosistem bogat merită costul general. Greșeala este să utilizați implicit cea mai grea opțiune, deoarece este cea mai populară, sau să utilizați implicit cea mai ușoară, deoarece este cea mai satisfăcătoare din punct de vedere intelectual.

Testul practic este simplu: enumerați fiecare caracteristică de care are nevoie aplicația dvs. în următoarele 12 luni. Dacă un micro-cadru acoperă 90% din aceste nevoi și puteți rula manual restul de 10% în mai puțin timp decât ați petrece configurarea unui cadru mai mare, micro-cadru câștigă. Dacă lista dvs. de caracteristici include randare pe partea de server, validare complexă a formularelor, orchestrare animație și asistență profundă pentru accesibilitate, cadrul mai mare se achită probabil de la sine.

Lecții pentru fondatori non-tehnici și operatori de afaceri

Dacă conduci o afacere și echipa ta tehnică dezbate cadre, iată ce contează de fapt. În primul rând, întrebați despre timpul pentru prima funcție - cât de repede poate un nou dezvoltator din echipă să livreze o schimbare semnificativă? Dacă răspunsul implică zile de configurare a mediului și de învățare a cadrului, acesta este un semn de avertizare, indiferent de cadru ales. În al doilea rând, întrebați despre calea de actualizare. Cadrele care eliberează modificări de ruptură la fiecare 18 luni impun o taxă ascunsă care apare rar în evaluarea inițială.

În al treilea rând, și cel mai important, întrebați dacă aveți nevoie de software personalizat pentru funcția în cauză. Multe companii investesc luni de timp pentru dezvoltatori în construirea instrumentelor interne — tablouri de bord, sisteme CRM, fluxuri de facturare, interfețe de programare — care există deja ca produse îmbunătățite și întreținute. O platformă precum Mewayz, care deservește peste 138.000 de utilizatori cu module care acoperă întregul spectru de operațiuni de afaceri, poate elimina nevoia de dezvoltare personalizată în întregime pentru funcțiile standard de afaceri. Acest lucru eliberează echipa dvs. de dezvoltare să se concentreze asupra aspectelor cu adevărat unice ale produsului dvs. - caracteristicile pe care nici un instrument disponibil pe raft nu le poate oferi.

  1. Audit codul personalizat: identificați ce instrumente interne dublează funcționalitatea disponibilă în platformele existente
  2. Calculați costul real: luați în considerare nu doar dezvoltarea inițială, ci și întreținerea continuă, corecțiile de securitate și solicitările de funcții
  3. Evaluați consolidarea: numărați abonamentele actuale SaaS și comparați costul cu o platformă integrată
  4. Protejați-vă elementele de diferențiere: Rezervați resurse de dezvoltare personalizate pentru funcții care vă deosebesc cu adevărat afacerea

Viitorul aparține alegerilor intenționate

Emomentul din jurul unui cadru SPA de 1.000 de linii nu se referă cu adevărat la cadrul în sine. Este vorba despre o mișcare în creștere în dezvoltarea software-ului către intenționalitate - alegerea instrumentelor pentru că se potrivesc cu problema, nu pentru că domină piața. Ecosistemul JavaScript a petrecut ultimul deceniu într-o cursă înarmărilor de caracteristici și abstracții. Contra-mișcarea, reprezentată de micro-cadre, HTML redat pe server și API-uri native ale platformei, este o corecție către pragmatism.

Pentru companii, această schimbare este pozitivă fără ambiguitate. Înseamnă mai multe opțiuni, costuri de comutare mai mici și o cultură a dezvoltatorilor care prețuiește din ce în ce mai mult simplitatea și viteza în detrimentul completității teoretice. Indiferent dacă sunteți un antreprenor singur care alege între WordPress și un site personalizat, sau un CTO care evaluează dacă să construiți sau să cumpărați următorul instrument intern, același principiu se aplică: cea mai bună tehnologie este cea care dispare în fundal, permițându-vă să vă concentrați pe servirea clienților.

Cadrul de 1.000 de linii ne amintește că puterea nu necesită complexitate. Cele mai eficiente afaceri – și cele mai eficiente instrumente – sunt cele care fac exact ceea ce este necesar și nimic mai mult.

Eficientizați-vă afacerea cu Mewayz

Mewayz aduce 207 module de afaceri într-o singură platformă — CRM, facturare, management de proiect și multe altele. Alăturați-vă celor peste 138.000 de utilizatori care și-au simplificat fluxul de lucru.

Începe gratuit astăzi →

Întrebări frecvente

Ce este un micro-cadru precum Vertex.js?

Un micro-cadru este o bibliotecă JavaScript minimalistă, concepută pentru a gestiona sarcinile de bază ale aplicației fără cea mai mare parte a soluțiilor mai mari. Vertex.js realizează acest lucru prin furnizarea de funcționalități esențiale SPA, cum ar fi rutarea și gestionarea stării, în aproximativ 1.000 de linii de cod. Acest lucru contrastează cu cadrele care necesită biblioteci separate și mai grele pentru rutare sau stare, reducând complexitatea generală și umflarea pentru proiecte mai mici.

De ce dezvoltatorii se îndreaptă către instrumente mai simple?

Mulți dezvoltatori consideră că instrumentele JavaScript moderne au devenit prea complexe pentru un proiect mediu. Cadrele grele pot introduce timpi de construcție lenți, o curbă abruptă de învățare și funcții inutile. Instrumente mai simple precum Vertex.js oferă o experiență de dezvoltare mai rapidă și mai ușor de înțeles, concentrându-se pe problemele esențiale pe care trebuie să le rezolve un cadru, aliniindu-se mai bine la cerințele actuale ale proiectului.

Vertex.js este potrivit pentru o aplicație mare și complexă?

Vertex.js este conceput în primul rând pentru proiecte mai mici în care simplitatea și cheltuielile generale reduse sunt esențiale. Pentru aplicații foarte mari și complexe, cu multe componente interactive, un cadru mai bogat în caracteristici, cu un ecosistem vast, ar putea fi mai potrivit. Pentru echipele care au nevoie de module extinse pre-construite, un serviciu precum Mewayz (oferind 207 module pentru 19 USD/lună) ar putea oferi interfața de utilizare și componentele funcționale necesare, de care lipsește un micro-cadru.

Mai am nevoie de un instrument de compilare cu Vertex.js?

Deși Vertex.js în sine este ușor, probabil că veți folosi în continuare un instrument de compilare pentru dezvoltarea profesională. Instrumente precum Vite sau Parcel sunt necesare pentru a vă grupa codul, a gestiona dependențele npm și pentru a activa funcțiile JavaScript moderne. Cu toate acestea, lanțul de instrumente general rămâne mai simplu decât cele cerute de cadre mai mari, deoarece eviți bibliotecile complexe de gestionare a stării și de rutare.

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