Programavimas

6 dalykai, kuriuos turėtumėte žinoti apie „Node.js“

„JavaScript“ valgo pasaulį, o nauji įrankiai ir patobulinimai pasiekiami nepaprastu tempu. Naudojant „Node.js“, atvirojo kodo vykdymo laiko sistemą, kurią 2009 m. Išrado Ryanas Dahlas, pasiekiamumas išplito ir į serverio pusę.

„Node.js“ tapo nepaprastai populiarus, koduotojai visur jį naudojo kurdami API ir kurdami naują interneto sąveikos matricą. „Joyent“ nuo pat pradžių buvo pagrindinis „Node.js“ rėmėjas. Šios savaitės Naujųjų technologijų forume Ben Wenas, „Joyent“ produktų rinkodaros viceprezidentas, apibūdina šešis dalykus, kuriuos turėtumėte žinoti apie fenomeną, sukrečiantį backend plėtrą. - Paulius Venezia

„Node.js“ yra vykdymo laiko sistema, skirta kurti (daugiausia) serverio programoms. Tai geriausiai žinoma kaip populiari „JavaScript“ koduotojų priemonė realiuoju laiku kurti interneto API.

Bet „Node.js“ nėra „JavaScript“ sistema; iš tiesų, keli autoriai yra parašę puikias sistemas būtent „Node.js“, įskaitant „Express.js“, „Restify.js“ ir „Hapi.js“. Taigi, koks yra šis reiškinys, patekęs į žiniatinklio programas, operacinių sistemų paketus, mikrovaldiklius ir robotus?

Iš esmės „Node.js“ yra nuimtas, labai pritaikomas serverio variklis - proto-serveris, jei norite, nes iš dėžutės jis nieko nedaro, kol jo nenustatėte. Šis pagrindinis serveris apdorojamas kilpa, pasirengęs priimti ir atsakyti į užklausas. Bet kuri iš tų užklausų pati gali pateikti kitas užklausas kitai sistemos daliai, pavyzdžiui, nuskaityti failą iš disko arba siųsti signalą, kad suktų variklį ant roboto rankos. Ta kilpa, vadinama įvykių kilpa, yra „vykdymo laiko“ dalis.

„Node.js“ tiekiamos su darbinio žirgo jungtimis ir bibliotekomis, pavyzdžiui, susijusiomis su HTTP, SSL, glaudinimu, prieiga prie failų sistemos ir neapdorotu TCP ir UDP. „JavaScript“, jau pritaikyta žiniatinklio naršyklės įvykių ciklo aplinkai, skirta GUI ir tinklo įvykiams, yra puiki šių jungčių laidų kalba. Jungtis prie įvykio kilpos galite užfiksuoti beveik taip pat lengvai, kaip ir „Lego“ dalis. Tai atlikę galite sukurti paprastą, dinamišką interneto serverį tik keliose „JavaScript“ eilutėse.

Trumpai tariant, „Node.js“ yra vykdymo laiko sistema, leidžianti lengvai sukurti tinklą ar kitus įvykių valdomus programų serverius. Čia yra šeši dalykai, kuriuos turite žinoti apie tai.

1. JSON laimėjo

JSON („JavaScript Object Notation“) yra praktiškas, sudėtingas, be galo populiarus duomenų mainų formatas. JSON leido „JavaScript“ kūrėjams greitai kurti API ir skatinti sąveiką masto mastu - tai pagrindinis „Node.js“ koduotojų tikslas. Ryškų JSON paprastumą galima išreikšti tik penkiomis geležinkelio analizės schemomis, ypač be sąmoningo XML ir jo klastojančių draugų (SOAP, XSD, WS- *, RELAX-NG ir jų nesibaigiančių komitetų posėdžių).

