Kurs Web Application Building

Kurs Web Application Building govori o različitim vrstama web programiranja, primarno sa fokusom na kreiranje standardnih klijent–server web aplikacija. Uz osvrt na mrežno programiranje u načelu, što uključuje obnavljanje mrežnih, transportnih i aplikativnih protokola, nastava se primarno oslanja na aplikativni protokol HTTP i njegove osobenosti. Objašnjavaju se zaduženja i osobine aplikativnih i web servera u službi web aplikacija. Detaljno se analiziraju pravila funkcionisanja HTTP protokola i struktura HTTP zahteva i odgovora.

Upoznaje se sa konceptom domena i name servera, puta kojim podaci prolaze – od kucanja adrese u web pregledaču, do prikazivanja HTML dokumenta i saznaje šta je sve potrebno da bi jedna aplikacija bila funkcionalna i dostupna na internetu. 

Kurs obuhvata i Django – popularni Python okvir, korišćen često za kreiranje web aplikacija. Nakon što se ovlada logikom i konceptima web programiranja, ovaj okvir omogućava fokus na zanimljive delove kreiranja web aplikacije, a ostavljanje po strani zamornih, ponavljajućih poslova. 

Pored serverskog, kurs veliku pažnju poklanja i klijentskom programiranju. Tokom njegovog trajanja pručava se JavaScript, popularni programski jezik, najpoznatiji upravo po svojoj ulozi u klijentskim delovima web aplikacija. Mnogi popularni klijentski okviri bazirani su na JavaScriptu, od kojih su neki obuhvaćeni i ovim kursom: jQuery, Angular, Bootstrap i drugi.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: Python Development Program.

Opis i ciljevi kursa Web Application Building

Cilj kursa je da prethodno stečena znanja polaznika uobliči u produkciono upotrebljivu formu u kontekstu web programiranja. Po završetku kursa, polaznik može da kreira sopstvenu web aplikaciju ili učestvuje u timskim projektima slične tematike.

Polaznik će moći jasno da identifikuje slojeve aplikacije i da sa razumevanjem radi na svakom od tih slojeva. Osim apstraktnih tehnologija najnižeg nivoa, proučavanih u prethodnim kursevima, polaznik će kompletiranjem ovog kursa poznavati i mnoge konkretne tehnologije za rad na „backend” i „frontend” delovima sistema.

Usvojivši gradivo kursa, polaznik može da razume sadržaje poruka HTTP protokola, da kreira jednostavne ili kompleksne web aplikacije ručno ili pomoću Django okvira, sisteme za logovanje, web prodavnice, igre ili sisteme za naplatu. Može kreirati bogat i dinamičan sadržaj na klijentskom delu web aplikacije, unutar web pregledača, pomoću JavaScripta i pratećih tehnologija (jQuery, Angular i slično). 

Kurs Web Application Building će vam odgovoriti na pitanja:

1. Šta su to kolačići i sesije?

Pojmovi kolačići i sesije često se zajedno koriste kada je reč o internet sajtovima i aplikacijama, s tim što su kolačići uskladišteni na klijentskoj strani, a podaci o sesiji se mogu čuvati i na serverskoj i na klijentskoj strani. Ova dva pojma su najviše vezana za aplikativne protokole, a ponajviše za HTTP. 

Kolačić je mali deo teksta koji je uskladišten na klijentskoj strani, najčešće od strane internet pregledača, a poslao ga je server. Kolačić kao takav, uskladišten na klijentskom uređaju, može se po potrebi slati serveru. Uobičajena upotreba kolačića se može sresti pri autentifikaciji klijenta sa serverom, skladištenju korisničkih preferencija – kao što su, na primer, proizvodi smešteni u korpu prilikom elektronske kupovine, identifikaciji klijenta od strane servera, identifikaciji skoro posećenih stranica itd. 

Sesija se može definisati kao serversko skladištenje informacija o klijentu koje postoji dokle god klijent ne napusti server ili serversku aplikaciju. Ideja iza sesija je da se, umesto skladištenja velikog broja podataka koji se često razmenjaju preko kolačića u klijentu, na klijentskoj strani uskladišti jedino jedinstveni identifikator (ovakav identifikator se uglavnom zove session id). Ovaj identifikator se prosleđuje serveru kad god klijent pošalje zahtev serveru.

