6 stvari koje biste trebali znati o Node.js

JavaScript jede svijet, a novi alati i poboljšanja stižu vratolomnom brzinom. Uz Node.js, otvoreni izvor vremena izvođenja, koji je 2009. godine izumio Ryan Dahl, taj se doseg proširio i na poslužiteljsku stranu.

Node.js postao je izuzetno popularan, a programeri ga svugdje koriste za stvaranje API-ja i izgradnju nove matrice interoperabilnosti na Internetu. Joyent je glavni sponzor Node.js-a od početka. Na ovotjednom Forumu novih tehnologija Ben Wen, potpredsjednik marketinga proizvoda u tvrtki Joyent, iznosi šest stvari koje biste trebali znati o fenomenu koji potresa razvoj pozadine. - Paul Venezia

Node.js je runtime sustav za stvaranje (uglavnom) aplikacija na strani poslužitelja. Najpoznatiji je kao popularno sredstvo za JavaScript kodere za izradu web API-ja u stvarnom vremenu.

Ali Node.js nije JavaScript okvir; doista, nekoliko je autora napisalo izvrsne okvire posebno za Node.js, uključujući Express.js, Restify.js i Hapi.js. Pa što se točno taj fenomen nalazi u web aplikacijama, omotima operativnih sustava, mikrokontrolerima i robotima?

U svojoj je srži Node.js uklonjeni, vrlo prilagodljivi poslužiteljski motor - proto-poslužitelj, ako hoćete - jer izvan okvira ne radi ništa dok ga ne postavite. Ovaj proto-poslužitelj obrađuje u petlji, spreman prihvatiti i odgovoriti na zahtjeve. Bilo koji od tih zahtjeva može inicirati druge zahtjeve nekom drugom dijelu sustava, poput čitanja datoteke s diska ili slanja signala za okretanje motora na robotskoj ruci. Ta petlja, poznata kao petlja događaja, dio je "vremena izvođenja".

Node.js isporučuje se s konektorima za radne konje i bibliotekama poput onih koji se odnose na HTTP, SSL, kompresiju, pristup datotečnom sustavu i neobrađeni TCP i UDP. JavaScript, već podešen za okruženje petlje događaja web-preglednika za GUI i mrežne događaje, sjajan je jezik za povezivanje ovih konektora. Možete pričvrstiti konektore na petlju događaja gotovo jednako lako kao što možete spojiti Lego dijelove zajedno. To vam omogućuje stvaranje jednostavnog, dinamičnog web poslužitelja u samo nekoliko redaka JavaScript-a.

Ukratko, Node.js je runtime sustav koji olakšava izgradnju mreže ili drugih aplikacijskih poslužitelja vođenih događajima. Evo šest stvari koje o tome trebate znati.

1. JSON je pobijedio

JSON (JavaScript Object Notation) je praktičan, složeni, izuzetno popularan format za razmjenu podataka. JSON je omogućio programerima JavaScript-a da brzo konstruiraju API-je i promiču interoperabilnost u velikoj mjeri - ključni cilj kodera Node.js. Jasna jednostavnost JSON-a može se izraziti u samo pet dijagrama raščlanjivanja željezničkih pruga, osobito bez samosvjesnog promišljanja XML-a i njegovih prijatelja spletkarstava (SOAP, XSD, WS- *, RELAX-NG i njihovi beskrajni sastanci odbora).

JSON i JavaScript međusobno su pojačali važnost. Još u ranim danima Weba, dinamičkim podacima u pregledniku morao je manipulirati, filtrirati ih i upravljati jedini razumljivo razumljiv jezik koji nije dostupan s dodatkom: JavaScript. Bez obzira na izvorni format koji je moguće predstaviti na mreži, podatke je trebalo marširati u JavaScript objekt. Ovisnost o JSON-u za opis podataka opće namjene dovela je do NoSQL baza podataka orijentiranih na dokumente kao što su MongoDB i CouchDB. Danas je to sve vrijeme JSON.

2. JavaScript je posvuda

JavaScript je neobičan, objektno orijentiran jezik poput C-a. To je jedini izbor za razvoj aplikacija u pregledniku, s novim okvirom koji se svaki tjedan uvodi za privlačenje programera. A s Node.js, JavaScript se prelio na poslužitelj. Konkurentski implementacijski timovi pokrenuli su interpretatore JavaScript-a, tako da je Googleov V8 mehanizam respektabilno brz - dovoljno brz da se nalazi u srži Node.js.

JavaScript također ima internu sposobnost da na jednostavan način obrađuje mehanizam petlje događaja. Tu sposobnost imaju i drugi jezici koje koriste njihovi vlastiti sustavi. Python je Twisted, a Ruby EventMachine. Ali zbog povijesti, oba ta sustava petlje događaja isporučuju se s relativno jednostavnim načinima za pogrešku u izvedbi, dok JavaScript ostaje relativno slobodan od ove opasnosti.

JavaScript se također pokreće u mnogim OS okruženjima, jer ih je u prošlosti morao podržavati u pregledniku. To, zajedno s bibliotekom libuv kako bi se apstrahirale neke razlike u operativnom sustavu, znači da Node.js ima široki otisak.

