7 ráð og brellur í React
Ertu að leita að leiðum til að bæta React-kóðann þinn? Þessi grein inniheldur ráð og brellur sem allir React-þróunaraðilar ættu að þekkja. Skulum kafa í efnið!
Lærðu hvernig JavaScript og TypeScript gera kleift hraða forritunarþróun á vef, farsímum og bakenda með React, Node.js og nútíma skýjamiðaðri arkitektúr.
Hér er tómt.Orðasambandið “hröð þróun” má túlka á margar rangar leiðir. Til að forðast það skulum við útskýra hvað við búumst við. Jæja, það mikilvægasta er fjárhagsáætlunin. Til að búa til margar útgáfur af sama forriti þurfum við marga forritara úr nokkrum tæknistackum og greiða hverjum og einum þeirra. Til að búa til innfæddar farsímaforrit þurfum við að afrita okkar kóði til að virka vel á báðum vettvangi – Android og iOS. Algeng nálgun er að halda báðum forritunum svipuðum, nota sama forritaskil, viðhalda sömu hegðun og svo framvegis. Afleiðingin er sú að við þurfum að afrita kóðann til að búa til tvær útgáfur af sama forritinu. JS er tungumál sem gerir kleift okkur að byggja upp farsímaforrit og vefur Forrit samtímis. Hljómar ómögulegt? Leyfðu mér að útskýra hvað ég er að tala um.
Segjum að við viljum búa til forrit sem notar React bókasafn. Þetta bókasafn má nota til að byggja vef- og farsímaforrit með React native. Rökrænar vélbúnaðarhætti forritsins, svo sem heimildaveitingu, útreikninga og síun. gögn og svo framvegis, er hægt að gera með React-krókum. Meginatriðið er að þessir krókar geta verið sameiginlegir báðum útgáfum forritsins – vef- og farsímaútgáfu. Þökk sé þessari valkostum höfum við eftirfarandi vistanir:
Til að draga þennan málsgrein saman – það er ekki þannig að ein kóðagrunnur muni knýja allar útgáfur forritsins, þó að við getum skipt sameiginlega kóðanum og notað hann í hverri þeirra til að gera þróunarferli Mikið hraðar.
Ályktun – ef þú vilt byggja vef- og farsímaforrit samtímis, íhugaðu React-bókasafnið sem getur deilt kóðagrunni í farsíma- og vefútgáfu forritsins.
Fyrir nokkrum árum, þegar rætt var um bakendann, myndu fáir hafa ímyndað sér að viðhald hans gæti verið mögulegt með hjálp tungumáls eins og JS. Þróun þessa tungumáls er ótrúleg og ávöxtum þess má enn nýta í dag.
Um hvað er ég að tala? Ef þú ræður réttan JS-þróunaraðilar, kemur í ljós að þeir geta skrifað ekki aðeins frontend-ið í forritinu, heldur einnig backend-ið – það er að segja, séð um vinnslu gagna á netþjóninum, samskipti við gagnagrunninn, ýmsar tegundir samþættinga o.s.frv. Enn hikandi eða ekki sannfærður um þetta forritunarmál? Það er engin ástæða til að hafa slíka afstöðu! Backend með JS má innleiða á tvo vinsæla vegu – í framlægjanlegu og stillanlegu formi sem express.js getur veitt okkur, og í uppbyggðu formi með DI-mynstri – nest.js.
Báðar lausnirnar eru ákaflega vinsælar og knýja fram fjölda framleiðsluumsókna sem eigendur þeirra eru tæknirisar í sínum iðnaði. Ég tel að þær hafi þroskast nægilega til að sannfæra þig um að velja hvorri sem er þeirra.
Ekki nóg ennþá? Líkt og kóðahlutdeild milli vef- og farsímaforrita getur bakendinn deilt auðlindum með báðum. Lykilorðið sem á að nota hér er TypeScript – meðal annars gerir það okkur kleift að deila kóðagrunni, þ.e. sameiginlegri skilgreiningu á gagnategundum á öllum vettvangi.
Með forritum sem eru eingöngu byggð á JavaScript / TypeScript Með því að nota monólítíska nálgun sparast okkur margar kóðalínur sem við þyrftum að endurtaka í hefðbundnum forritunarmálum. Á hinn bóginn, með því að nota sama forritunarmálið á öllum sviðum getum við deilt gríðarlegu magni af rökvísi á milli allra forrita, sem myndi án efa flýta fyrir þeim tíma sem fer í að byggja upp tiltekið forrit. Hljómar það ekki frábærlega?
Það kemur í ljós að tækni til að búa til vafraforrit hentar einstaklega vel til að viðhalda þeim forritum sem við notum í skjáborðsútgáfu – gott dæmi um þetta er Slack. Slack er forrit sem er notað til að lið Samskipti – umfram hefðbundna skilaboðasendingu býður það upp á fjölmargar aðgerðir og ýmsar tegundir af ytri samþættingum. Allt þetta gerir það að einni vinsælustu forritunum sem notuð eru aðallega í upplýsingatæknigeiranum.
Svo sem kemur í ljós notar Slack einnig veftækni (og þar með JavaScript) til að byggja forritaviðmót sitt. Grunnurinn sem gerir það mögulegt að keyra slík forrit á skjáborðinu þínu er Electron. Að búa til grafísk viðmót með veftækni gerir það mun auðveldara, hraðara og almennt mögulegt að þróa forrit fyrir mismunandi vettvanga samtímis.
Út frá framenda hluta forritsins er engin blekking um að JS er eina og eina tungumálið sem knýr vistkerfið hér áfram. Að svo stöddu eru engar raunhæfar lausnir sem geta komið í stað þessa hluta forritsins (þó ég telji að WebAssembly gæti komið okkur á óvart í framtíðinni). Þannig, þegar rætt er um þroska JS á framenda, er enginn vafi á því að það er eini konungurinn.
Þegar rætt er um bakendann kunna margir forritarar að virðast hissa eða neita strax að JavaScript henti sem forritunarmál á bakendanum. Hins vegar þarf að greina málið hlutlaust.
Margir skýjaþjónustuveitendur bjóða upp á SDK sem gera þér kleift að nota beint ský aðferðir. Furðulega nóg, einn af vinsælustu flipunum, beint við hliðina á C#, Farðu og Java, er Node.js. Það kemur í ljós að þetta vettvangur er kjörinn til að stækka og byggja forrit sem byggja á örþjónustur eða þjónustulausri arkitektúr. Niðurstaða – JS er eitt af vinsælustu forritunarmálunum til að þróa forrit sem byggja á örþjónustum/þjónustulausri arkitektúr. Á skjámyndunum hér að neðan sjáum við að hin heilaga þrenning (Google Computing Services, AWS, Blár) af skýjaþjónustuveitum gerir okkur kleift að byggja forrit með hnútur.js.


