6 неща, които трябва да знаете за Node.js

JavaScript яде света, като нови инструменти и подобрения пристигат с невероятно темпо. С Node.js, система за изпълнение с отворен код, измислена през 2009 г. от Райън Дал, този обхват се разшири до сървърната страна.

Node.js стана изключително популярен, като кодери навсякъде го използват за създаване на API и изграждане на нова матрица на оперативна съвместимост в Интернет. Joyent е главният спонсор на Node.js от самото начало. В форума за нови технологии тази седмица Бен Уен, вицепрезидент по продуктовия маркетинг в Joyent, очертава шест неща, които трябва да знаете за феномена, разклащащ развитието на бекенда. - Пол Венеция

Node.js е система за изпълнение за създаване (най-вече) на сървърни приложения. Най-известен е като популярно средство за JavaScript кодери за изграждане на уеб API в реално време.

Но Node.js не е JavaScript рамка; наистина няколко автори са написали отлични рамки специално за Node.js, включително Express.js, Restify.js и Hapi.js. И така, какво точно се намира този феномен в уеб приложения, обвивки на операционни системи, микроконтролери и роботи?

В основата си Node.js е премахнат, силно персонализиран сървърен двигател - прото-сървър, ако щете - тъй като той не прави нищо, докато не го настроите. Този прото-сървър обработва в цикъл, готов да приема и отговаря на заявки. Всяка от тези заявки може сама да инициира други заявки към друга част от системата, като например да прочете файл от диска или да изпрати сигнал за завъртане на мотор на рамото на робота. Този цикъл, известен като цикъл на събития, е частта за "изпълнение".

Node.js се доставя с конектори за работа и библиотеки като тези, свързани с HTTP, SSL, компресия, достъп до файлова система и сурови TCP и UDP. JavaScript, вече настроен за среда на цикъл на събития на уеб браузър за GUI и мрежови събития, е чудесен език за свързване на тези конектори. Можете да щракнете конектори върху контура на събитието почти толкова лесно, колкото можете да щракнете Lego части заедно. Това ви позволява да създадете прост, динамичен уеб сървър само в няколко реда JavaScript.

Накратко, Node.js е система за изпълнение, която улеснява изграждането на мрежа или други сървъри за приложения, управлявани от събития. Ето шестте неща, които трябва да знаете за него.

1. JSON спечели

JSON (JavaScript Object Notation) е практичен, сложен, изключително популярен формат за обмен на данни. JSON даде възможност на разработчиците на JavaScript да конструират бързо API и да насърчават оперативната съвместимост в мащаб - ключова цел за кодерите Node.js. Ярката простота на JSON може да бъде изразена само в пет диаграми за парсиране на железопътни линии, по-специално без самосъзнанието на XML и неговите приятели-интриги (SOAP, XSD, WS- *, RELAX-NG и техните безкрайни заседания на комисии).

JSON и JavaScript са засилили значението на другия. Още в ранните дни на мрежата динамичните данни в браузъра трябваше да бъдат манипулирани, филтрирани и оперирани от единствения разумно разбираем наличен език без приставки: JavaScript. Независимо от оригиналния му мрежов формат, данните трябва да бъдат маршалирани в обект на JavaScript. Зависимостта от JSON за описание на данни с общо предназначение породи базирани на документи NoSQL бази данни като MongoDB и CouchDB. Днес всичко е JSON през цялото време.

2. JavaScript е навсякъде

JavaScript е странен, обектно-ориентиран, C-подобен език. Това е единственият избор за разработване на приложения в браузъра, с нова рамка, въведена всяка седмица за разработчици. А с Node.js JavaScript се прехвърли на сървъра. Конкуриращите се екипи за внедряване накараха интерпретаторите на JavaScript напред, така че двигателят на V8 на Google е уважително бърз - достатъчно бърз, за ​​да се намира в основата на Node.js.

JavaScript също има вътрешната способност да се справя с механизма на цикъла на събитията по пряк начин. Другите езици имат тази възможност, които се използват от техните собствени равномерни системи. Python има Twisted, а Ruby има EventMachine. Но поради историята и двете системи с цикли на събития се предлагат с относително лесни начини да се направи определен вид грешка в производителността, докато JavaScript остава относително свободен от тази опасност.

JavaScript също работи в много среди на OS, като в миналото е трябвало да ги поддържа в браузъра. Това, заедно с библиотеката libuv, която помага да се абстрахират някои от разликите в операционната система, означава, че Node.js има широк отпечатък.

