7 patarimai ir gudrybės naudojant React
Ieškote būdų, kaip patobulinti savo React kodą? Šiame straipsnyje pateikiami patarimai ir gudrybės, kuriuos turėtų žinoti kiekvienas React kūrėjas. Pasinerkime!
Sužinokite, kaip JavaScript ir TypeScript leidžia greitai kurti internetines, mobiliąsias ir galines taikomąsias programas naudojant React, Node.js ir šiuolaikines debesų architektūras.
Frazę "greitas vystymasis" galima interpretuoti įvairiai. Kad to išvengtume, paaiškinkime, kokie yra mūsų lūkesčiai. Na, svarbiausias dalykas yra biudžetas. Norint sukurti daug tos pačios programos versijų, mums reikia daug kūrėjų iš kelių technologijų paketų ir mokėti kiekvienam iš jų. Norėdami kurti vietines mobiliąsias programėles, turime dubliuoti savo kodas gerai veikti abiejose platformose - "Android" ir "iOS". Įprastas požiūris - abi programos turi būti panašios, naudoti tą pačią API, išlaikyti tą pačią elgseną ir pan. Dėl to turime dubliuoti kodą, kad sukurtume dvi tos pačios programos versijas. JS yra kalba, kuri leidžia mus kurti mobiliąsias programėles ir žiniatinklio svetainė programas tuo pačiu metu. Skamba neįmanomai? Paaiškinsiu, apie ką kalbu.
Tarkime, kad norime sukurti programą, kuri naudoja React biblioteka. Šią biblioteką galima naudoti kuriant žiniatinklio programas ir mobiliąsias programas su React gimtąja kalba. Loginiai taikomosios programos mechanizmai, tokie kaip autorizavimas, skaičiavimas, filtravimas duomenys ir t. t., galima atlikti naudojant React kabliukus. Esmė ta, kad šiais kabliukais gali dalytis abi programos versijos - žiniatinklio ir mobilioji. Šios galimybės dėka turime šiuos išsaugojimus:
Apibendrinant šią pastraipą - tai nereiškia, kad viena kodų bazė veiks visose programos versijose, nors galime padalyti bendrą kodą ir naudoti jį kiekvienoje versijoje, kad kūrimo procesas tikrai greičiau.
Išvada - jei norite vienu metu kurti žiniatinklio ir mobiliąją programėlę, apsvarstykite galimybę naudoti React biblioteką, kuri gali dalytis kodų baze mobiliojoje ir žiniatinklio versijose.
Prieš kelerius metus, kalbėdami apie galinę dalį, turbūt nedaugelis įsivaizdavo, kad jos priežiūra gali būti įmanoma naudojant tokią kalbą kaip JS. Šios kalbos raida yra nuostabi, o jos vaisius galima skinti iki šių dienų.
Apie ką aš kalbu? Jei pasamdysite tinkamą JS kūrėjai, paaiškėjo, kad jie gali rašyti ne tik priekinę programos dalį, bet ir galinę dalį, t. y. būti atsakingi už duomenų apdorojimą serveryje, ryšį su duomenų baze, įvairių tipų integracijas ir pan. Vis dar dvejojate arba nesate įsitikinę dėl šios kalbos? Nėra jokios priežasties turėti tokį požiūrį! Backend naudojant JS galima įgyvendinti dviem populiariais būdais - išplečiamuoju ir konfigūruojamuoju režimu, kurį mums gali suteikti express.js, ir struktūrizuotu režimu, naudojant DI šabloną - nest.js.
Abu sprendimai yra labai populiarūs ir naudoja daugybę gamybinių programų, kurių savininkai yra savo pramonės šakos "technologijų milžinai". Manau, kad jie pakankamai subrendo, kad įtikintų jus rinktis bet kurį iš jų.
Vis dar nepakanka? Panašiai kaip dalijantis kodu tarp žiniatinklio ir mobiliųjų programų, galinė dalis gali dalytis ištekliais tiek su pirmosiomis, tiek su antrosiomis. Svarbiausias žodis, kurį čia reikia vartoti, yra TypeScript - be kita ko, tai leidžia dalytis kodų baze, t. y. bendru duomenų tipo apibrėžimu visose platformose.
Kai programos sukurtos tik pagal JavaScript / TypeScript kamino, naudojančio monolitą, sutaupome daugybę kodo eilučių, kurias tektų dubliuoti gimtąja programavimo kalba. Kita vertus, visuose frontuose naudodami tą pačią kalbą, galime dalytis didžiuliu logikos kiekiu tarp visų programų, o tai neabejotinai pagreitintų laiką, per kurį galima sukurti konkrečią programą. Argi tai neskamba puikiai?
Pasirodo, kad naršyklės programoms kurti skirtos technologijos puikiai tinka programoms, kurias naudojame darbalaukio pavidalu, palaikyti - geras pavyzdys gali būti "Slack". "Slack" yra programa, naudojama komanda bendravimas - be standartinių pranešimų siuntimo, ji turi daug įvairių funkcijų ir įvairių tipų išorinių integracijų. Visa tai daro ją viena populiariausių programų, daugiausia naudojamų IT pramonėje.
Pasirodo, "Slack" taip pat naudoja žiniatinklio technologijas (taigi, ir JavaScript), kad sukurtų savo taikomųjų programų sąsają. Pagrindas, leidžiantis tokias programas paleisti darbalaukyje, yra elektronas. Grafinių sąsajų kūrimas naudojant žiniatinklio technologijas leidžia kur kas lengviau, greičiau ir apskritai vienu metu kurti skirtingoms platformoms skirtas taikomąsias programas.
Pasakojant apie taikomosios programos frontend dalį, nėra iliuzijų, kad JS yra vienintelė ir išskirtinė kalba, kuria valdoma ši ekosistema. Kol kas nėra perspektyvių alternatyvų, galinčių pakeisti šią programos dalį (nors manau, kad ateityje "WebAssembly" gali mus nustebinti). Taigi, kalbant apie JS brandą frontende - nekyla abejonių, kad ji yra vienintelė karališkoji.
Kalbėdami apie galinę dalį, daugelis kūrėjų gali būti šokiruoti arba iš karto paneigti, kad JS tinka kaip galinės dalies programavimo kalba. Tačiau šį klausimą reikia analizuoti objektyviai.
Daugybė debesijos paslaugų teikėjų teikia SDK, kurie leidžia tiesiogiai naudoti debesis metodai. Keista, kad vienas populiariausių skirtukų, šalia C#, Go ir Java, yra Node.js. Paaiškėjo, kad ši platforma idealiai tinka mastelio keitimui ir programų kūrimui remiantis mikroservisai arba beserverinė architektūra. Išvada - JS yra viena iš populiariausių kalbų, kuriomis galima kurti mikroservisų ir beserverinės architektūros programėles. Toliau pateiktuose ekranuose matome, kad šventoji trejybė (Google kompiuterių paslaugos, AWS, Azure) debesijos paslaugų teikėjų leidžia kurti programas naudojant mazgas.js.


