Cursuri AIBD

Curs
6.3/10 (3 voturi)
Domeniu: Calculatoare
Conține 1 fișier: pdf
Pagini : 73 în total
Cuvinte : 12701
Mărime: 2.81MB (arhivat)
Publicat de: Iacov Anton
Puncte necesare: 0

Extras din curs

1. Ce este Node?

Node este o platformă foarte populară, relativ nouă (a debutat în 2009) pentru dezvoltarea

aplicațiilor web. Este al doilea cel mai urmărit proiect pe GitHub (https://github.com/nodejs), are

mulți urmăritori/followers pe grupul Google(https://groups.google.com/forum/#!forum/nodejs)

și mai mult de 240.000 de module publicate de comunitate în NPM - managerul de pachete

(https://www.npmjs.com/).

Prima prezentare a lui Node de către creatorul Ryan Dahl la Berlin, în 2009 poate fi urmărită pe

website-ul: http://www.jsconf.eu/2009/video_nodejs_by_ryan_dahl.html.

Site-ul oficial https://nodejs.org/en/ definește Node ca o platformă construită pe mediul de

execuție JavaScript din Chrome pentru a construi ușor și rapid aplicații de rețea scalabile. Node

folosește un model bazat pe evenimente, I/O care nu se blochează, ceea ce îl face rapid și eficient,

perfect pentru aplicații de procesare în timp real a cantităților mari de date (DIRT) ce se execută

pe toate dispozitivele distribuite.

1.1. Construit pe JavaScript

JavaScript este unul din cele mai populare limbaje de programare din lume

(https://www.youtube.com/watch?v=Trurfqh_6fQ). Conform indexului de popularitate Tiobe

(http://www.tiobe.com/tiobe_index?page=index), limbajul JavaScript ocupă în februarie 2016

locul 9. Încă din anul 2005, JavaScript a fost folosit pentru a fi create programe importante:

Google Maps , Gmail, o serie de aplicații web, de exemplu: Twitter, Facebook, GitHub. Încă din

2008, de la lansarea lui Google Chrome, performanța lui JavaScript a avut o rată de îmbunătățire

foarte mare datorită concurenței dintre bowsere (Mozilla, Microsoft, Apple, Opera, Google).

Performanța mașinilor virtuale moderne JavaScript schimbă tipurile de aplicații ce pot fi

construite pe web (https://www.chromeexperiments.com/). Un exemplu, cred că destul de

convingător este jslinux, un emulator PC executat în JavaScript (http://bellard.org/jslinux/), în

care se poate încărca un kernel Linux, interacționa cu un terminal și compila un program C, toate

acestea în browser.

Node folosește V8, mașina virtuală de la Google Chrome pentru programarea server-side. V8 dă

un impuls mare performanței deoarece preferă compilarea direct în cod mașină față de executare

codului bytecod sau folosirea unui interpretor. Deoarece Node folosește JavaScript pe server

există și alte beneficii:

- Dezvoltatorii pot scrie aplicații web într-un singur limbaj, ceea ce ajută la reducerea

schimbării contextului dintre dezvoltarea pentru client și cea pentru server

- JSON(JavaScript Object Notation - http://www.json.org/) este un format foarte popular,

de tip data-interchange, nativ JavaScript

- JavaScript este limbajul folosit în baze de date NoSQL(precum Redis - http://redis.io/ și

MongoDB - https://www.mongodb.org/)

- Există numeroase limbaje care compilează în JavaScript:

https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS

- Node folosit pe mașina virtuală V8 este conform standardului ECMAScript

(https://en.wikipedia.org/wiki/ECMAScript)

1.2. Browser-ul

Node oferă o platformă asincronă, bazată pe evenimente (event-driven) pentru JavaScript de tip

server-side. Este important să înțelegem cum funcționează un browser pentru a putea înțelege

cum funcționează Node. Ambele sunt conduse de evenimente (folosesc event loop -

https://en.wikipedia.org/wiki/Event_loop) și Input/Output asincron

(https://en.wikipedia.org/wiki/Asynchronous_I/O).

Codul anterior jQuery execută o cerere Ajax folosind XML HttpRequest. Acest program execută o

cerere HTTP pentru resource.json. Atunci când se primește răspunsul, este apelată o funcție

anonimă (callback) ce conține argumentul data, adică datele primite din acea cerere.

În exemplu, se presupune că răspunsul pentru fișierul resource.json va fi stocat în variabila data

atunci când este gata iar funcția console.log nu se va executa până atunci. Operația de

intrare/ieșire (I/O), adică cererea Ajax ar bloca execuția scriptului să continue până este gata. Din

cauză că browserul este single threaded, dacă această cerere ar dura 400 de milisecunde până se

întoarce răspunsul, orice alte evenimente care s-ar întâmpla în acea pagină ar aștepta până

atunci, înainte de a putea fi executate. Vă puteți imagina experiența trăită de utilizatori dacă o

animație este oprită sau dacă aceștia încearcă să interacționeze într-un anume mod cu pagina.

Dar nu este cazul, deoarece când se întâmplă I/O în browser, se întâmplă în afara buclei de

evenimente, adică în afara execuției scriptului principal și apoi este emis un eveniment când I/O

se termină, care este manipulat de către o funcție, adesea numită callback.

I/O se întâmplă asincron. El nu blochează execuția scriptului, permițând buclei de evenimente să

răspundă oricărei interacțiuni sau cereri formulate în pagină. Acest lucru permite ca browserul

să fie receptiv pentru client și să se ocupe de interactivitatea din pagină.

Preview document

Cursuri AIBD - Pagina 1
Cursuri AIBD - Pagina 2
Cursuri AIBD - Pagina 3
Cursuri AIBD - Pagina 4
Cursuri AIBD - Pagina 5
Cursuri AIBD - Pagina 6
Cursuri AIBD - Pagina 7
Cursuri AIBD - Pagina 8
Cursuri AIBD - Pagina 9
Cursuri AIBD - Pagina 10
Cursuri AIBD - Pagina 11
Cursuri AIBD - Pagina 12
Cursuri AIBD - Pagina 13
Cursuri AIBD - Pagina 14
Cursuri AIBD - Pagina 15
Cursuri AIBD - Pagina 16
Cursuri AIBD - Pagina 17
Cursuri AIBD - Pagina 18
Cursuri AIBD - Pagina 19
Cursuri AIBD - Pagina 20
Cursuri AIBD - Pagina 21
Cursuri AIBD - Pagina 22
Cursuri AIBD - Pagina 23
Cursuri AIBD - Pagina 24
Cursuri AIBD - Pagina 25
Cursuri AIBD - Pagina 26
Cursuri AIBD - Pagina 27
Cursuri AIBD - Pagina 28
Cursuri AIBD - Pagina 29
Cursuri AIBD - Pagina 30
Cursuri AIBD - Pagina 31
Cursuri AIBD - Pagina 32
Cursuri AIBD - Pagina 33
Cursuri AIBD - Pagina 34
Cursuri AIBD - Pagina 35
Cursuri AIBD - Pagina 36
Cursuri AIBD - Pagina 37
Cursuri AIBD - Pagina 38
Cursuri AIBD - Pagina 39
Cursuri AIBD - Pagina 40
Cursuri AIBD - Pagina 41
Cursuri AIBD - Pagina 42
Cursuri AIBD - Pagina 43
Cursuri AIBD - Pagina 44
Cursuri AIBD - Pagina 45
Cursuri AIBD - Pagina 46
Cursuri AIBD - Pagina 47
Cursuri AIBD - Pagina 48
Cursuri AIBD - Pagina 49
Cursuri AIBD - Pagina 50
Cursuri AIBD - Pagina 51
Cursuri AIBD - Pagina 52
Cursuri AIBD - Pagina 53
Cursuri AIBD - Pagina 54
Cursuri AIBD - Pagina 55
Cursuri AIBD - Pagina 56
Cursuri AIBD - Pagina 57
Cursuri AIBD - Pagina 58
Cursuri AIBD - Pagina 59
Cursuri AIBD - Pagina 60
Cursuri AIBD - Pagina 61
Cursuri AIBD - Pagina 62
Cursuri AIBD - Pagina 63
Cursuri AIBD - Pagina 64
Cursuri AIBD - Pagina 65
Cursuri AIBD - Pagina 66
Cursuri AIBD - Pagina 67
Cursuri AIBD - Pagina 68
Cursuri AIBD - Pagina 69
Cursuri AIBD - Pagina 70
Cursuri AIBD - Pagina 71
Cursuri AIBD - Pagina 72
Cursuri AIBD - Pagina 73

Conținut arhivă zip

  • Cursuri AIBD.pdf

Alții au mai descărcat și

Baze de date NoSQL - MongoDB

În acesta lucrare se analizează așa numitele depozite de date „NoSQL” care au fost proiectate să scaleze aplicațiile de tipul OLTP 1 distribuite pe...

Design-ul și Machetarea Paginilor Web

Trei reguli faţă de un sit 1. Respectarea strictă a standardelor internet. 2. Alegerea riguroasă a conţinutului paginilor web. 3. Asigurarea...

Arhitectura calculatoarelor

Capitolul 1 INTRODUCERE 1.1 Scurt istoric al sistemelor de calcul Istoria mijloacelor mecanice de calcul începe cu multe secole în urma. Se...

Proiectarea bazelor de date

Capitolul I - Informatii generale Cunostinte anterioare necesare: - Notiuni fundamentale de baze de date - Structuri de date Notiuni abordate...

Tutorial Corel Draw

Pachetul COREL DRAW Structura si obiective Modulul 1 1 ora teorie – 2 ore practica Obiective Cunoasterea si utilizarea corecta a elementelor...

Webdesign

I. Consideraţii generale privind Internet şi World Wide Web La ora actuală în lume există milioane de calculatoare, care sunt folosite în cele mai...

Ghid de proiectare a bazelor de date

Ghid de proiectare a bazelor de date relationale Introducere Proiectarea bazei de date este o munca de colectiv care armonizeaza cerintele si...

Pagini Web Dinamice

Pagini Web dinamice Paginile Web dinamice sunt folosite atunci când se doreşte modificarea dinamică a conţinutului paginilor Web. Paginile Web...

Ai nevoie de altceva?