Но най-голямата сила за миграцията на JavaScript към сървърната страна е човекът. Програмистите трябва да правят по-малко умствено превключване на контекста между уеб браузър и сървъра. Полагат се дори усилия за унифициране на обкръжаващата среда между клиента и сървъра, така че кодът да може да работи еднакво добре и на двете места, допълнително опростявайки модела и водещ до повишена производителност.

3. Споделянето се насърчава

Етосът на общността Node.js е „споделяйте с радост“. Страшно лесно е да споделяте пакети с библиотечен код - технически, културно, процедурно и законно. Мениджърът на пакети за възли е включен в Node.js и е нараснал до хранилище от близо 50 000 пакета, което прави вероятно друг разработчик вече да е събрал решение на вашия проблем или дори някои по-рядко срещани.

Философията на пространството от имена на Node.js е по същество липсата на такава, позволяваща на всеки автор да публикува под неизползвано име на модул в споделеното публично хранилище. Споделянето на код по лиценза на MIT с отворен код е силно препоръчително в общността, което също прави кръстосаното опрашване на кода относително безгрижно (и без адвокати) от гледна точка на интелектуалната собственост. И накрая, общността е силно ангажирана с обвързването на интересни C библиотеки като компютърно зрение (OpenCV) и библиотеката с оптични символи на Tesseract с отворен код. Последният например прави възможни проекти през уикенда като Imdex, които обработват изображения от мрежата, за да могат автоматично да се търсят за писмено съдържание.

4. Node Package Manager работи широко

Говорейки за управлението на библиотечните зависимости, Node Package Manager заслужава да бъде извикан. Node Package Manager е коренът на почти всички системи за внедряване за Node.js и стои в основата на многото доставчици на PaaS (платформа като услуга) за Node.js, което всъщност улеснява преместването на по-малки приложения между доставчиците. Неговото просто и надеждно управление на пакетите позволи на екосистемата Node да се развива изключително добре в най-новата история, до степен, че основната обществена услуга сега трябва да се разшири до следващото ниво.

5. „Батериите не са включени“ минимализъм

Приложенията Node.js и самото Node.js Core се разбиват на малки модули, които се съставят и споделят. Всеки пакет и инструмент могат да бъдат обхванати плътно и изработени, за да бъдат управляеми. След това те могат да се пекат заедно - често без твърде много ненужно месене. Нискобариерният, безгрижен характер на създаването на модул също насърчава експериментирането в общността и има доста припокриване и експериментиране в популацията на пакетите. Когато се изпълни добре, всеки пакет обикновено се справя с една задача (например node-optimist.js: 'лек анализ [опция за команден ред]].

6. Инструментариум

И накрая, Node.js е добре инструментиран за производствена употреба. Това означава, че има инструменти, които помагат да се приведе приложението в пълна производствена готовност и производителност. Както при всяка друга технология за узряване, има области, в които повече документация, инструменти и най-добри практики могат да бъдат полезни. Но докато Node.js се насочва към следващото си голямо издание, той е на доста солидна основа.

Възел в контекст

Ако знаете JavaScript, Node.js е нежен ускорител към асинхронни изчисления за мрежата. И така се случва, че Node.js е подходящ за решаване на уеб проблеми точно от този тип: интеграция и лепило предизвикателства, с каскадни извиквания към API след API.

Къде Node.js не работи толкова добре? Не е напълно подходящо на места, където изчислението с една нишка ще бъде задържане, като някои видове последователно приближение или класификация. В тези случаи е по-ефективно Node.js да пусне заявката в независима библиотека, посветена на задачата, където тя може да бъде разпределена между стотици или хиляди процесори.

Node.js узрява бързо и се внедрява във все по-важни за мисията и критични за приходи системи, като например инфраструктурата за черен петък на електронната търговия. Лесно е да започнете с Node.js и въпреки това Node.js е достатъчно дълбок, за да се справи със съвременните уеб сложности. Ако създавате следващото поколение уеб сайт - особено API за мобилна и уеб интеграция - или ако създавате нещо ново, което зависи от самите базови услуги, Node.js е система за изпълнение, която много добре може да работи за вас.

New Tech Forum предоставя средство за изследване и обсъждане на нововъзникващите корпоративни технологии в безпрецедентна дълбочина и широчина. Изборът е субективен, базиран на нашия избор на технологиите, които смятаме, че са важни и представляват най-голям интерес за читателите. не приема маркетингово обезпечение за публикуване и си запазва правото да редактира цялото съдържание. Изпращайте всички запитвания на [email protected]

Тази статия, „6 неща, които трябва да знаете за Node.js“, първоначално беше публикувана в .com. За най-новите новини за бизнес технологии следвайте .com в Twitter.