За какво се използва Node.js и какви са ползите от него?

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

Node.js е Open Source приложение, работещо на сървър, което създава среда за изпълнение на JavaScript код. Задвижва се от JavaScript двигателя на Google V8. Моделът му на опериране е задвижван от събития с неблокиращи I/O операции, което го прави лек и ефективен. Тези характеристики са повод много разработчици и компании да го използват.

След като вече знаем какво е Node.js, идва въпросът и за какво се използва? Освен характеристиките му, какви реално са ползите от Node.js, заради които разработчиците и компаниите го избират за своите разработки и приложения?

Ако попитаме някой разработчик „Защо Node.js?“, ще получим някое от следните определения: бърз, лесен, страхотен, мощен, гъвкав и дори приятен, но какво всъщност означава това?

Тъй като Node.js приложенията всъщност са JavaScript приложения, голяма част от ползите се базират на качествата и възможностите на самия скриптов език JavaScript.

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

За разлика от създаването на отделен процес или нишка за всяка отделна заявка, както е при PHP например, при Node.js процесът е само един. Изпълнението му се задейства от събития. За да не бъде блокиран този един процес, още при създаването на приложението се използва неблокиращ програмен метод. Неблокиращото програмиране отделя времеемките и тежки изчислителни задачи от основното изпълнение на процеса, позволявайки в това време да се приемат и обработват други заявки. Също така се прилага разбиване на дългите задачи на малки и бързи за изпълнение. За задачите, които се изпълняват странично от основния процес, е указано какво трябва да се случи, след като бъдат завършени – поражда се събитие и се пуска в цикъла за събития (event loop). Блокиращи операции може да са заявки към външни услуги, запитвания към базата данни и други.

Този метод на работа позволява на Node.js да поддържа и обслужва много голям брой едновременни връзки.

Това е причината да се казва, че Node.js е подходящ за приложения с нужда от интензивна комуникация (обмяна на данни), но не и за такива, които са CPU интензивни (обработка на данни).

Node.js се използва за сайтове с много голям трафик

Заради скоростта и ниския профил на консумация на ресурси, Node.js се използва за всякакви уеб, десктоп и мобилни приложения, които имат много голям трафик и нуждата да се справят с голям брой заявки в реално време. Например чатове, инструменти за показване на данни от мониторинг (табло – dashboard), прокси, стрийм на данни и други. 

Сайтовете, използващи например PHP, генерират уеб страницата на сървъра и подават към клиента HTML кода ѝ. Node.js приложенията не е нужно да генерират страниците на сървъра. Вместо това целият статичен HTML код на страницата може да се сложи в JavaScript темплейт. След това този темплейт се изпраща на клиента, и тъй като е статично съдържание, може да се кешира (в браузър, в CDN). След това към клиента се подават само динамичните данни (в JSON формат), които се попълват в страницата-темплейт.

Node.js приложенията може да са SPA (single page application), които комуникират в реално време (не чакат клиентът да ги попита за нещо). Тези приложения приличат повече на приложенията, с които работим на компютъра – програма с един прозорец, в който се извършват всички действия. Този начин на работа на Node.js приложението има съществени ползи – много бързо зареждане и работа на сайта, силно намалена консумация на сървърни ресурси като CPU, памет и други. 

Тези характеристики правят Node.js една много бърза платформа за задвижване на приложения, комуникиращи в реално време. Неслучайно Node.js се използва от компании като LinkedIn, Netflix, PayPal и е водещ избор за силно натоварени сайтове.

Node.js се използва предимно за сайтовете с много голям трафик - w3techs.com.
Node.js се използва предимно за сайтовете с много голям трафик – w3techs.com.

Няколко примерни сайта, които използват Node.js:

https://w3techs.com/sites/info/speedtest.net

https://w3techs.com/sites/info/twitter.com

https://w3techs.com/sites/info/thesaurus.com

Node.js „качи“ JavaScript на сървъра

JavaScript е създаден за уеб, за да раздвижи статичната страница и да е лепило между съществуващите вече HTML и CSS. Раздвижването е възможно, тъй като уеб браузърът разбира и изпълнява JavaScript кода, който е част от HTML страниците.

JavaScript е лесен за използване от уеб дизайнерите и уеб разработчиците и се използва в уеб повече от 20 години (първо появяване декември, 1995 г.). 

До преди 2009 г. JavaScript се свързваше единствено с клиентската (front-end) част на сайта, която работи в браузъра. Има създадени много JavaScript front-end библиотеки.

След качването на JavaScript на сървъра (back-end) чрез Node.js, се отвори нова възможност за използването на езика и създаването на приложения. Това, от своя страна, доведе до създаването на много JavaScript back-end библиотеки и инструменти, които работят на сървъра. А вследствие на това се появиха и пълни комплекти (full stack) от JavaScript технологии, събиращи клиентските и сървърните технологии и други между тях (MEAN, MERN). 