No, najveća sila za migraciju JavaScript-a na poslužiteljsku stranu je čovjek. Programeri moraju raditi manje mentalnog prebacivanja konteksta između web preglednika i poslužitelja. Čak se nastoje unificirati okruženja između klijenta i poslužitelja, tako da se kôd može jednako dobro prikazivati ​​na bilo kojem mjestu, što dodatno pojednostavljuje model i dovodi do povećane produktivnosti.

3. Potiče se dijeljenje

Etos zajednice Node.js je "radosno dijelite". Zastrašujuće je jednostavno dijeliti pakete knjižničnog koda - tehnički, kulturološki, proceduralno i legalno. Upravitelj paketa Node uključen je u Node.js i narastao je do spremišta od gotovo 50 000 paketa, što čini vjerojatnim da je drugi programer već spakirao rješenje vašeg problema ili čak neke rjeđe.

Filozofija prostora imena Node.js u osnovi je odsutnost jednog, dopuštajući bilo kojem autoru da objavljuje pod neiskorištenim imenom modula u zajedničkom javnom spremištu. Dijeljenje koda prema MIT licenci otvorenog koda toplo se preporučuje u zajednici, što također čini unakrsno oprašivanje koda relativno bezbrižnim (i bez pravnika) iz perspektive intelektualnog vlasništva. Konačno, zajednica je jako angažirana u povezivanju zanimljivih C knjižnica poput računalnog vida (OpenCV) i Tesseract biblioteke optičkih znakova otvorenog koda. Potonji, na primjer, omogućuje vikend projekte poput Imdexa koji obrađuju slike s weba kako bi se mogle automatski pretraživati ​​pisani sadržaji.

4. Upravitelj paketa čvorova radi široko

Govoreći o upravljanju ovisnostima o knjižnicama, Node Package Manager zaslužuje da ga se prozove. Upravitelj paketa Node korijen je gotovo svih sustava za implementaciju za Node.js i temelji se na mnogim davateljima usluga PaaS (platforma kao usluga) za Node.js, što zapravo donekle olakšava premještanje manjih aplikacija između davatelja usluga. Njegovo jednostavno, pouzdano upravljanje paketima omogućilo je da ekosustav Node izuzetno dobro raste u novijoj povijesti, do te mjere da temeljna javna usluga sada treba proširiti na sljedeću razinu.

5. Minimalizam 'Baterije nisu uključene'

Node.js aplikacije i sam Node.js Core raščlanjeni su na male module koji se sastavljaju i dijele. Svaki paket i alat mogu se čvrsto obuhvatiti i izraditi da bi se njima moglo upravljati. Tada se mogu zajedno peći - često bez previše nepotrebnog gnječenja. Priroda stvaranja modula s niskim barijerama i bezbrižnošću potiče eksperimentiranje u zajednici, a u populaciji paketa postoji poprilično preklapanja i eksperimentiranja. Kada se dobro izvrši, svaki paket obično obrađuje jedan zadatak (npr. Node-optimist.js: 'raščlanjivanje opcija lagane [naredbene linije]).

6. Instrumentacija

Napokon, Node.js je dobro instrumentiran za produkcijsku upotrebu. To znači da postoje alati koji pomažu u postizanju potpune proizvodne spremnosti i izvedbe aplikacije. Kao i kod svake tehnologije sazrijevanja, postoje područja na kojima bi moglo biti korisno više dokumentacije, alata i najboljih praksi. No kako se Node.js kreće prema sljedećem velikom izdanju, on je na prilično solidnim temeljima.

Čvor u kontekstu

Ako znate JavaScript, Node.js nježna je rampa za asinkrono računanje za Web. I slučajno je Node.js prikladan za rješavanje web problema upravo ove vrste: izazove integracije i ljepljenja, kaskadnim pozivima API-ju nakon API-ja.

Gdje Node.js ne radi tako dobro? Nije potpuno prikladno na mjestima gdje će izračun s jednim navojem biti zadržavanje, poput nekih vrsta uzastopnih aproksimacija ili klasifikacija. U tim je slučajevima učinkovitije da Node.js zahtjev preda u neovisnu knjižnicu koja je posvećena zadatku, gdje se može distribuirati na stotine ili tisuće procesora.

Node.js brzo sazrijeva i implementiran je u sve više i više kritičnih i kritičnih sustava, kao što je eCommerce Black Friday infrastrukture. Lako je započeti s Node.jsom, a opet Node.js je dovoljno dubok da podnosi moderne web složenosti. Ako gradite svoju web stranicu sljedeće generacije - posebno API-je za mobilnu i web integraciju - ili ako stvarate nešto novo što ovisi o samim temeljnim uslugama, Node.js je runtime sustav koji bi vrlo dobro mogao funkcionirati za vas.

New Tech Forum nudi sredstvo za istraživanje i raspravu o novonastaloj tehnologiji poduzeća u neviđenoj dubini i širini. Izbor je subjektivan, zasnovan na našem odabiru tehnologija za koje vjerujemo da su važne i da najviše zanimaju čitatelje. ne prihvaća marketinške kolaterale za objavljivanje i zadržava pravo uređivanja cjelokupnog sadržaja. Pošaljite sve upite na [email protected]

Ovaj članak, "6 stvari koje biste trebali znati o Node.js", izvorno je objavljen na .com. Za najnovije vijesti o poslovnoj tehnologiji, slijedite .com na Twitteru.