Varðandi node.js-vistkerfið er líklega allir kunnugir bókasafninu express.js – einföldu og beinu tóli sem gerir þér kleift að skilgreina slóðir og fæða þær viðeigandi gögnum sem hafa verið rétt unnin á JavaScript-hliðinni. Enn fremur hefur mynstrið sem notað er í HTTP-beiðnum í express.js orðið eitt vinsælasta í öllu vistkerfinu og er eins konar fyrirmynd fyrir ýmis önnur bókasöfn sem nýta til dæmis serverless-arkitektúr.
Ályktun – JS er forritunarmál sem er nægilega þroskað til að sjá um allt og byggja bæði frontend og backend. Auk þess er það tiltölulega nýtt forritunarmál sem finnur auðveldlega leið sína inn í nútíma forritagerðararkitektúr. Það er frábært að forritari sem þekkir eitt forritunarmál geti náð tökum á báðum hliðum (full stack) forrits.
Jæja, vélin sem oftast er notuð til að keyrsa JS-kóða er v8, knúin af C++-forritunarmálinu. Þessi vél, sem Google þróaði, er hönnuð til að keyra forrit á vefvettvangi. Áhugavert er að þessi vél túlkar ekki JS-kóðann. Í staðinn framkvæmir hún það sem kallast “JIT” – “just in time compilation”. Þökk sé þessu þurfum við ekki að túlka JS-kóðann línu fyrir línu, heldur þýðum við hann og keyrum hann. Það er enn hraðara og gefur okkur virkilega góða frammistöðu.
Er JS nægilega gott hvað varðar afköst? Já, það er það. Svo lengi sem reikniritin þín eru nægilega góð er ekkert mál að nota JS á þjónahliðinni. Annað er að halda kóðanum þínum eins ósamstilltum og unnt er. Með þessum vinnubrögðum getur kóðinn þinn tekist á við samhliða beiðnir án vandamála. Þú þarft ekki að hafa áhyggjur af tækniskiptum vegna afkasta – sérstaklega þegar arkitektúr forritsins er skalanlegur.
Ég hef þegar rætt frammistöðu og viðmiðunarkannanir ítarlega í þessari grein.
Jæja, hér eru tugir af skoðunum um að JavaScript-málið hegði sér skrýtið í sumum tilvikum og að fást við það getur sprengt hausinn á þér á þróunarferlinu. Ég get ekki verið sammála 🙂 Rétt eins og hvaða annað forritunarmál sem er, hefur það nokkur mynstur og hegðunarmynstur sem eru ekki fáguð, en með skilningi á því hvernig þau virka og hvað markmið þeirra eru, er þróun forrita með JavaScript alls ekki óþægileg.
Sérstaklega orðið “asynchrónt” rétt áður en JavaScript kemur fær suma forritara til að skjálfa. Það er erfitt að skilja þegar maður hefur enga reynslu af því. Hins vegar er þetta hluti af JavaScript sem gerir okkur kleift að byggja upp nútímalegar lausnir á auðveldan hátt. Skoðum vefjasambönd (WebSockets): þar sem þau eru atburðadrifin – hvert tengt eintak, notandinn og netþjónninn, getur sent frá sér og tekið á móti atburðum samhliða. Ef kóðinn sem knýr þessa forrit er nægilega ósamstilltur og hindrar ekki aðalþráðinn, getum við auðveldlega afgreitt þúsundir beiðna á skömmum tíma.
Samanberum JS og PHP Í samhengi vefjaslóða. PHP er samstillt forritunarmál, svo að takast á við vefjaslóðaviðfangsefni veldur miklum höfuðverk. Við sjáum að PHP sækir mynstur úr JS til að byggja upp gagnvirkar bakendaumsóknir sem geta nýtt nútímalegar tæknir, svo sem webrtc eða vefjaslóðir.
Þegar allir málsgreinar eru settar saman getum við lýst nokkrum staðreyndum:
JavaScript er forritunarmál sem hægt er að nota til að búa til alls konar forrit – frá vef- og farsímaforritum til skjáborðsforrita;
Forrit sem skrifuð eru í JS geta deilt ýmsum kóðabrotum sín á milli, svo sem þeim sem sjá um gagnaformgerð eða gerðir í Typescript;
Þökk sé vexti vefsins er frammistaða JavaScript nægilega góð til að velja JavaScript bæði fyrir framsíðu- og bakendaþróun forrita.;
Þökk sé óvenjulegri hönnun sinni getur JavaScript stutt nútíma forritainnviði, svo sem WebSockets og WebRTC;
Með því að ráða rétt hæfan forritara geturðu nýtt möguleika þess á öllum tiltækum framendaviðmótum sem knýja þetta forritunarmál;
JS er forritunarmál sem hefur verið að klifra upp vinsældalistana í nokkur ár núna, og ekkert bendir til þess að það muni breytast á nokkurn hátt.
Til að gefa mína, já, hlutdrægu skoðun – að nýta valkost JavaScript um að endurnýta sama kóðann á öllum tiltækum sviðum mun vissulega flýta fyrir forritunarþróun og draga úr fjölda forritara sem þurfa að viðhalda bakenda forrita skrifaðra í öðrum tækni. Til staðfestingar skulum við rifja upp þá staðreynd að gríðarlegur fjöldi svokallaðra upplýsingatæknirisa fylgir þessu mynstri og deilir töluverðum hluta kóðagrunns síns á milli vettvanga. Þrátt fyrir ólíkar skoðanir á þessu forritunarmáli verður þú að taka tillit til þess að tölfræði um notkun og ánægju af notkun JS vaxa frá ári til árs, og forritarar þess geta auðveldlega tengst full-stack-stefnunni.
Lesa meira:
Af hverju þú ættir (líklega) að nota TypeScript
Hvernig á ekki að drepa verkefni með slæmum forritunarvenjum?