Programmēšana

6 lietas, kas jums jāzina par Node.js

JavaScript apēd pasauli, un jauni rīki un uzlabojumi tiek sasniegti satriecošā tempā. Izmantojot Node.js, atvērtā koda izpildlaika sistēmu, kuru 2009. gadā izgudroja Raiens Dāls, šī sasniedzamība ir paplašināta līdz servera pusei.

Node.js ir kļuvis ārkārtīgi populārs, un kodētāji visur to izmanto, lai izveidotu API un izveidotu jaunu savietojamības matricu internetā. Joyent ir bijis Node.js galvenais sponsors jau no paša sākuma. Šīs nedēļas jauno tehnoloģiju forumā Joyent produktu mārketinga viceprezidents Bens Vens izklāsta sešas lietas, kas jums jāzina par fenomenu, kas satricina aizmugures attīstību. - Pols Venēcija

Node.js ir izpildlaika sistēma (galvenokārt) servera puses lietojumprogrammu izveidei. Tas ir vislabāk pazīstams kā populārs līdzeklis JavaScript kodētājiem reāllaika Web API izveidošanai.

Bet Node.js nav JavaScript ietvars; tiešām, vairāki autori ir uzrakstījuši izcilus ietvarus tieši Node.js, tostarp Express.js, Restify.js un Hapi.js. Kas tad īsti ir šī parādība, kas nonāk tīmekļa lietojumprogrammās, operētājsistēmu ietinējos, mikrokontrolleros un robotos?

Būtībā Node.js ir noņemts, ļoti pielāgojams serveru dzinējs - proto-serveris, ja vēlaties - jo tas no kastes neko nedara, kamēr neesat to iestatījis. Šis proto-serveris apstrādā ciklā, gatavs pieņemt un atbildēt uz pieprasījumiem. Jebkurš no šiem pieprasījumiem pats var ierosināt citus pieprasījumus kādai citai sistēmas daļai, piemēram, nolasīt failu no diska vai nosūtīt signālu, lai grieztu motoru robota rokā. Šī cilpa, kas pazīstama kā notikumu cilpa, ir "izpildlaika" daļa.

Node.js tiek piegādāts ar darba zirgu savienotājiem un bibliotēkām, piemēram, tām, kas attiecas uz HTTP, SSL, saspiešanu, piekļuvi failu sistēmai un neapstrādātu TCP un UDP. JavaScript, kas jau ir pielāgots tīmekļa pārlūka notikumu cikla videi GUI un tīkla notikumiem, ir lieliska valoda šo savienotāju vadu pievienošanai. Savienotājus uz notikuma cilpas var piestiprināt gandrīz tikpat viegli, kā kopā salabot Lego detaļas. Tas ļauj izveidot vienkāršu, dinamisku tīmekļa serveri tikai dažās JavaScript rindiņās.

Īsāk sakot, Node.js ir izpildlaika sistēma, kas atvieglo tīkla vai citu uz notikumiem balstītu lietojumprogrammu serveru izveidi. Šeit ir sešas lietas, kas jums jāzina par to.

1. JSON ir uzvarējis

JSON (JavaScript Object Notation) ir praktisks, salikts, ļoti populārs datu apmaiņas formāts. JSON ļāva JavaScript izstrādātājiem ātri izveidot API un veicināt savietojamību plašā mērogā - tas ir galvenais Node.js kodētāju mērķis. JSON izteiktā vienkāršība var izpausties tikai piecās dzelzceļa parsēšanas diagrammās, it īpaši bez XML un tā kavējošo draugu pašapzināšanās (SOAP, XSD, WS- *, RELAX-NG un viņu nebeidzamās komiteju sanāksmes).