JSON ir „JavaScript“ sustiprino vienas kito svarbą. Dar ankstyvaisiais žiniatinklio laikais dinaminius naršyklės duomenis reikėjo tvarkyti, filtruoti ir valdyti vienintele prieinama, suprantama, neprisijungusia kalba: „JavaScript“. Nepaisant pirminio tinkle pateikiamo formato, duomenis reikėjo sutvarkyti į „JavaScript“ objektą. Priklausomybė nuo JSON dėl bendro tikslo duomenų aprašymo sukėlė į dokumentą orientuotas „NoSQL“ duomenų bazes, tokias kaip „MongoDB“ ir „CouchDB“. Šiandien visa tai yra JSON.

2. „JavaScript“ yra visur

„JavaScript“ yra keista, į objektus orientuota, į C panaši kalba. Tai vienintelis pasirinkimas kuriant programas naršyklėje. Kiekvieną savaitę naujoji sistema pristatoma kūrėjams. Ir naudojant „Node.js“, „JavaScript“ persimetė į serverį. Konkuruojančios diegimo komandos paskatino „JavaScript“ vertėjus į priekį, todėl „Google“ V8 variklis yra pakankamai greitas - pakankamai greitas, kad galėtų gyventi „Node.js“ šerdyje.

„JavaScript“ taip pat turi vidinę galimybę valdyti įvykių ciklo mechanizmą nesudėtingai. Kitos kalbos turi šią galimybę, kurią naudoja jų pačių įvykių sistemos. „Python“ turi „Twisted“, o „Ruby“ - „EventMachine“. Tačiau dėl istorijos abiejose tose įvykių ciklo sistemose yra gana lengvų būdų padaryti tam tikrą našumo klaidą, o „JavaScript“ išlieka palyginti be šio pavojaus.

„JavaScript“ taip pat veikia daugelyje OS aplinkų, istoriškai turėjus jas palaikyti naršyklėje. Tai kartu su „libuv“ biblioteka, padedančia pašalinti kai kuriuos operacinės sistemos skirtumus, reiškia, kad „Node.js“ turi platų pėdsaką.

Tačiau didžiausia „JavaScript“ migracijos į serverio pusę jėga yra žmogiška. Programuotojai turi mažiau persijungti kontekstą tarp interneto naršyklės ir serverio. Net stengiamasi suvienodinti aplinką tarp kliento ir serverio, kad kodas galėtų vienodai gerai veikti bet kurioje vietoje, dar labiau supaprastindamas modelį ir padidindamas produktyvumą.

3. Skatinama dalintis

„Node.js“ bendruomenės etosas yra „džiaugsmingai dalinkis“. Bauginančiai lengva dalytis bibliotekos kodo paketais - techniškai, kultūriškai, procedūriškai ir teisiškai. „Node“ paketų tvarkyklė yra įtraukta į „Node.js“ ir išaugo iki beveik 50 000 paketų talpyklos, todėl tikėtina, kad kitas kūrėjas jau yra sukūręs jūsų problemos sprendimą ar net keletą rečiau naudojamų.

„Node.js“ vardų srities filosofija iš esmės yra jos nebuvimas, leidžiantis bet kuriam autoriui paskelbti nenaudojamu modulio pavadinimu bendroje viešojoje saugykloje. Bendrinti kodą pagal MIT atvirojo kodo licenciją yra labai rekomenduojama, todėl intelektinės nuosavybės požiūriu kryžminis programos apdulkinimas taip pat daro gana nerimą (ir be teisininkų). Galiausiai bendruomenė labai užsiima įrišusi įdomias C bibliotekas, tokias kaip kompiuterinė vizija (OpenCV) ir „Tesseract“ atvirojo kodo optinių simbolių biblioteka. Pavyzdžiui, pastarieji leidžia įgyvendinti tokius savaitgalio projektus kaip „Imdex“, kurie apdoroja vaizdus iš interneto, kad jų būtų galima automatiškai ieškoti parašyto turinio.

4. „Node Package Manager“ veikia plačiai

