napredne tehnike razvoja web aplikacija - zend framework
Post on 22-Jun-2015
2.698 Views
Preview:
TRANSCRIPT
- 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
top related