29
SZERVER OLDALI JAVASCRIPT 1. hét Bevezetés. Node.js története, fejlődése, működése, V8, NPM és ökoszisztéma bemutatása.

SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

  • Upload
    others

  • View
    26

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

SZERVER OLDALI JAVASCRIPT1. hét

Bevezetés. Node.js története, fejlődése, működése, V8, NPMés ökoszisztéma bemutatása.

Page 2: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

ELŐADÁSOK ÉS GYAKORLAT:Paróczi Zsombor [email protected]

TÁRGYFELELŐS:Dr. Kovács Gábor [email protected]

Page 3: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

TÁRGY ALAPADATAI2 KREDIT

Szerda 12:15 - 14:00

Páratlan héten előadás

Páros héten gyakorlat

Page 4: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

TÁRGY ALAPADATAITárgyi adatlap:

https://portal.vik.bme.hu/kepzes/targyak/vitmav42

Tárgy weboldala:

http://malna.tmit.bme.hu/vitmav42/

Page 5: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

KÖVETELMÉNYEKHét fejlesztési gyakorlat megoldása

Félévközi jegy a teljesített feladatok alapjánLeadási határidő a weboldalonHét feladat megoldása kötelezőKét feladat pótolható vagy javítható a pótlási hét végéig

Page 6: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

BEADÁSEmailben: [email protected]

tárgy: NODE saját neptunk kód Házi 1mongodb adatbázis neve: saját neptunk kódnode project egy zip-be csomagolvaNeptun kódot ne felejtsük el!mondjuk meg, melyik házit adjuk be

Page 7: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

EREDMÉNYEK ÉS INFORMÁCIÓKEredmények a weboldalon, módosítási kérések is ott

lesznek felsorolva!

Értékelés értelmezése:

Szép munka vagy Ok: el lett fogadva, minden okHiányos: A megjegyzés alapján javítsunk valami

Hiányzos esetén újra be kell adni a házi feladatot, azeredeti leadási határidővel számoljuk a késést.

Page 8: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

1. FELADATEgy elképzelt megrendelő feladatát specifikáljuk:

Legalább 2 entitás típus (legalább egyiknél az összesCRUD funkció megvalósítása)Legalább 3 nézet (mindegyikhez mockup)Részletes specifikáció kell

AMIT LE KELL ADNI:specifikáció pdfbenmockup vagy a specifikációban, vagy képként

Page 9: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

1. FELADATHatáridő:

2. hét vége éjfél

(február 28, 23:59)

Page 10: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

MINTAFELADATA gyakorlatokon a következő mintafeladatot oldjuk meg:

Egy cégnél szükség lenne egy eszköz nyilvántartóra, azazhogy melyik munkatársnál melyik céges eszköz van. Ehheza munkatársakat is kezelni kell tudni, meg az eszközöket is,

meg az összerendezést is.

A specifikációban ezeket részletesen, képernyőtervvelegyütt kell kifejteni.

Page 11: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

FELADAT

Ennél egyszerűbb, de ehhez hasonló ötleteket várunk!

Page 12: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

WEBFEJLESZTÉSnagyon sok fejlesztőmegítélése néha furanagyon nagy a skála szaktudásban, projektmanagementben

Page 13: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

AGILE MÓDSZEREK

Page 14: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

AMIRE KÉSZÜLNI KELLnagyfokú bővíthetőség és félúton változó igényekrövid fejlesztési idő"nem házakat építünk" mentalitás vs utólagosmódosíthatóságcél: moduláris, egyszerű elemek hasznlata

Dan North (Dan North & Associates) - Beyond Features:Rethinking Agile Planning and Tracking:

http://www.ustream.tv/recorded/61492206

Page 15: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

MIÉRT WEB?aránylag egyszerű technológiák (HTML, CSS, JS)hordozható (okostévék, mobil platformok, stb)tartalom fogyasztás elsődleges forrása

Page 16: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

JAVASCRIPT10 nap alatt "összedobott" programnyelv, amit 1995-ben

