Upload
others
View
26
Download
0
Embed Size (px)
Citation preview
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.
ELŐADÁSOK ÉS GYAKORLAT:Paróczi Zsombor [email protected]
TÁRGYFELELŐS:Dr. Kovács Gábor [email protected]
TÁRGY ALAPADATAI2 KREDIT
Szerda 12:15 - 14:00
Páratlan héten előadás
Páros héten gyakorlat
TÁRGY ALAPADATAITárgyi adatlap:
https://portal.vik.bme.hu/kepzes/targyak/vitmav42
Tárgy weboldala:
http://malna.tmit.bme.hu/vitmav42/
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
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
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.
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
1. FELADATHatáridő:
2. hét vége éjfél
(február 28, 23:59)
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.
FELADAT
Ennél egyszerűbb, de ehhez hasonló ötleteket várunk!
WEBFEJLESZTÉSnagyon sok fejlesztőmegítélése néha furanagyon nagy a skála szaktudásban, projektmanagementben
AGILE MÓDSZEREK
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
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
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.
A JAVASCRIPT EGYSZERŰ!function foo(item) { window.alert('Bar' + (item + 3) + "!"); }
foo(1);
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; }; };
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.
NODE.JSHa már kliens oldalon javascriptet használunk (de-facto),
miért ne használhatnánk szerver oldalon is?
Mi is kell ehhez?
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?
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/
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).
TELEPÍTSÜNK!
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); });
EGY NPM MODULE TELEPÍTÉSE
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); });
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
MIT TUDOK ELSAJÁTÍTANI?Node.js és ökoszisztéma használata.Express.js alkalmazás tervezése és megvalósítása.