Webfejlesztés villámgyorsan Ruby on Rails alapokon

A tantárgy angol neve: Rapid Web Development Using Ruby on Rails

Adatlap utolsó módosítása: 2010. március 12.

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
VITMBV17   1/1/0/f 2  
3. A tantárgyfelelős személy és tanszék Dr. Kovács Gábor,
4. A tantárgy előadója
 Név: Beosztás: Tanszék, Intézet:
 Maliosz Markosz Ph.D tud. munkatárs TMIT
 Kovács Gábor ügyvivő szakértő TMIT
5. A tantárgy az alábbi témakörök ismeretére épít A számítógép-programozás alapjai
6. Előtanulmányi rend
Ajánlott:
nincs
7. A tantárgy célkitűzése A Ruby on Rails nyílt forráskódú webfejlesztési keretrendszer, ideális választás adatbázis-vezérelt portálok gyors és egyszerű fejlesztésére. A Ruby egyszerű és következetes nyelvtana, az erősen objektum-orientált koncepció, valamint a – Java-hoz mérten is – jó modellezhetőség egyaránt hozzájárult a sikertörténethez; ezek mellett pedig nem elhanyagolható tényező a fejlesztési sebesség sem, mely a Rails környezettel lényegesen gyorsabb, mint akár J2EE, akár PHP esetén. 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 Ruby on Rails 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. Trendek a webfejlesztésben, tipikus web 2.0-s fejlesztési feladatok. A Ruby on Rails filozófiája, a megcélzott piaci szegmens. A gyors fejlesztési módszertanok áttekintése, kapcsolatuk a Ruby on Rails-szel. Extreme Programming. Agilis módszertan. A Model-View-Controller (MVC) tervezési minta.

2. hét gyakorlat
Tipikus web 2.0-s fejlesztési feladatok megvalósításának menete nem Ruby on Rails alapokon. A fejlesztés folyamatának végigkövetése egy webes áruház példáján keresztül. A többször megírt kódrészletek azonosítása. A Ruby értelmező és a Ruby on Rails keretrendszer telepítése.

3. hét előadás
Bevezetés a Ruby programozási nyelvbe. A Ruby objektummodell. Alaptípusok és változók, metódusok, egységbe zárás. Nyelvtan, szintaxis. Operátorok, vezérlési szerkezetek. Kivételkezelés. A Ruby API. String- és fájlműveletek, hálózatkezelés, adatbázis-kezelés, webszolgáltatások, környezeti változók. A Ruby interpreter. Reflection.

4. hét gyakorlat
Ismerkedés a Ruby programozási nyelvvel példákon keresztül. Példák az alaptípusok és azok beépített metódusainak használatára, osztálydefinícióra. Érték és referencia szerinti paraméter átadás. Operátorok, vezérlési szerkezetek és kivételkezelés használata. Példa fájlműveletre, adatbázis-kapcsolat használatára, hálózati alkalmazásra, valamint webszolgáltatás hívásra.

5. hét előadás
Bevezetés a Ruby on Railsbe. A Model-View-Controller tervezési minta megvalósítása. A Rails komponensei. A REST hálózati szoftver architektúra, a RESTful hálózati szoftver integráció alapelvei, összehasonlítás a webszolgáltatás alapú integrációval. A REST megvalósulása a Rails keretrendszerben. Erőforrás alapú címzés.

6. hét gyakorlat
A Hello World Rails alkalmazás létrehozása. Az alkalmazás könyvtárszerkezete és az MVC minta. Az alkalmazás futtatása. A Rails alkalmazás és a HTTP kérés URL közötti kapcsolat. Controller és akciók definíciója. Dinamikus tartalom előállítása. Webalkalmazás kompozíciója több Rails weboldalból.

7. hét előadás
Rails és az adatbázisok. Adatbázis-kapcsolat felépítése és használata Rubyban. Rails adatmodell és a modellmanipulációs keretrendszer (scaffold). Adatbázis migrációs osztályok definíciója, relációk. Egyszerű modellkapcsolatok Rails-ben, adatbázisok modellezése. Bemeneti adatok validációja, validációs opciók, feltételes validáció, visszahívás. Tranzakciók.

8. hét gyakorlat
Adatbázis-kapcsolattal rendelkező Rails alkalmazás fejlesztési folyamata egy webáruház példáján keresztül. Rails alkalmazás és az adatbázis létrehozása, a Rails alkalmazás konfigurációja. A modell és az táblák létrehozása. A Controller megvalósítása. Validáció megvalósítása, saját validációs metódus írása.

9. hét előadás
A nézet layout sablonjának módosítása, CSS stílusok hozzárendelése a webalkalmazáshoz, változók értékének formázása. HTTP POST üzenetek generálása, akciók kötése a nézethez, formok. Sessionkezelés Railsben, nyilvántartás adatbázisban. Hibakezelés Railsben, naplózás, átirányítás. Akciók közötti kommunikáció, a flash.

10. hét gyakorlat
A 8. hét előadásán megkezdett példa folytatása. Linkek, üzenetküldés a szervernek. Layout beállítása, CSS, adatformázás. Session megvalósítása. Hibakezelés megvalósítása, amennyiben az adatbázisban nem található meg a kért adat. A hiba naplózása, a felhasználó értesítése a találat hiányáról, átirányítás.

11. hét előadás
Template-ek formázásra, tördelésre, oldalak közötti linkelésre, email küldésre. RJS template, kliensoldali AJAX műveletek fejlesztése. Adminisztráció megvalósítása, felhasználók, szerepek. Szűrő típusok (before, after, around). Cache és teljesítménynövelés, stratégiák. Webszolgáltatások.

12. hét gyakorlat
Template-ek használata, példa tördelésre és formázásra. AJAX. Adminisztrációs felületek és felhasználómenedzsment megvalósítása. Felhasználókhoz és szerepekhez kötődő funkciók azonosítása és megvalósítása, az adatmodell tervezése, a funkciók megvalósítása az MVC szerint. Webszolgáltatások, AWS.

13. hét előadás
Biztonsági kérdések, előtétszűrők használata hitelesítésre, biztonsági megfontolások. Tesztelés, debuggolás és code refactoring. Modellek unit tesztjei, a unit tesztek támogatása Railsben. Controllerek funkcionális tesztje. Integráció teszt. Teljesítmény teszt. Virtuális modellek kezelése. Kitekintés: ami a Rails-ből hiányzik.

14. hét gyakorlat
Védekezés SQL injekciós támadással szemben. Tipikus biztonsági hibák. Tesztesetek készítése a félév folyamán készített példákhoz: unit teszt, funkcionális teszt, integráció teszt, teljesítmény teszt.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás és bemutató órák előadások keretében
10. Követelmények A szorgalmi időszakban: féléves otthoni feladat megoldása. 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 lehetséges.
12. Konzultációs lehetőségek Igény szerint, az oktatóval egyeztetve
13. Jegyzet, tankönyv, felhasználható irodalom D.Thomas, D.H.Hansson: ”Agile Web Development with Rails”, The Pragmatic Books 2007
J.McAnnaly: ”Mr. Neighborly’s Humble Little Ruby Book”, J.McAnnaly 2006
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ákra10
Felkészülés zárthelyire
Házi feladat elkészítése22
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:
 Maliosz Markosz Ph.D tud. munkatárs TMIT
 Szöllősi Lóránd ügyvivő szakértő TMIT
 Kovács Gábor ügyvivő szakértő TMIT
 Szabó Róbert Ph.D egy. docens TMIT