Napredne tehnike razvoja web aplikacija - Zend Framework

Embed Size (px)

Citation preview

  • 1. Naprednetehnike razvoja web aplikacija, Zend Framework Saa Stamenkovi Senior Software Developer Troxo

2. ta je to MVC?

  • ModelViewController( MVC ) je arhitekturni obrazac koji se koristi u softverskom ininjerstvu. Ovaj obrazac razdvaja podatke (model), korisniki interfejs (view), i obradu (controll), dozvoljavajui tako nezavisni razvoj, testiranje i odravanje ovih komponenti.

3. ta je to MVC? 4. ta je to MVC? 5. Model

  • Je nain predstavljanja podataka koje data aplikacija koristi. Sama logika aplikacije daje neko znaenje sirovim podatcima, npr. izraunavajui da li je danas korisnikov rodjendan.

6. View

  • Predstavlja model u odredjenoj formi, najee kroz korisniki interfejs. Mogue je postojanje vie pogleda za jedan isti model.

7. Controller

  • Prihvata informacije sa ulaza, poziva modele objekata i vraa rezultat.
  • MVC aplikacija moe imati vie model/view/controller trija, gde e svaki biti zaduen za odredjeni U/I.

8. Malo istorije

  • MVC je 1979 godine prvi put opisao Trygve Reenskaug, koji je u tom momentu radio na Smalltalk-u. Prvobitna implementacija je detaljno opisana u radu : " Applications Programming in Smalltalk-80: How to use ModelViewController
  • Iako postoje vie varijacija naziva, kao na primer Model View Presenter kod .NET Framework-a, svi oni imaju isti redosled operacija.

9. Koji se problemi javljaju u web aplikacijama?

  • Meanje biznis i prezentacione logike
  • Copy-paste kod
  • Nepostojanje strogih konvencija
  • Nestandardno rutiranje
  • Loe rukovanje grekama
  • Sigurnosni propusti
  • ...

10. Neke web aplikacije izgledaju ovako 11. A njihovo odravanje ovako 12. Meanje biznis i prezentacione logike 13. Meanje biznis i prezentacione logike

  • Sigurnosni propusti
  • Kod nijereusabilan
  • Eventualne greke nisuhendlovane
  • Konfiguracija nije centralizovana
  • Odravanje ovakvog koda je oteano

14. Nestandardno rutiranje 15. Nestandardno rutiranje

  • Svaki programer ga reava na svoj nain
  • Svaka nova aplikacija zahteva ponovni prolazak kroz fazu reavanja ovog problema
  • Poveano vreme razvoja aplikacije
  • Oteano odravanje i razumevanje koda od strane lanova razvojnog tima

16. Sigurnost (security) web aplikacija

  • SQL injection
  • Cross-site scripting (XSS)
  • Cross-site request forgery (CSRF)

17. Aplikacije su kao luk imaju slojeve 18. MVC 19. To nije sve

  • Navigacija
  • Two step view
  • Autentifikacija I autorizacija
  • Validatori i filteri
  • Web servisi
  • ORM
  • Ajax i DOM
  • Internacionalizacija
  • Scaffold

20. To nije sve

  • Unit testovi
  • Sigurnost (XSS, CSRF , SQL Injection..)
  • Keiranje
  • Web servisi
  • SEO
  • ...

21. Neki od MVC frameworaka

  • Zend framework
  • Ruby on Rails
  • Play!
  • Django
  • ASP. netMVC framework

22. Zend framework

  • Open sourceframeworkza PHP.
  • Nastao oktobra 2005.
  • Use-at-will framework (veoma fleksibilan).
  • Podrava vie DBMS-a : MySQL, Oracl, SQL Server, IBM DB2, SQL Lite..
  • Sve komponente su u potpunosti objektno-orientisani PHP 5.
  • http://framework.zend.com/

23. Ruby on Rails

  • Open sourceframeworkza jezik Ruby.
  • Nastao Jula 2004.
  • Moan scaffolding, mehanizam za automatsko kreiranje modela, pogleda, testova, baze...
  • Moe da se izvrava na raznim serverima, pr. Mongrel, Lighttpd,Abyss, Apache, Passenger.
  • ImplementiraConvention over Configuration, iDon't repeat yourself.
  • http://rubyonrails.org/

24. Play!

  • Znaajno olakava razvoj web aplikacija u Javi. Dostupne sve standardne Java metode
  • Direktno kompajlira kod i uitava ga na JVM, bez potrebe za restartovanjem servera.
  • Omoguava pun i jednostavan pristup HTTP metodama.
  • Pri pojavi greke u kodu, brzo pronalazi tanu liniju, ak i u templejtima.
  • http://www.playframework.org/