JSON un JavaScript ir pastiprinājuši viens otra nozīmi. Tīmekļa sākumposmā dinamiskos datus pārlūkprogrammā nācās apstrādāt, filtrēt un darbināt ar vienīgo pieejamo saprātīgi pieejamo valodu, kas nav spraudnis: JavaScript. Neatkarīgi no tā sākotnējā tīklā prezentējamā formāta, dati bija jāsakārto JavaScript objektā. Atkarība no JSON par vispārējas nozīmes datu aprakstu radīja uz dokumentiem orientētas NoSQL datu bāzes, piemēram, MongoDB un CouchDB. Tas viss šodien ir JSON.

2. JavaScript ir visur

JavaScript ir dīvaina, objektorientēta, C līdzīga valoda. Tā ir vienīgā izvēle lietojumprogrammu izstrādei pārlūkprogrammā, katru nedēļu ieviešot jaunu ietvaru izstrādātājiem. Izmantojot Node.js, JavaScript ir izplatījies serverī. Konkurējošās ieviešanas komandas ir virzījušas JavaScript tulkus uz priekšu, lai Google V8 dzinējs būtu pietiekami ātrs - pietiekami ātrs, lai atrastos Node.js kodolā.

JavaScript ir arī iekšēja spēja rīkoties ar notikumu cilpas mehānismu vienkāršā veidā. Šī spēja ir citām valodām, kuras izmanto viņu pašu sistēmas. Python ir Twisted un Ruby ir EventMachine. Bet vēstures dēļ abas šīs notikumu cikla sistēmas tiek piegādātas ar salīdzinoši vienkāršiem veidiem, kā izdarīt konkrētu veiktspējas kļūdu, savukārt JavaScript joprojām nav samērā brīvs.

JavaScript darbojas arī daudzās OS vidēs, jo vēsturiski tās bija jāatbalsta pārlūkprogrammā. Tas kopā ar libuv bibliotēku, lai palīdzētu novērst dažas operētājsistēmas atšķirības, nozīmē, ka Node.js ir plaša nospieduma zīme.

Bet vislielākais JavaScript migrācijas spēks uz servera pusi ir cilvēks. Programmētājiem ir mazāk jāpārslēdzas no konteksta starp tīmekļa pārlūkprogrammu un serveri. Pat tiek mēģināts vienot vidi starp klientu un serveri, lai kods darbotos vienādi labi jebkurā vietā, vēl vairāk vienkāršojot modeli un palielinot produktivitāti.

3. Ir ieteicams dalīties

Node.js kopienas ētika ir "kopīgojiet priecīgi". Biedējoši viegli ir koplietot bibliotēkas koda pakotnes - tehniski, kulturāli, procesuāli un juridiski. Mezglu pakotņu pārvaldnieks ir iekļauts Node.js un ir kļuvis par gandrīz 50 000 paku krātuvi, tāpēc ir iespējams, ka cits izstrādātājs jau ir iesaiņojis jūsu problēmas risinājumu vai pat dažus mazāk izplatītus.

Node.js nosaukumvietas filozofija būtībā ir tādas trūkums, ļaujot jebkuram autoram koplietotajā publiskajā repozitorijā publicēt ar neizmantotu moduļa nosaukumu. Koda koplietošana saskaņā ar MIT atvērtā pirmkoda licenci ir ļoti ieteicama sabiedrībā, kas arī padara koda savstarpēju apputeksnēšanu no intelektuālā īpašuma viedokļa salīdzinoši bezrūpīgu (un bez advokātu). Visbeidzot, kopiena ir ļoti iesaistījusies tādu interesantu C bibliotēku kā datorvīzija (OpenCV) un Tesseract atvērtā pirmkoda optisko rakstzīmju bibliotēkas iesiešanā. Piemēram, pēdējais padara iespējamus nedēļas nogales projektus, piemēram, Imdex, kuri apstrādā attēlus no tīmekļa, lai tos varētu automātiski meklēt rakstiskā saturā.

4. Node Package Manager darbojas plaši

