Какво е JavaScript?

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

JavaScript първо беше известен като LiveScript, но Netscape промени името му на JavaScript, вероятно поради вълнението, генерирано от Java. JavaScript се появи за първи път в Netscape 2.0 през 1995 г. с името LiveScript. Ядрото на езика с общо предназначение е вградено в Netscape, Internet Explorer и други уеб браузъри.

JavaScript от страна на клиента

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

Това означава, че една уеб страница не е необходимо да бъде статичен HTML, но може да включва програми, които взаимодействат с потребителя, контролират браузъра и динамично създават HTML съдържание.

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

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

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

Предимства на JavaScript

Предимствата на използването на JavaScript са −

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

Netflix и node.JS

Netflix е услуга за стрийминг, която предлага голямо разнообразие от всепризнати телевизионни предавания, филми, аниме, документални филми и други – на хиляди устройства, свързани с интернет.

Можете да гледате колкото искате, когато пожелаете, без нито една реклама — всичко това на една ниска месечна цена. Винаги има нещо ново за откриване и всяка седмица се добавят нови телевизионни предавания и филми!

Netflix вече е сред компаниите, използващи Node.JS поради следните причини:

  • Общ език както за страната на сървъра, така и за страната на браузъра.
  • Висока производителност — сега страницата се зарежда за секунди.
  • Голям брой модули и тяхната природа с отворен код.
  • Лесен начин за писане, отстраняване на грешки и инженеринг на API.

Първоначално Netflix използва Node.js, за да даде възможност за уеб стрийминг с голям обем на над 182 милиона абонати. Трите им цели с тази ранна инфраструктура бяха да осигурят наблюдаемост (метрики), възможност за отстраняване на грешки (инструменти за диагностика) и наличност (регистрация на услугата). Резултатът беше инфраструктурата NodeQuark. Шлюзът на приложението удостоверява и насочва заявките към услугата NodeQuark, която след това комуникира с API и форматира отговорите, които се изпращат обратно на клиента. С NodeQuark Netflix също създаде управлявано изживяване – екипите могат да създават персонализирани API изживявания за конкретни устройства. Това позволява на приложението Netflix да работи безпроблемно на различни устройства.

Отвъд стрийминг

Netflix обаче искаше да премине отвъд стрийминг в мрежата и да премине към производство на съдържание. Това постави няколко предизвикателства пред инфраструктурата на NodeQuark и екипа за разработка. Уеб стриймингът изисква относително малко приложения, но обслужва огромна потребителска база. От друга страна, платформата за производство на съдържание съдържа голям брой приложения, които обслужват ограничена потребителска база. Освен това приложението за производство на съдържание трябва да има множество нива на сигурност за служители, партньори и потребители. Допълнителен проблем е, че разработката за производство на съдържание е идеално бърза, докато версиите на платформата са бавни, повтарящи се процеси, предназначени да осигурят стабилност на приложението. Групирането на тези два процеса изглежда трудно, но алтернативата е да отделите ненужно време и усилия за изграждане на напълно отделна инфраструктура.

Хермето реши, че за да реши проблемите на Netflix, ще трябва да използва самостоятелни модули. С други думи, плъгини! С преминаването към плъгини екипът на Netflix успя да раздели функциите на инфраструктурата, като същевременно запази възможността за повторно използване на код, споделен между уеб стрийминг и производство на съдържание. След това Hermeto пренесе архитектурата на плъгините на следващата стъпка, като създаде профили на приложения. Профилът на приложението е просто списък с добавки, изисквани от приложението. Профилът чете тези специфични добавки и след това експортира зареден масив. Следователно рискът плъгин, създаден за производство на съдържание, да счупи приложението за стрийминг, беше намален. Освен това, чрез разделяне на кода на по-малки части, екипът на Netflix успя да премахне движещи се части от основната система, подобрявайки стабилността.