Brendan Eich hozzott létre, amikor a Netscape-néldolgozott.

Az ECMA szabványosította 1996-1997-ben, azóta is őkfoglalkoznak a nyelvi alapokkal. Most az ECMA script 6-os

változatánál tartunk.

Kiforrott technológia már, böngészők közötti implementációis már évek óta (IE...) szinte azonos.

Page 17: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

A JAVASCRIPT EGYSZERŰ!function foo(item) { window.alert('Bar' + (item + 3) + "!"); }

foo(1);

Page 18: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

A JAVASCRIPT EGYSZERŰ?function promisify(nodeAsyncFn, context) { return function() { var defer = q.defer() , args = Array.prototype.slice.call(arguments);

args.push(function(err, val) { if (err !== null) { return defer.reject(err); } return defer.resolve(val); });

nodeAsyncFn.apply(context || {}, args); return defer.promise; }; };

Page 19: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

CHROME ÉS V8Google Chrome 2008 óta fejlesztés alatt lévő böngésző,

induláskor már a V8 javascript motor volt benne.

A V8 natív kóddá fordítja a betöltött js-t, így gyorsítva aműködést. Nagyon sok "varázslat" van benne, mint minden

JIT projektben.

Open source, bármiben használható library:

https://code.google.com/p/v8/

Alapja a Node.js, MongoDB szoftvereknek.

Page 20: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

NODE.JSHa már kliens oldalon javascriptet használunk (de-facto),

miért ne használhatnánk szerver oldalon is?

Mi is kell ehhez?

Page 21: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

NODE.JS MODULOKBeépített standard modulok:

File system, PathNet, HTTP, UDP, DNS, DomainCluster, Console, Crypto...

A legalapvetőbb funkciók vannak csak meg és a nyelv.

Mit tegyünk?

Page 22: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

MAVEN?Java irányból már létezik egy jó ötlet: Maven

Egy közös POM (project object model) tartalmazzamodulokat, a dependenciákkal együtt letölthetőek és

telepíthetőek.

Az ötlet alapjára épül az npm: https://www.npmjs.com/

Page 23: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

NPMnpm is the package manager for javascript

Mennyire nagy?

total packages 179,369downloads in the last day 37,682,863downloads in the last week 598,105,505

Csomagkezelés annyira jól lett kitalálva, hogy a PHP világmost veszi át (composer).

Page 24: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

TELEPÍTSÜNK!

Page 25: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

EGY EGYSZERŰ WEBSZERVERvar http = require('http');

var server = http.createServer(function(req, res) { res.writeHead(200); res.write('<p>Hello world!</p>'); res.end(); });

var port = 3000;server.listen(port, function() { console.log('server listening on port ' + port); });

Page 26: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

EGY NPM MODULE TELEPÍTÉSE

Page 27: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

EGY EGYSZERŰ WEBSZERVER(+ COLORS)

var http = require('http'); var colors = require('colors'); // 1.

var server = http.createServer(function(req, res) { res.writeHead(200); console.log('URL: ' + colors.red(req.url)); // 2. res.write('<p>Hello world!</p>'); res.end(); });

var port = 3000;server.listen(port, function() { console.log('server listening on port ' + port); });

Page 28: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

MIVEL FOGUNK FOGLALKOZNI A FÉLÉVSORÁN:

javascript nyelvi elemeknode alap modulokexpress struktúra, middleware gondolatmenet éshasználatnpm, grunt, mongodb, ejs technológiáktesztelés (tényleg hasznos módon)egy csipetnyi HTML és CSS

Page 29: SZERVER OLDALI JAVASCRIPTmalna.tmit.bme.hu/vitmav42/dl/e1.pdf · NPM npm is the package manager for javascript Mennyire nagy? total packages 179,369 downloads in the last day 37,682,863

MIT TUDOK ELSAJÁTÍTANI?Node.js és ökoszisztéma használata.Express.js alkalmazás tervezése és megvalósítása.