Runājot par bibliotēkas atkarību pārvaldīšanu, mezglu pakotņu pārvaldnieks ir pelnījis izsaukšanu. Node Package Manager ir gandrīz visu Node.js izvietošanas sistēmu sakne, un tas ir daudzu Node.js PaaS (platform-as-a-service) nodrošinātāju pamatā, faktiski nedaudz atvieglojot mazāku lietojumprogrammu pārvietošanu starp pakalpojumu sniedzējiem. Tās vienkāršā, uzticamā pakotņu pārvaldība ir ļāvusi Node ekosistēmai augt ļoti labi jaunākajā vēsturē, līdz brīdim, kad pakārtotajam sabiedriskajam pakalpojumam tagad ir jāpāriet uz nākamo līmeni.

5. “Baterijas nav iekļautas” minimālisms

Node.js lietojumprogrammas un pats Node.js Core ir sadalīts mazos moduļos, kas tiek veidoti un koplietoti. Katru iepakojumu un rīku var cieši aptvert un izveidot, lai tos būtu iespējams pārvaldīt. Pēc tam tos var cept kopā - bieži vien bez liekas mīcīšanas. Moduļa izveide ar zemu barjeru un bezrūpību arī mudina eksperimentēt sabiedrībā, un paketes populācijā ir diezgan daudz pārklāšanās un eksperimentu. Labi izpildot, katra pakete parasti apstrādā vienu uzdevumu (piemēram, node-optimist.js: 'viegla [komandrindas] opciju parsēšana').

6. Instrumentācija

Visbeidzot, Node.js ir labi aprīkots ar produkcijas lietošanu. Tas nozīmē, ka ir rīki, kas palīdz pilnveidot lietojumprogrammu ražošanas gatavībā un veiktspējā. Tāpat kā jebkurai nogatavināšanas tehnoloģijai, dažās jomās varētu būt noderīga vairāk dokumentu, rīku un paraugprakses. Bet, kad Node.js dodas uz nākamo lielāko izlaidumu, tas ir diezgan stingri.

Mezgls kontekstā

Ja jūs zināt JavaScript, Node.js ir maigs asinhronās tīmekļa skaitļošanas uzbrauktuve. Un tā notiek, ka Node.js ir piemērots tieši šāda veida tīmekļa problēmu risināšanai: integrācijas un līmeņu izaicinājumi, ar kaskādveida izsaukumiem uz API pēc API.

Kur Node.js nedarbojas tik labi? Tas nav pilnīgi piemērots vietās, kur aizturēšana būs viena pavediena aprēķins, piemēram, daži secīgi tuvinājumi vai klasifikācija. Šādos gadījumos Node.js ir efektīvāk nomest pieprasījumu uz neatkarīgu bibliotēku, kas veltīta uzdevumam, kur to var sadalīt simtiem vai tūkstošiem procesoru.

Node.js ātri nobriest un tiek izvietots arvien vairāk misijai un ieņēmumiem kritiskām sistēmām, piemēram, e-komercijas melnās piektdienas infrastruktūrām. Sākt darbu ar Node.js ir viegli, un tomēr Node.js ir pietiekami dziļš, lai tiktu galā ar modernām tīmekļa sarežģītībām. Ja veidojat savas nākamās paaudzes vietni - it īpaši mobilo ierīču un tīmekļa integrācijas API - vai ja veidojat kaut ko jaunu, kas ir atkarīgs no pašiem pamatā esošajiem pakalpojumiem, Node.js ir izpildlaika sistēma, kas ļoti labi varētu darboties jums.

Jauno tehnoloģiju forums nodrošina līdzekļus, lai bezprecedenta dziļumā un plašumā izpētītu un apspriestu topošās uzņēmuma tehnoloģijas. Izvēle ir subjektīva, balstoties uz mūsu izvēlētajām tehnoloģijām, kuras, mūsuprāt, ir svarīgas un interesē lasītājus. nepieņem mārketinga nodrošinājumu publicēšanai un patur tiesības rediģēt visu ieguldīto saturu. Nosūtiet visus jautājumus uz [email protected].

Šis raksts "6 lietas, kas jums jāzina par Node.js" sākotnēji tika publicēts vietnē .com. Jaunākās biznesa tehnoloģiju ziņas sekojiet .com vietnē Twitter.

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