Showing posts with label http. Show all posts
Showing posts with label http. Show all posts

Thursday, November 09, 2023

Temelji Laravel razvoja, sve što trebate znati o MVC, HTTP glagolima i REST-u

U prethodnom postu, pogledajte ovde; smo se maksimalno posvetili da razumete zašto Laravel framework - radni okvir služi, koliko je koristan i onda smo svu pažnju usmerili na instalaciju istog zbog kompleksnosti i prethodnih instalacija koje ovaj radni okvir zahteva. Pre nego što počnemo uopšte da koristimo Laravel neophodno je da vas bar delimično upoznamo sa osnovama ili temeljom na kom je baziran Laravel radni okvir. Ali prvo da vidimo na kom principu radi Laravel radni okvir. Pojavom AI – veštačke inteligencije, došlo je do pometnje u svetu programera, gubljenje poslova i to je definitivno dovelo do toga da mnogi programeri shvate da biti stručnjak za jedan programski jezik ili jedan framework – radni okvir; više nije dovoljno. Zato se danas i pored korišćenja AI – veštačke inteligencije neke stvari rade brže i lakše; masovno uče i drugi programski jezici i radni okvirovi. Tako da nije slučajnost na primer da neko ko poznaje Angular radni okvir traži neke stvari koje ovaj radni okvir sadrži u Laravel radnom okviru i obratno. Međutim, tih stvari nema jer je Laravel frontend framework koji je baziran na TypeScript-u i radi na strani klijenta dok Laravel je backend framework koji je baziran na Symfony; takođe radnom okviru baziranom na backend i radi na strani servera kao i što koristi PHP programski jezik. Znači da ponovimo, Laravel framework – radni okvir je backend i radi na strani servera. On može da radi neke stvari koji mogu takođe da rade neki radni okvirovi ali koji rade na strani servera, može da ne radi druge stvari ili može da radi neke stvari ali na drugačiji način. Laravel radni okvir je pre svega najpopularniji radni okvir među PHP programerima i to pre svega zbog mogućnsti koje može da odradi i zbog toga na koji način i šta sve sadrži ovaj radni okvir.


( Laravel web framework - radni okvir, najpopularniji među PHP programerima )

Laravel je poznat po svojoj elegantnoj i čitljivoj sintaksi koja olakšava razvoj veb aplikacija. Ima mnoge ugrađene alate i funkcionalnosti koje programerima štede vreme i trud. Laravel dolazi sa Eloquent ORM-om, koji omogućava jednostavno i efikasno upravljanje bazama podataka. Ovo olakšava rad s bazama podataka i ubrzava razvoj. Laravel radni okvir dolazi s brojnim ugrađenim mehanizmima sigurnosti kao što su zaštita od CSRF napada, kontrola sesija i autentikacija. To olakšava programerima održavanje sigurnih aplikacija. On takođe ima moćan alat za upravljanje aplikacijama koji se zove Artisan. Pomoću njega možete brzo generisati kod, izvoditi migracije, testirati aplikacije i još mnogo toga. Laravel podržava modularni pristup razvoju, što znači da možete koristiti komponente i pakete razvijene od strane zajednice ili napraviti svoje, kako biste ubrzali razvoj aplikacija. On se lako integriše s drugim popularnim alatima i servisima, kao što su Redis, Memcached, Elasticsearch i drugi. On takođe prati najnovije trendove u razvoju veb aplikacija, uključujući podršku za RESTful API-je, WebSocket-e i druge moderne tehnologije. Laravel  je pristupačan i moćan radni okvir koji je pogodan kako za manje projekte tako i za kompleksne aplikacije, što ga čini jednim od najpopularnijih radnih okvira u PHP ekosistemu. Može da radi i na drugim operativnim sistemima ali Linux operativni sistem je njegovo prirodno okruženje. Imajte to u vidu kada imate mogućnost da birate OS na kom ćete raditi sa Laravel radnim okvirom.

Šta je MVC i zašto se koristi u Laravel-u?

Friday, May 27, 2016

Asinhrono, async i await višenitno programiranje

Dolaskom C# programskog jezika verzije 5, u C# programski jezik su uključene dve nove ključne reči async i await, dve komande koje ne idu jedna bez druge. Laički rečeno, tamo gde vidite da je metoda definisana sa async, u toj metodi trebate imati i ključnu reč await. Njihova magija je u tome što one omogućavaju višenitno programiranje ali bez direktnog formiranja niti. Sve do pojave asinhronog programiranja, svi vaši .Net programi bez dodatnog programiranja su sve operacije izvršavale sekvencijalno. To u prevodu znači da su se operacije izvršavale jedna po jedna i svaka operacija je morala čekati da se svaka prethodna operacija izvrši do kraja. Kad god napravite aplikaciju poput Windows Form, ona poseduje samo jednu nit; Main thread – glavnu ili UI nit; i sad zamislite da u toj niti koristite I/O operaciju. Vaš Windows će tada čekati dok vi pristupate nekom fajlu na hard disku ili mreži dok god se vaša operacija ne izvrši do kraja. Zbog toga Windows pauzira vašu nit tako da on ne koristi ni jedan CPU resurs ali na taj način zadržava memoriju.


( Asinhronizovano programiranje )

Asinhrono programiranje je jednostavno rešilo ovaj problem, jer asinhrono programiranje za razliku od sekvencijalnog ili sinhronog programiranja vam omogućava da vi pokrenete neku metodu i nastavljate da radite neki drugi posao dok se metoda ne završi. Inače sa sinhronim programiranjem pokrećete neku metodu; morate da čekate da se metoda izvrši do kraja; prosledi vam se neki rezultat i onda se nastavlja vaše izvršavanje programa. Danas se u programiranju koristi i jedna i druga varijanta u zavisnosti da li radite sa I/O operacijama ili jednostavno vam je potrebno više vremena da se izvrši neka metoda. Danas celi koncept Funkcionalnog programiranja je daleko bolji kad se radi preko asinhronizovani delegata, dok na primer UWP ili Phone aplikacija bez asinhroni metoda je nezamisliva jer svaka metoda koja radi duže od 2 sekunde je neprihvatljiva. Asinhrono programiranje se koristi kad imate kompleksne upite koje uzimaju dosta vremena, šaljete email-ove ili radite sa fajlovima. Nadam se da vam je sad jasno koliko je asinhrono programiranje bitno, ali takođe treba da znate da asinhronizovano programiranje nije lako jer se vi morate pobrinuti da ništa ne krene pogrešno, takođe je komplikovano debugovanje i održavanje istog. Ključnu reč async koristite da markirate metodu za asinhronizovanu operaciju. Na taj način vi samo dajete signal vašem kompajleru da će se nešto asinhronizovano desiti. Kompajler tada transformiše vašu kod u programersku C# paradigmu koju zovemo state machine. Znači pokreće sinhronično trenutnu nit, ali vam omogućava da vašu metodu razdvojite u više delova. Kad koristite await ključnu reč, kompajler će generisati kod koji će te videti bez obzira da li je vaša asinhronizovana operacija završena. Ako se vaša metoda samo sinhronizovano nastavlja, u prevodu nije završena; onda će state machine spojiti sa kontinuiranom metodom koja će se pokrenuti kada se task završi. Prepustiće kontrolu pozivajućoj niti i ta nit će se moći koristiti za drugi posao. Imajte u vidu da asinhronizovana metoda može da vrati rezultat samo kao void, Task i Task<T>.

Kako izgleda neki praktični primer asinhronog programiranja?