25. Django

  • Nastao 2005. Nazvan po jazz gitaristi Django Reinhardt
  • Primarni cilj je olakano kreiranje kompleksih web aplikacija, principom ponovne upotrebe komponenti.
  • Framework sadri i server za razvoj i testiranje.
  • Sadriframeworkza razvoj GIS aplikacija
  • http://www.djangoproject.com/

26. ASP. netMVC

  • Microsoft -ovframeworkza ASP.net, prva puna verzija izala poetkom 2009.
  • Omoguava testiranje pojedinanih komponenti.
  • Podrava sve metode standardnog ASP.net-a, ali sadri mnogo manje apstrakcija u odnosu na klasino web form okruenje.
  • Jednostavna zamena componentiframeworka .
  • www. asp . net / mVC /

27. Pregled 28. Pregled 29. Zend Framework 30. ta je unutra? 31. Zend MVC

  • Model model podataka koje koristimo u aplikaciji (sloj podataka)
    • Baza
    • Web servisi
    • Feed -ovi
    • ...
  • View ono to prikazujemo korisniku (prezentacioni sloj)
  • Controller upravlja zahtevima I odluuje o tome ta se deava (sloj logike)

32. Zend MVC - interakcija

  • Controller view
  • Controller model
  • View model
    • Viewmoe da zatrai podatke od modela, ali ne i da upisuje podatke.

33. Zend MVC 34. Zend MVC 35. Zend MVC Front Controller

  • Rukuje svim zahtevima
  • Dlegira ih ka Action Controller-ima
  • VraaResponse

36. Zend MVC Zend_Controller

  • Request sadri sve informacija o zahtevu
  • Router parsira zahtev na tokene koji predstavljaju modul, controler, akciju, parametre...
  • Dispatcher mapira tokene sa odgovarajuim klasama i metodama i inicira njihovo izvrenje
  • Response sadri odgovor i mogunostnjegovog slanja klijentu

37. Zend MVC dijagram 38. Zend MVC rutiranje

  • Podrazumevanorutiranje
    • /controller/action
    • /controller/action/key1/value1/key2/value2
    • /module/controller/action
    • /module/controller/action/key1/value1/...

39. Zend MVC Zend_Controller_Action

  • Klase koje nasleuju Zend_Controller_Action
  • Definiu javne metode za svaku akciju
  • Mogu implementirati neke od event-a: init(), preDispatch(), postDispatch()...
  • Mogu koristiti korisne nasleene metode: _forward(), _redirect(), __call()..
  • Mogue je implementirati plaginove I helpere za njih

40. Zend MVC Zend_View

  • Implementacija Zend_View_Interface omoguava kreiranje sopstevnogtemplate engine -a
  • Defaultnaimplementacija (Zend_View) koristi PHP kaotemplate engine
  • Dodeljuje i uzima vrednosti promenljivih kao atribute objekata
    • $view->var = 'some value'
  • Mogue je korienje postojeih i implementacija novih filtera i helpera

41. Zend MVC Zend_Model

  • ta je model?
  • Baza podataka
  • Web servis
  • Feed
  • Konfiguracioni fajl
  • Fajl sistem
  • Slike
  • ...

42. Zend MVC Zend_Model

  • Jo uvek ne postoji generalna komponenta pod ovim nazivom, ali je podrana sledeim:
  • Zend_Db_Table
  • Zend_Service
  • Zend_Soap
  • Zend_XmlRpc
  • Zend_Feed
  • Zend_Config
  • ...

43. Prednosti MVC-a

  • Razdvaja kod u celine prema njihovoj odgovornosti
    • Biznis logika
    • Prezentaciona logika
    • Rutiranje
  • Predvidiva lokacija koda na serveru
  • Obino koristi OOP olakano testiranje I odravanje na due staze

44. Zend MVC Sve zajedno 45. Demonstracija

  • Kreirati hello world aplikaciju korienjem Zend Tool-a.
  • Zatim kreirati novu akciju i novi kontroler.
  • Dodatilayout(two-step view pattern).
  • Dodati model.
  • Povezati se na MySQL bazu.
  • Proitati podatke iz baze.
  • Dodati formu, pokazati validatore I filtere.
  • Validirati podatke i upisati ih u bazu.

46. Linkovi

  • http://www.slideshare.net/umpirsky/napredne-tehnike-razvoja-web-aplikacija-zend-framework
  • http://code.google.com/p/librarydemo/
  • [email_address]
  • http://twitter.com/umpirsky

Kontakt 47. Pitanja i odgovori 48. Hvala na panji