Kalbant apie bibliotekos priklausomybių valdymą, Node Package Manager nusipelno būti iškviestas. „Node Package Manager“ yra beveik visų „Node.js“ diegimo sistemų šaknis ir yra daugelio „Node.js“ „PaaS“ (platformos kaip paslaugos) tiekėjų pagrindas, iš tikrųjų šiek tiek lengva perkelti mažesnes programas tarp paslaugų teikėjų. Paprastas ir patikimas paketų valdymas leido „Node“ ekosistemai itin gerai augti per pastarąją istoriją, kad pagrindinę viešąją paslaugą dabar reikia išplėsti į kitą lygį.

5. „Baterijos neįeina“ - minimalizmas

„Node.js“ programos ir pati „Node.js Core“ yra suskirstyta į mažus sudaromus ir bendrinamus modulius. Kiekviena pakuotė ir įrankis gali būti griežtai aprėpti ir sukurti taip, kad būtų lengvai valdomi. Tada juos galima kepti kartu - dažnai be per didelio nereikalingo minkymo. Mažas barjeras, nerūpestingas modulio kūrimo pobūdis taip pat skatina eksperimentus bendruomenėje, o paketų populiacijoje yra nemažai sutapimų ir eksperimentų. Gerai vykdant, kiekvienas paketas paprastai atlieka vieną užduotį (pvz., Node-optimist.js: „lengvas [komandinės eilutės] parinkčių analizavimas“).

6. Instrumentavimas

Galiausiai, „Node.js“ yra gerai pritaikytas gamybai. Tai reiškia, kad yra įrankių, padedančių užtikrinti visišką programos parengtį ir našumą. Kaip ir naudojant bet kurią brandinimo technologiją, yra sričių, kuriose gali būti naudinga daugiau dokumentų, įrankių ir geriausios praktikos. Tačiau kai „Node.js“ eina link kito svarbiausio leidimo, jis yra pakankamai tvirtai pamatuotas.

Mazgas kontekste

Jei žinote „JavaScript“, „Node.js“ yra švelnus asinchroninio žiniatinklio skaičiavimo būdas. Taip atsitinka, kad „Node.js“ yra tinkamas spręsti būtent tokio tipo žiniatinklio problemas: integravimo ir klijų iššūkius su pakopiniais kvietimais į API po API.

Kur „Node.js“ neveikia taip gerai? Tai nėra visiškai tinkama tose vietose, kur vienos gijos skaičiavimas bus sulaikomas, pavyzdžiui, kai kurie nuoseklūs derinimai ar klasifikacija. Tokiais atvejais „Node.js“ efektyviau atsisakyti užklausos į nepriklausomą biblioteką, skirtą užduočiai, kur ją galima paskirstyti šimtams ar tūkstančiams procesorių.

„Node.js“ greitai bręsta ir yra diegiamas vis daugiau misijai ir pajamoms svarbių sistemų, tokių kaip el. Prekybos juodojo penktadienio infrastruktūros. Pradėti naudotis „Node.js“ lengva, tačiau „Node.js“ yra pakankamai gilus, kad galėtų spręsti šiuolaikinius žiniatinklio sudėtingumus. Jei kuriate savo naujos kartos svetainę, ypač mobiliesiems ir žiniatinklio integravimo API, arba kuriate ką nors naujo, priklausančio nuo pačių pagrindinių paslaugų, „Node.js“ yra vykdymo laiko sistema, kuri gali jums labai pasitarnauti.

Naujųjų technologijų forumas suteikia galimybę tyrinėti ir aptarti besiformuojančios įmonės technologijas beprecedentiame gylyje. Atranka yra subjektyvi, atsižvelgiant į mūsų pasirinktas technologijas, kurios, mūsų manymu, yra svarbios ir labiausiai domina skaitytojus. nepriima rinkodaros užtikrinimo priemonės paskelbimui ir pasilieka teisę redaguoti visą pateiktą turinį. Visus klausimus siųskite adresu [email protected].

Šis straipsnis „6 dalykai, kuriuos turėtumėte žinoti apie„ Node.js ““ iš pradžių buvo paskelbtas .com. Norėdami sužinoti naujausias verslo technologijų naujienas, sekite .com „Twitter“.

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