Programiranje

7 ključev za strukturiranje aplikacije Node.js

Rahul Mhatre je tehnični arhitekt pri Built.io.

Node.js hitro dohiteva Javo, Ruby, Python in .Net kot prednostni jezik za razvoj novih spletnih aplikacij. Skupina Node.js z vsakim dnem izboljšuje izvajanje JavaScript, hitreje in bolj trdno. In skupnost uporabnikov hitro raste.

Ko se bo posvojitev še naprej povečevala, se bo vedno več razvijalcev povzpelo po krivulji učenja Node.js, soočalo se s podobnimi težavami in kodiralo podobne funkcije. Na srečo je skupnost Node.js priskočila na pomoč z ogrodji in vzorci oblikovanja, ki ne rešujejo le pogostih težav, temveč tudi pomagajo pri strukturiranju aplikacij.

Okvirji na splošno izvajajo vzorce MV, kot so MVC (model-view-controller), MVVM (model-view-viewmodel), MVP (model-view-presenter) ali samo MV. Povejo vam tudi, kje naj bo koda za modele, poglede in krmilnike, kje naj bodo vaše poti in kje morate dodati svoje konfiguracije. Mnogi mladi razvijalci in navdušenci nad Node.js v resnici ne razumejo, kako se vzorčni vzorci ali diagrami OOP (objektno usmerjeno programiranje) preslikajo na vrstice ali strukturo kode v njihovi aplikaciji.

Tu vstopijo okviri Node.js, kot sta Express.js in Sails.js. Ti in številni drugi so na voljo za pomoč pri zagonu razvoja spletnih aplikacij. Ne glede na ogrodje, ki ga uporabljate, boste pri strukturiranju svoje aplikacije želeli upoštevati določene vidike.

Tukaj je sedem ključnih točk, o katerih razmišljam, preden preslikam aplikacijo Node.js.

1. Pravilna struktura imenika za aplikacijo

Pri odločanju o strukturi imenika za svojo aplikacijo razmislite o vzorcu oblikovanja, ki ste ga izbrali. To vam bo pomagalo hitreje pri vkrcanju, iskanju kode in izoliranju težav. Osebno raje uporabljam vzorec MVC pri oblikovanju aplikacije Node.js. Pomaga mi pri hitrejšem razvoju, zagotavlja prožnost pri ustvarjanju več pogledov za iste podatke in omogoča asinhrono komunikacijo in izolacijo med komponentami MVC.

Rad sledim zgornji strukturi imenikov, ki temelji na kombinaciji Ruby on Rails in Express.js.

Povezani video: Node.js nasveti in triki

V tem obrazložitvenem videu se naučite več tehnik, ki lahko izboljšajo vašo izkušnjo razvoja vozlišča.

2. Preslikava diagramov ER na modele

Kot je opredeljeno v Techopedia, "Diagram razmerja med entitetami (ERD) je tehnika modeliranja podatkov, ki grafično prikazuje entitete informacijskega sistema in razmerja med temi entitetami." Diagram ER opisuje različne entitete, ki bodo sodelovale v našem sistemu, in opredeljuje vse interakcije med njimi, tako da:

  • Vse, kar je abstraktna ali fizična "stvar", postane entiteta v modelu
  • Model se preslika v tabelo znotraj naše baze podatkov
  • Atribut ali lastnost entitete se prevede v atribut modela, ki je nato stolpec znotraj tabele

Na primer, če je vaša entiteta uporabnik, bi bil ustrezni model »Uporabnik« z atributi, kot so ime_ime, priimek in naslov znotraj baze podatkov, pa tudi ustrezna tabela in stolpci.

Uporaba enostavne podatkovne arhitekture omogoča enostavno sledenje rasti baze podatkov in datotek, kadar koli ustvarite novo shemo.

3. Uporaba vzorca MVP

Izvajanje MVC ne pomeni samo ustvarjanja map za krmilnike, poglede in modele. Kodo in logiko morate razdeliti tudi v skladu z MVC. Koda znotraj vaših modelov mora biti strogo omejena na definicije sheme baze podatkov. Razvijalci na splošno pozabljajo, da bodo modeli imeli tudi kodo, ki bo izvajala CRUD operacije. V tej datoteki mora biti tudi katera koli funkcija ali operacija, ki je značilna za ta model. V tej datoteki mora biti večina poslovne logike, povezane z modelom.

Pogosta napaka je vso poslovno logiko prenašati v krmilnike. Krmilniki naj prikličejo funkcije samo iz modelov ali drugih komponent, prenašajo podatke med komponentami in nadzorujejo potek zahteve, medtem ko mora mapa pogleda imeti samo kodo za pretvorbo predmetov v človeško berljivo obliko. V pogledu ne sme biti logike, kot je formatiranje podatkov ali razvrščanje ali filtriranje. Če pogledi ostanejo čisti, ne boste le izboljšali uporabniške izkušnje, temveč vam bodo pomagali tudi pri spreminjanju pogledov, ne da bi spremenili katero koli drugo komponento.