2. Čemu služe baze podataka?

Baze podataka nam omogućavaju strukturirano i organizovano skladištenje podataka, kao i pouzdan i brz rad sa tim uskladištenim podacima. Baza je sačinjena od elemenata koji su predstavljeni u vidu tabela sa redovima i kolonama. Ove tabele se koriste za skladištenje podataka koje želimo da smestimo u bazu. Za svaku od kolona u tabeli se unapred određuje koji će tip podatka čuvati, dok se redovi u tabeli mogu definisati kao kolekcije povezanih vrednosti. Svaki red u tabeli se može obeležiti jedinstvenim identifikatorom – primarnim ključem. 

Postoji dosta različitih sistema za upravljanje bazama podataka (MySQL, PostgreSQL..), ali s obzirom na to da Python podržava SQLite i da je biblioteka za rad sa tim sistemom deo ugrađenih Pythonovih biblioteka, u ovom kursu koristićemo SQLite. U ovom kursu obradićemo neke od osnova rada sa SQLite bazama, a za detaljnija uputstva i informacije o bazama podataka i njenim konceptima polaznik treba da prođe kroz zaseban kurs namenjen upravo ovom gradivu, odnosno kroz kurs MySQL Programming and Administration.

3. Šta je MVC?

MVC (skraćeno od Model-View-Controller) radni okvir (framework) ili šablon predstavlja način razvijanja aplikacije koji deli aplikaciju na tri glavna dela: model, prikaz i kontroler. Svaka od ovih komponenti je kreirana radi rukovanja sa specifičnim aspektom aplikacije. MVC se tradicionalno koristio najviše za desktop grafičke aplikacije, a kasnije je ovaj model razvijanja i razmišljanja prebačen i na web aplikacije, kao i na mobilne aplikacije.

MVC arhitektura se prvi put pominje 1979. godine, kada je ovu paradigmu predstavio Trygve Reenskaug, dok se prvi put kao koncept koristi u programskom jeziku Smalltalk 1987. godine. 

Pored podele same aplikacije u tri različite komponente, model-prikaz-kontroler šablon definiše i njihovu međusobnu povezanost. Model je zaslužan za upravljanje podacima aplikacije. Tačnije, prima korisničke upite od kontrolera. Prikaz je zapravo izgled same aplikacije, dok kontroler reaguje na akcije korisnika i vrši interakciju nad podacima modela. Kontroler prima korisničku akciju, opciono je validira i šalje modelu, pa se tako može reći da predstavlja spregu između modela i prikaza. 

Web Application Building

4. Šta je JavaScript i gde ga koristimo?

JavaScript spada u najpopularnije skriptne jezike na internetu. Jedna od njegovih glavnih osobina je funkcionalnost na svim poznatijim internet pregledačima, kao što su Internet Explorer, Mozilla, Chrome, Firefox, Netscape i Opera. Prva verzija ovog programskog jezika pojavila se 1995. godine, kada se zbog razvoja interneta pojavila potreba za skriptnim jezikom klijentske strane. 

JavaScript je skriptni ili programski jezik koji omogućava primenu složenih funkcija na web stranicama, kao što su na primer:

  • dinamičko prikazivanje informacija;
  • ažuriranje sadržaja u realnom vremenu;
  • interaktivne mape;
  • 2D i 3D animacije. 

U ovom kursu ćemo naučiti osnove JavaScripta, kreiranje promenljivih i funkcija, i kroz primere uvideti sve prednosti koje nam ovaj programski jezik nudi. U pojedinim lekcijama bavićemo se naprednijim kodiranjem, odnosno obradom događaja, prikupljanjem korisničkih inputa, kao i slanjem zahteva ka Python serveru koji smo kreirali u kursu Python Net Programming.

5. Šta je AJAX i čemu služi jQuery?

AJAX je tehnologija koja koristi HTTP protokol da učita podatke bez ponovnog učitavanja stranice. Naziv AJAX je skraćenica za Asynchronous JavaScript and XML. Korišćenjem ove tehnologije možemo da šaljemo podatke ka serveru i primamo odgovor asinhrono. Time se postiže dinamičnost stranice, jer se sadržaj brže učitava u realnom vremenu bez potrebe za osvežavanjem kompletne stranice.

