Programmering

6 ting du bør vite om Node.js

JavaScript spiser verden, med nye verktøy og forbedringer som kommer i et utrolig tempo. Med Node.js, et open source runtime system oppfunnet i 2009 av Ryan Dahl, har rekkevidden utvidet seg til serversiden.

Node.js har blitt veldig populær, med kodere overalt som bruker den til å lage API-er og bygge en ny matrise av interoperabilitet over Internett. Joyent har vært hovedsponsor for Node.js fra begynnelsen. I denne ukens New Tech Forum skisserer Ben Wen, visepresident for produktmarkedsføring i Joyent, seks ting du bør vite om fenomenet som ryster opp utviklingen av backend. - Paul Venezia

Node.js er et kjøretidssystem for å lage (hovedsakelig) applikasjoner på serversiden. Det er best kjent som et populært middel for JavaScript-kodere å bygge sanntids web-API-er.

Men Node.js er ikke et JavaScript-rammeverk; faktisk, flere forfattere har skrevet gode rammer spesielt for Node.js, inkludert Express.js, Restify.js og Hapi.js. Så hva er egentlig dette fenomenet som finner veien til webapplikasjoner, operativsystemomslag, mikrokontrollere og roboter?

I sin kjerne er Node.js en strippet ned, svært tilpassbar servermotor - en prototjener, hvis du vil - fordi den ikke gjør noe før du setter den opp. Denne prototjeneren behandles i en løkke, klar til å godta og svare på forespørsler. Enhver av disse forespørslene selv kan initiere andre forespørsler til en annen del av systemet, for eksempel å lese en fil fra disken eller å sende et signal for å spinne en motor på en robotarm. Den sløyfen, kjent som hendelsessløyfen, er "kjøretid" -delen.

Node.js leveres med arbeidshestekontakter og biblioteker som de som gjelder HTTP, SSL, komprimering, filsystemtilgang og rå TCP og UDP. JavaScript, som allerede er innstilt for en nettlesers hendelsessløyfemiljø for GUI og nettverkshendelser, er et flott språk for å koble til disse kontaktene. Du kan knipse kontakter på hendelsessløyfen nesten like enkelt som du kan knipse Lego-deler sammen. Ved å gjøre det kan du opprette en enkel, dynamisk webserver på bare noen få linjer med JavaScript.

Kort sagt, Node.js er et kjøretidssystem som gjør det enkelt å bygge et nettverk eller andre hendelsesdrevne applikasjonsservere. Her er de seks tingene du trenger å vite om det.

1. JSON har vunnet

JSON (JavaScript Object Notation) er et praktisk, sammensatt, veldig populært datautvekslingsformat. JSON har gjort det mulig for JavaScript-utviklere å raskt konstruere APIer og fremme interoperabilitet i stor skala - et viktig mål for Node.js-kodere. JSONs sterke enkelhet kan uttrykkes i bare fem jernbaneparseringsdiagrammer, spesielt uten den selvbevisste forberedelsen av XML og dens planlagte venner (SOAP, XSD, WS- *, RELAX-NG og deres endeløse komitemøter).

JSON og JavaScript har forsterket hverandres betydning. Tilbake i de tidlige dagene på nettet måtte dynamiske data i nettleseren manipuleres, filtreres og drives av det eneste rimelig forståelige språket som ikke er tilgjengelig: JavaScript. Uavhengig av det opprinnelige nettverkspresentative formatet, måtte data samles til et JavaScript-objekt. Avhengigheten av JSON for generell databeskrivelse ga opphav til dokumentorienterte NoSQL-databaser som MongoDB og CouchDB. Det hele er JSON hele tiden i dag.

2. JavaScript er overalt

JavaScript er et quirky, objektorientert, C-lignende språk. Det er det eneste valget for å utvikle applikasjoner i nettleseren, med et nytt rammeverk introdusert hver uke for å befordre utviklere. Og med Node.js har JavaScript gått over til serveren. Konkurrerende implementeringsteam har drevet JavaScript-tolker fremover, slik at Googles V8-motor er respektabelt rask - rask nok til å ligge i kjernen av Node.js.

JavaScript har også den interne muligheten til å håndtere hendelsessløyfmekanismen på en grei måte. Andre språk har denne muligheten, som brukes av sine egne begivenhetssystemer. Python har Twisted og Ruby har EventMachine. Men på grunn av historien blir begge disse hendelsessystemene fraktet med relativt enkle måter å gjøre en bestemt type ytelsesfeil, mens JavaScript forblir relativt fritt for denne faren.

JavaScript kjører også i mange operativsystemmiljøer, etter å ha historisk hatt å støtte dem i nettleseren. Dette, sammen med libuv-biblioteket for å bidra til å abstrakte noen av operativsystemforskjellene, betyr at Node.js har et bredt fotavtrykk.