4. Razbijanje logike v module

Kot razvijalci nam vedno govorijo, da bi morali kodo organizirati v datoteke in module. To ne pomeni, da bi morali celotno aplikacijo poskušati umestiti v eno samo datoteko. Najboljši pristop je razdelitev kode na podlagi logike in funkcionalnosti. Združevanje funkcij, povezanih z eno entiteto ali predmetom, v eno datoteko in organiziranje strukture imenika na podlagi logike ima številne prednosti. Prvič, prihranilo bo veliko časa pri določanju, katere funkcije se dotakniti, ko je treba odpraviti napako. Drugič, pomaga ločiti vse komponente v arhitekturi in olajša zamenjavo diskretnih funkcij, ne da bi bilo treba spreminjati druge vrstice kode. Tretjič, pomagalo bo tudi pri pisanju testnih primerov.

5. Pomen testnih primerov

Zelo pomembno je, da pri izdelavi testnih primerov nikoli ne zarežete - testi so varuhi vaše kode. Ko vaša aplikacija raste, si je težje zapomniti vse scenarije, ki jih morate zajeti med kodiranjem. Testni primeri vam pomagajo ohranjati stabilnost osnove kode. Testiranje preprečuje regresijo in prihrani dragocen razvojni čas in trud. Pomaga vam zagotoviti, da bodo nove funkcije odstranjene brez napak. Prav tako pomaga izboljšati kakovost kode, tako da lovi napake, preden gredo v proizvodnjo. In kar je najpomembneje, testiranje pomaga vliti zaupanje, da koda ne bo zrušila.

6. Pomen dnevnikov

Dnevniki so koristni za odpravljanje napak in razumevanje stanja vaše aplikacije. Zagotavljajo dragocen vpogled v vedenje aplikacije. Tu je hiter seznam stvari, ki jih je treba upoštevati pri vzpostavljanju dnevnikov:

  • Poiščite pravo ravnovesje, ko gre za beleženje. Če imate "preveč informacij", ni nikoli slabo, vendar pa boste preveč zabeležili svoje delo. Igle je lažje najti v manjših kozolcih. Na drugi strani bo premajhno beleženje povzročilo premalo informacij, ki so na voljo za odpravljanje napak ali diagnozo.
  • Razdelite dnevnike brez povezave in na spletu, pri čemer se najnovejši dnevniki hranijo za hitro iskanje in obdelavo, starejši dnevniki pa se arhivirajo ali odvržejo v datoteke.
  • Upoštevajte pogostost in trajanje dnevnikov, saj bo to vplivalo na količino prostora za shranjevanje, ki ga potrebujete. Količina prostora, ki ga potrebujete, in število dnevnikov, ki jih imate, sta največkrat sorazmerna.

In ne pozabite, ne shranjujte občutljivih podatkov, kot so e-poštni ID-ji, gesla, podatki o kreditnih karticah in telefonske številke. Ne gre samo za veliko varnostno tveganje, ampak pogosto tudi nezakonito.

7. Ali bo obseg prijave?

Najslabši pristop k razvoju aplikacij je razmišljati o tem, kako prilagoditi obseg po pridobite promet. Namesto tega bi morali zgraditi arhitekturo, ki lahko od začetka raste, da prihrani čas in poveča produktivnost.

Vrtenje strežnikov ni skaliranje; porazdelitev obremenitve po virih je. To ne pomeni, da ne smete ustvarjati novih strežnikov, ko se obremenitev poveča. Najprej morate v trenutnih virih nastaviti uravnoteženje obremenitve, da boste lahko obvladovali povečano obremenitev. Ko izravnava obremenitve ne more učinkovito upravljati delovne obremenitve, je čas, da začnemo vodoravno skaliranje in ustvarimo nove strežnike. To lahko dosežete z neodvisnim postopkom brez državljanstva ali z moduli. Vsak postopek ali modul bo deloval ločeno, neodvisno. To vam ne bo pomagalo le do učinkovitega obsega aplikacije, temveč bo sistem odporen na napake in ga bo enostavno obnoviti.

Kako strukturirate spletno aplikacijo, je enako pomembno kot izbira prave tehnologije. Če so temelji pomanjkljivi, se aplikacija sčasoma zruši, zavrne prilagoditev ali se v nekaterih primerih sploh ne zažene. Nikoli ne hitite z razvojem novih funkcij ali novih idej brez ustreznega načrtovanja in arhitekture. Slaba zgradba ali arhitektura je kot časovna bomba, ki čaka, da eksplodira.

Forum New Tech ponuja prizorišče za raziskovanje in razpravo o nastajajoči podjetniški tehnologiji v globini in širini brez primere. Izbor je subjektiven in temelji na našem izboru tehnologij, za katere menimo, da so pomembne in najbolj zanimajo bralce. ne sprejema tržnih zavarovanj za objavo in si pridržuje pravico do urejanja celotne prispevane vsebine. Vsa vprašanja pošljite na [email protected].

$config[zx-auto] not found$config[zx-overlay] not found