John Resig je objavio jQuery avgusta 2006. godine i promenio frontend development zauvek. Uskoro je jQuery postao najpopularnija JavaScript biblioteka. Reč je o biblioteci koja omogućava jednostavnije pisanje JavaScript koda. Ova biblioteka olakšava:

  • HTML/DOM manipulaciju;
  • CSS manipulaciju;
  • manipulaciju događajima;
  • rad sa efektima i animacijama;
  • rad sa AJAX-om.

6. Šta je Django?

Django je Python web framework višeg nivoa namenjen brzom razvoju bezbednih sajtova lakih za održavanje. Kao takav nam i sam rešava dosta problema koji mogu nastati tokom kreiranja, konfiguracije i postavljanja sajtova, a sve to kako bismo se mi, programeri, više usredsredili na pisanje samih aplikacija koje stoje iza sajta. Besplatan je i otvorenog koda, sa velikom bazom korisnika i dosta detaljnom dokumentacijom. 

Django je, između 2003. i 2005. godine, prvobitno razvio tim web programera koji su radili na jednom sajtu online novina. Nakon kreiranja više sličnih sajtova, uvideli su da je dosta kodne baze bilo samo ponovo iskorišćeno. Ovaj zajednički kod koji su koristili na više sajtova evoluira u otvoreni kod pod nazivom Django u julu 2005. godine. 

Od svog nastanka, Django evoluira i napreduje kao web framework – od prve verzije 1.0, objavljene u septembru 2008. godine, svaka nova verzija je dodavala ispravke za poznate bagove, kao i novu funkcionalnost, kao što je podrška za nove sisteme baza podataka, sisteme za šablone, keširanje, generičke funkcija za preglede i klase, a sve u cilju smanjenja vremena koje je potrebno programeru da neke od tih opštih aspekata iskodira.

7. Koliko su aplikacije razvijene koristeći Django radni okvir sigurne?

Django kao radni okvir prilikom instalacije dolazi sa mnogo sigurnosnih rešenja. Međutim, nisu sva sigurnosna podešavanja automatski aktivirana. U zavisnosti od okruženja i potreba aplikacije, na programeru je da pažljivo izabere i konfiguriše sva podešavanja. Django poseduje sopstvenu komandu za analizu sigurnosti projekata i aplikacija, koja se zove check. Pokretanjem ove komande možemo dobiti uvid u moguće sigurnosne nedostatke, kao i uputstva kako da te nedostatke prevaziđemo.

Ukoliko već posedujemo objavljenu aplikaciju, možemo iskoristiti sajt Observatory kompanije Mozilla, koji će nam skenirati sajt i obavestiti nas o potencijalnim problemima i predloženim rešenjima. 

Verzija Djanga igra bitnu ulogu u sigurnosti i bitno je koristiti najnoviju stabilnu verziju. Na primer, verzija 1.11 (primera radi, u ovom kursu koristimo Django 3.0.8) jeste poslednja verzija koja je podržavala Python 2.x. Takođe, izbor verzije Djanga direktno uslovljava u kom procentu i kojim napadima će naša aplikacija biti podložna.

Plan i program predavanja:

Modul 1 – Web i aplikativni server

  • Aplikativni protokoli
  • HTTP parametrizacija
  • Kolačići i sesije
  • Upravljanje bazom podataka
  • MVC šablon
  • Lokalizacija

Modul 2 – Klijentsko programiranje

  • Programski jezik JavaScript 
  • Document Object Model
  • AJAX
  • Bootstrap biblioteka
  • jQuery biblioteka

Modul 3 – Rukovanje Django frameworkom

  • Okruženje i životni ciklus
  • Rad sa pogledima i šablonima
  • Mapiranje zahteva
  • Procesiranje formi

Modul 4 – Objavljivanje aplikacije

  • Objavljivanje Python web aplikacije
  • Osiguravanje, testiranje i balansiranje opterećenja aplikacije 

Polaznici kursa Web Application Building

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok je otvoren!

Da saznate sve o upisu, kliknite ovde