Men den største kraften for JavaScript-migrering til serversiden er menneskelig. Programmører må gjøre mindre mental kontekstbytte mellom en nettleser og serveren. Det er til og med anstrengelser for å forene miljøene mellom klient og server, slik at koden kan kjøre like bra på begge steder, noe som ytterligere forenkler modellen og fører til økt produktivitet.

3. Deling oppmuntres

Etosene til Node.js-fellesskapet er "del gledelig." Det er skremmende enkelt å dele pakker med bibliotekode - teknisk, kulturelt, prosessuelt og lovlig. Node Package Manager er inkludert i Node.js og har vokst til et lager med nesten 50000 pakker, noe som gjør det sannsynlig at en annen utvikler allerede har pakket en løsning på problemet ditt, eller til og med noen mindre vanlige.

Node.js 'navneplassfilosofi er egentlig fravær av en, slik at enhver forfatter kan publisere under et ubrukt modulnavn i det delte offentlige arkivet. Deling av kode under MIT open source-lisens anbefales på det sterkeste i samfunnet, noe som også gjør kryssbestøvning av koden relativt bekymringsfri (og advokatfri) fra et immaterielt perspektiv. Til slutt er samfunnet sterkt engasjert i å binde interessante C-biblioteker som datamaskinsyn (OpenCV) og Tesseract open source optisk tegnbibliotek. Sistnevnte gjør for eksempel mulige helgeprosjekter som Imdex som behandler bilder fra nettet slik at de automatisk kan søkes etter skriftlig innhold.

4. Node Package Manager fungerer bredt

Når vi snakker om å administrere bibliotekavhengigheter, fortjener Node Package Manager å bli kalt ut. Node Package Manager er roten til nesten alle distribusjonssystemer for Node.js og ligger til grunn for de mange PaaS (platform-as-a-service) -leverandørene for Node.js, noe som faktisk gjør det noe enkelt å flytte mindre applikasjoner mellom leverandører. Den enkle, pålitelige pakkehåndteringen har gjort det mulig for Node-økosystemet å vokse ekstremt godt i nyere tid, til det punktet at den underliggende offentlige tjenesten nå må skaleres til neste nivå.

5. 'Batterier ikke inkludert' minimalisme

Node.js-applikasjoner og Node.js Core er delt inn i små moduler som er sammensatt og delt. Hver pakke og hvert verktøy kan være tett og utformet for å være håndterbart. Disse kan da stekes sammen - ofte uten for mye unødvendig elting. Den lave barrieren, bekymringsløse naturen ved å lage en modul, oppmuntrer også til eksperimentering i samfunnet, og det er ganske mye overlapping og eksperimentering i pakkepopulasjonen. Når de kjøres godt, håndterer hver pakke vanligvis en oppgave (f.eks. Node-optimist.js: 'lettvekts [kommandolinje] alternativ parsing').

6. Instrumentering

Til slutt er Node.js godt instrumentert for produksjonsbruk. Hva det betyr er at det er verktøyene som hjelper deg med å få en applikasjon til full produksjonsberedskap og ytelse. Som med hvilken som helst modningsteknologi, er det områder der mer dokumentasjon, verktøy og beste praksis kan være nyttig. Men når Node.js går mot sin neste store utgivelse, er den på ganske solid fot.

Node i sammenheng

Hvis du kjenner JavaScript, er Node.js en skånsom rampe til asynkron databehandling for Internett. Og det skjer slik at Node.js er egnet til å løse nettproblemer nøyaktig av denne typen: integrasjons- og limutfordringer, med kaskadeanrop til API etter API.

Hvor fungerer Node.js ikke så bra? Det er ikke helt hensiktsmessig på steder der en beregning med en tråd vil være hold-up, som noen slags påfølgende tilnærming eller klassifisering. I slike tilfeller er det mer effektivt for Node.js å ​​slippe forespørselen til et uavhengig bibliotek som er dedikert til oppgaven, der den kan distribueres over hundrevis eller tusenvis av prosessorer.

Node.js modnes raskt og blir distribuert i mer og mer oppdragskritiske og inntektskritiske systemer, som e-handel Black Friday-infrastrukturer. Det er enkelt å komme i gang med Node.js, og likevel er Node.js dyp nok til å håndtere moderne nettkompleksiteter. Hvis du bygger ditt neste generasjons nettsted - spesielt API-er for mobil- og webintegrasjon - eller hvis du lager noe nytt som er avhengig av selve underliggende tjenester, er Node.js et kjøretidssystem som veldig godt kan fungere for deg.

New Tech Forum gir et middel til å utforske og diskutere nye bedriftsteknologier i enestående dybde og bredde. Valget er subjektivt, basert på vårt valg av teknologiene vi mener er viktige og av størst interesse for leserne. godtar ikke markedsføringssikkerhet for publisering og forbeholder seg retten til å redigere alt bidratt innhold. Send alle henvendelser til [email protected].

Denne artikkelen, "6 ting du bør vite om Node.js", ble opprinnelig publisert på .com. For de siste nyhetene om forretningsteknologi, følg .com på Twitter.

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