Kalbant apie "node.js" ekosistemą, tikriausiai visi žino biblioteką express.js - tai paprasta ir nesudėtinga priemonė, leidžianti apibrėžti kelius ir pateikti jiems atitinkamus duomenis, kurie buvo tinkamai apdoroti JS pusėje. Be to, tarp express.js tvarkomų HTTP užklausų naudojamas modelis tapo vienu populiariausių visoje ekosistemoje ir yra savotiškas įvairių kitų bibliotekų, naudojančių, pavyzdžiui, serverless architektūrą, modelis.
Išvada - JS yra pakankamai subrendusi kalba, kad būtų galima sudėti visas kortas ir kurti tiek frontendą, tiek backendą. Be to, tai gana šviežia kalba, kuri lengvai įsilieja į šiuolaikinių programų architektūrą. Puiku, kad programuotojas, mokantis vieną kalbą, gali įvaldyti abi taikomosios programos puses (full stack).
Dažniausiai JS kodui vykdyti naudojamas "v8" variklis, veikiantis C++ kalba. Šis "Google" sukurtas variklis skirtas interneto platformoms skirtoms programoms vykdyti. Įdomu tai, kad šis variklis neinterpretuoja JS kodo. Vietoj to jis atlieka dalyką, vadinamą "JIT" - "Just in time compilation". Dėl to mums nereikia interpretuoti JS kodo eilutė po eilutės, mes tiesiog jį kompiliuojame ir paleidžiame. Tai dar greitesnis procesas, o jo rezultatai tikrai geri.
Ar JS yra pakankamai sąžiningas dėl našumo? Taip, yra. Jei algoritmai yra pakankamai sąžiningi, nėra jokių problemų naudoti JS serverio pusėje. Kitas dalykas - kad jūsų kodas būtų kuo asinchroniškesnis. Taikant šią praktiką, jūsų kodas gali be problemų apdoroti lygiagrečias užklausas. Jums nereikia rūpintis technologijų keitimu dėl našumo - ypač kai taikomosios programos architektūra yra keičiama.
Šiame straipsnyje jau išsamiai aptariau našumą ir etalonus.
Tai dešimtys nuomonių, kad JS kalba tam tikrais atvejais elgiasi keistai, o jos tvarkymas priverčia jūsų galvą sprogti kūrimo proceso metu. Negaliu su tuo sutikti 🙂 Kaip ir bet kuri kita kalba, ji turi keletą modelių / elgsenų, kurios nėra elegantiškos, tačiau supratus, kaip jos veikia ir kokie jų tikslai, kurti programas su JS nėra nemalonu.
Ypač kai kuriems kūrėjams drebulys kyla dėl "asinchroninio" žodžio prieš pat JS. Sunku suprasti, kai neturi su tuo jokios patirties. Tačiau tai yra JS dalis, leidžianti lengvai kurti šiuolaikinius sprendimus. Apžvelkime žiniatinklio lizdus: kadangi jie pagrįsti įvykiais - kiekvienas iš prijungtų vienetų - naudotojas ir serveris - gali lygiagrečiai siųsti ir gauti įvykius. Jei kodas, kuriuo valdoma ši programa, yra pakankamai asinchroninis ir neužblokuoja pagrindinio srauto, galime lengvai apdoroti tūkstančius užklausų per trumpą laiką.
Palyginkime JS ir PHP su žiniatinklio lizdų kontekstu. PHP yra sinchroninė programavimo kalba, todėl žiniatinklio lizdų temų sprendimas kelia didžiulį galvos skausmą. Matome, kad PHP gauna šablonus iš JS, kad galėtų kurti interaktyvias galines programas, kurios gali naudoti šiuolaikines technologijas, pavyzdžiui, webrtc arba websockets.
Apibendrinant visas pastraipas, galima pateikti keletą faktų:
JavaScript tai kalba, kuria galima kurti įvairias programas - nuo žiniatinklio, mobiliųjų iki stalinių kompiuterių;
JS parašytos programos gali dalytis įvairiais kodo fragmentais, pavyzdžiui, tais, kurie atsakingi už duomenų formatavimą ar tipus "Typescript";
Dėl interneto plėtros JS našumas yra pakankamai geras, kad būtų galima rinktis tiek priekinių, tiek galinių programų kūrimui;
Dėl neįprastos konstrukcijos JavaScript gali palaikyti modernias taikomųjų programų infrastruktūras, pavyzdžiui, Websockets ir WebRTC;
Samdydami tinkamai kvalifikuotą kūrėją, galėsite išnaudoti jos potencialą kiekvienoje turimoje šios kalbos priekyje;
JS yra kalba, kuri jau kelerius metus kyla populiarumo viršūnėse, ir nėra jokių požymių, kad tai kaip nors pasikeis.
Išsakysiu savo, tiesa, šališką nuomonę - pasinaudojus JavaScript galimybe pakartotinai naudoti tą patį kodą visuose prieinamuose frontuose, neabejotinai paspartės programų kūrimas ir sumažės programuotojų, dalyvaujančių prižiūrint kitomis technologijomis parašytų programų galinę dalį, skaičius. Kaip patvirtinimą prisiminkime faktą, kad labai daug vadinamųjų IT milžinų laikosi šio modelio ir dalijasi nemaža dalimi kodo bazės įvairiose platformose. Nepaisant skirtingų nuomonių apie šią kalbą, reikia atsižvelgti į tai, kad naudojimo statistika ir pasitenkinimas naudojimu JS kasmet auga, o jos kūrėjai gali lengvai įsitraukti į pilno kamino tendenciją.
Skaityti daugiau:
Kodėl turėtumėte (tikriausiai) naudoti Typescript