Богата JavaScript екосистема от софтуерни пакети, библиотеки, инструменти и компоненти

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

NPM (мениджърът по подразбиране за пакети към Node.js) дава свободен достъп до над 836 хиляди JavaScript библиотеки и инструменти. NPM играе важна роля за повишаването на популярността на Node.js.

„97% от кода в модерните уеб приложения идва от npm“

„npm има над 10 милиона потребители, които изтеглят над 30 милиарда JavaScript модула за месец“

the npm blog

Популярността на JavaScript, Node.js и NPM се подхранва в затворен кръг, всяко едно допринася за популяризирането на всяко друго.

Съществува цяла JavaScript екосистема от софтуерни пакети, библиотеки, инструменти, компоненти и други ресурси, които се използват в етапите на целия процес на разработката. 

Приложения и инструменти, използвани при разработката на JavaScript приложения:

По-бърза разработка и създаване на приложения

Използването на един език при клиента и на сървъра позволява преизползването на компоненти и ресурси (код, разработчици). Не е нужен специализиран разработчик в някой от обичайно използваните на сървъра езици като Python, PHP или друго. Всеки разработчик, който разбира от JavaScript в браузъра, може да работи с JavaScript на сървъра.

Заради възможността да се използва по-малък екип от разработчици, както и да се преизползва оптимално вече съществуващ код, се спестяват много време и ресурси. Което довежда до по-бърза разработка и създаване на приложение, както и по-удовлетворени разработчици.

Щастливи разработчици (и компании)

Използването на Node.js има положителен ефект върху бизнеса, основно заради повишената продуктивност и повишеното удовлетворение на разработчиците. След това са намалените разходи по разработката и повишената производителност на приложенията.

Влияние на Node.js върху бизнеса - 2018 Node.js User Survey Report.
Влияние на Node.js върху бизнеса – 2018 Node.js User Survey Report.

Node.js хостинг (статичен или динамичен сайт)

Node.js може да се използва както в уеб хостинг услугата (споделен хостинг, Managed VPS), така и на собствен виртуален сървър (VPS).

🔗 Node.js хостинг | Help

🔗 Създаване на виртуална среда за Node.js приложения в cPanel | Help

Статичните сайтове се генерират от „генератори на статични сайтове“. Вместо база данни, се използват обикновени текстови файлове, които генераторът конвертира в HTML страници. Пример за статичен сайт генератор на JavaScript: Gatsby https://www.gatsbyjs.com/docs/. Съществуват и много други като Gridsome, Next.js, Hexo, VuePress, Docsify, Docusaurus.

А за управление на статичното съдържание на сайта в хостинг акаунта, може да се използва Git (управление на версиите на текстовите файлове). Още по темата за Git и ползите му: 🔗 Какви са ползите от Git и за какво се използва? | Blog

Динамичните сайтове използват база данни. Такива сайтове може да се разработят с помощта на платформи като Express.js или да се създадат с готова CMS платформа. Няколко примера за CMS платформи: Ghost, Reaction Commerce JS, Sanity Studio, Strapi, KeystoneJS.

Бележка: Някои Node.js приложения, платформи и генератори на статични сайтове могат да функционират само на собствен виртуален сървър (VPS), поради нуждата им от специфични технологии и настройки, например SPA приложенията и такива, използващи база данни като MongoDB.

Заключение

JavaScript е динамичният език, който работи в браузъра от много години. С качването му на сървъра стана възможно създаването на приложения, които до преди това са били възможни само с други, външни на браузърната среда, технологии като Flash например.

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

Ползите от Node.js облагодетелстват всички замесени страни – разработчиците, които се радват на JavaScript, компаниите, които се радват на зарадваните си разработчици и намалените разходи и потребителите, които се радват на потребителското си изживяване с високоскоростните приложения, работещи в реално време.

А през 2018 г. създателят на Node.js Раян Дал сподели за някои свои грешки, които е допуснал при създаването на Node.js и обяви новата си (по-добра?) идея за сървърна платформа, която задвижва JavaScript – Deno. Дали Deno ще се окаже наследникът на Node.js, е рано да се каже още. Първата официална версия на Deno е пусната май 2018 г., а най-новата към момента е от 13 септември 2020 г. Темата доби още един интересен аспект, така че ще следим за развитие!

Абонирайте се за СуперБлога, за да научавате първи най-важното и полезното от света на уеб, касаещо Вашия сайт и дигитално развитие.

Мадлена Методиева
Меган е една от нашите super-support-гурута. СуперСилите ѝ се крият в таланта ѝ да разказва за технически „неща“ по разбираем и достъпен начин.
5 3 votes
.
Абониране
Уведоми ме при
guest
0 Коментара
Inline Feedbacks
View all comments