Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Szerver oldali JavaScript

    A tantárgy angol neve: Server Side JavaScript

    Adatlap utolsó módosítása: 2015. március 31.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Mérnök informatikus szak

    Villamosmérnöki szak

    Szabadon választható tárgy

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VITMAV42   1/1/0/f 2  
    3. A tantárgyfelelős személy és tanszék Dr. Kovács Gábor, Távközlési és Médiainformatikai Tanszék
    4. A tantárgy előadója
     Név: Beosztás: Tanszék, Intézet:
     Dr. Kovács Gábor Ph.D adjunktus TMIT
     Paróczi Zsombor tanszéki mérnök TMIT
    5. A tantárgy az alábbi témakörök ismeretére épít

    VIEEAA00 A programozás alapjai 1

    vagy 

    VIHIAA01 A programozás alapjai 1

    6. Előtanulmányi rend
    Ajánlott:
    nincs
    7. A tantárgy célkitűzése

    A Node.js keretrendszer segítségével egyszerűen hozhatóak létre skálázható webes alkalmazások. A JavaScript alapok mellett a Node lehetőséget ad eseményalapú fejlesztésre, aszinkron I/O-val a túlterhelés minimalizálására és a skálázhatóság maximalizálására. A tárgy célkitűzése, hogy a hallgatók gyakorlati problémák megoldásán keresztül megismerjék és elsajátítsák a Node.js fejlesztési módszertanának alapjait, beleértve a tervezési, fejlesztési és projektkövetési feladatokat is.

     

    8. A tantárgy részletes tematikája

    1. hét előadás

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

    2. hét gyakorlat

    Node.js keretrendszer telepítése, package.json használata, fejlesztést támogató eszközök használata (git, nvm, npm). Express alkalmazás létrehozásának bemutatása, szerver oldali fejlesztést támogató eszközök (nodemon, forever).

    3. hét előadás

     Javascript szintaxis, struktúra, adatkezelés, változók scopeja. Osztály és öröklés megvalósítása javascript nyelven. Aszinkronitás és az aszinkron működésből adódó időzítési problémák. Lezárások (closure) használatának bemutatása, az ES6-ban megjelenő natív promise.

    4. hét gyakorlat

    Javascript nyelvi elemek gyakorlása, aszinkronitás bemutatása a gyakorlatban, időzítési problémák elkerülése, meglévő komplex kódok refaktorálása aszinkron működés kezelésére, callback struktúrák kialakítása.

    5. hét előadás

    Node.js core modulok bemutatása: http, https, os, fs, events. A modulok legfontosabb funkcióinak áttekintése és egyszerű példákon keresztül bemutatása.

    6. hét gyakorlat

    A core modulok gyakorlatban történő bemutatása.

    7. hét előadás

    Express keretrendszer bemutatása, gyakran használt modulok, azok kommunikációja és együttműködése.

    8. hét gyakorlat

    Package.json használata, express alkalmazások felépítés, MVC szerkezet hátrányai, middleware struktúra, dependency injection. A Node alkalmazások modulokra való bontásának bemutatása.

    9. hét előadás

    Bluebird package által biztosított promise, async node modul bemutatása, error first callbackek használata. Grunt bemutatása, használatának előnyei – hátrányai, gyakran használt grunt modulok.

    10. hét gyakorlat

    Az Express egy templating moduljának bemutatása, HTML / kliens oldali kód integrálása a keretrendszerbe. Grunt deployment folyamat összeállítása, egyszerű grunt parancsok használata (concat, uglify, stb).

    11. hét előadás

    MongoDB adattárolás bemutatása Node.js környezetben, különös tekintettel az alapműveletekre (CRUD), valamint a séma tervezésre és performancia kérdésekre.

    12. hét gyakorlat

    MongoDB telepítése és bemutatása a gyakorlatban egy egyszerű adatstruktúra használatával. Kliens és szerver oldali kód hordozás bemutatása.

    13. hét előadás

    Tesztelés lehetőségei, unit és integrációs tesztek készítése. Mocha keretrendszer bemutatása, assert struktúrák, TDD / DBB alapú megvalósítások.

    14. hét gyakorlat

    Tesztesetek tervezése és megvalósítása, tesztelhető kód készítése, meglévő kód refaktorálása tesztelhetőség szempontjából. Teszt környezet felépítése és code coverage tesztelés.

     

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Előadás és gyakorlatok keretében

    10. Követelmények A szorgalmi időszakban: féléves otthoni feladat megoldása, a félév során részfeladat beadásokkal. A félévközi jegy az otthoni feladat osztályzata.
    11. Pótlási lehetőségek

    Az otthoni feladatok pótlólagos leadása a pótlási időszakban, egy kijelölt időpontban késedelmi eljárás keretében lehetséges.

    12. Konzultációs lehetőségek

    Igény szerint, az oktatóval egyeztetve.

    13. Jegyzet, tankönyv, felhasználható irodalom

    M. Cantelon, M. Harter, TJ. Holowaychuk, N. Rajlich: ”Node.js in Action”, Manning Publications, ISBN: 1617290572, 2013 

    B. A. Syed: ”Beginning Node.js”, Apress, ISBN: 1484201886 2014 

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra28
    Félévközi készülés órákra7
    Felkészülés zárthelyire
    Házi feladat elkészítése25
    Kijelölt írásos tananyag elsajátítása
    Vizsgafelkészülés
    Összesen60
    15. A tantárgy tematikáját kidolgozta
     Név: Beosztás: Tanszék, Intézet:
     Dr. Kovács Gábor PhD adjunktus TMIT
     Paróczi Zsombor tanszéki mérnök TMIT