Showing posts with label framework. Show all posts
Showing posts with label framework. Show all posts

Sunday, November 12, 2023

Od haosa do jasnoće, objašnjenje strukture Laravel projekta

Laravel je popularni PHP radni okvir za razvoj veb aplikacija koji se ističe svojom elegantnom sintaksom, obiljem alatki i moćnim funkcijama. Pre nego što pređete na studiranje ovog posta; obavezno prvo pogledajte uvod i instalaciju Laravel radnog okvira; pogledajte ovde; zatim se upoznajte na čemu se temelji Laravel radni okvir; pogledajte ovde; pa tek onda se vratite na ovaj post da se upoznate i sa strukturom foldera i datoteka. Tako da i pre neko što praktično počnete da koristite Laravel radni okvir; otklonite zbunjenost, neznanje i nejasnoće. Sve što vam nije jasno i pre kodiranja neophodno je da razjasnite sami sebi. Svaki profesionalan programer, svaki svoj projekat započinje pravim pitanjima. Tako ponašanje će vam u svakom slučaju uštedeti mnogo izazova i vremena. Kada kreirate novi Laravel projekat, radni okvir automatski generiše osnovnu strukturu direktorijuma i datoteka koja vam pomaže da organizujete i razvijate svoju veb aplikaciju na efikasan način. U ovom tekstu ćemo istražiti osnovnu strukturu Laravel projekta, razmatrajući glavne direktorijume i datoteke sa kojima ćete se sresti kad god započinjete novi projekat u ovom efikasno organizovanom Laravel  radnom okviru. U zavisnosti od verzije Laravel  radnog okvira; Laravel vam pruža jasnu i dobro organizovanu strukturu projekta koja olakšava razvoj i održavanje veb aplikacija. Razumevanje svih ovih direktorijuma i datoteka je ključno za efikasan razvoj u Laravel radnom okviru. Kroz ovu osnovnu strukturu, možete lako organizovati svoj kôd i razvijati visokokvalitetne veb aplikacije. Zato ćemo prvo pogledati foldere koje su se kreirali kada smo započeli novi Laravel projekat.


( Razumevanje strukture Laravel projekta je od ključnog značaja za razvoj projekta )

Pokrenite vaš terminal, izvršite update i upgrade vašeg Linux operativnog sistema, zatim sa vašeg home direktorijuma skočite na /opt/lampp/ i pokrenite XAMPP menadžer; sledećom Linux  komandom.
 
sudo ./manager-linux-x64.run

Otvoriće vam se XAMPP menadžer; i kroz njega pokrenute Apache Web Server i MySQL Database. Ovo ćete da uvek radite kada kreirate ili otvarate već gotov Laravel projekat. Zatim pokrenite Visual Studio Code i u njemu otvorite folder laravel_tutorial koji ćete pronaći u direktorijumu /opt/lampp/htdocs/ i otkucajte sledeću Linux komandu u Terminal panelu Visual Studio Code-a :

php artisan serve

Na Terminal panelu će vam se prikazati:

 INFO  Server running on [http://127.0.0.1:8000]   

Press Ctrl+C to stop the server

Sad proverite u pretraživaču da li je vaš projekat pokrenut na lokalnom serveru i portu 8000. Ukoliko je sve u redu, vratite se sa pretraživača na Visual Studio Code; i sa vaše leve strane koncentrišite se na Explorer panel. Dobro pogledajte da li vaš Laravel projekat sadrži sledeće osnovne foldere: 

app

bootstrap

config

database

public

resources

routes

storage

tests

vendor

Starije verzije Laravel radnog okvira, uglavnom sadrže iste foldere, osim folder database. Ukoliko pogledate neki Laravel  projekat na GIT hubu; onda verovatno nećete videti ni folder vendor jer ga GIT sa razlogom ignoriše; jer očekuje da se na udaljenim serverima izvršava Composer radni okvir kao deo procesa implementacije. Sve u svemu pogledajte čemu služe osnovni folderi koji čine Laravel projekat.

Osnovni folderi u Laravel projektu

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?

Tuesday, April 18, 2023

Unapredite svoj razvoj Java aplikacija sa Spring radnim okvirom

Kada tek počnete da učite Java programiranje, obično kodirate manje programe kako biste se upoznali sa osnovnim konceptima i pravilima Java programskog jezika. Kada steknete malo više iskustva, počinjete da razvijate sopstvene projekte, ali shvatite da ima još mnogo toga što treba da naučite o Java programskom jeziku. Za razliku od drugih programskih jezika, Java je vrlo kompleksan programski jezik i koristi se za razvijanje velikih projekata, što može biti zbunjujuće i za najiskusnije programere. Java programski jezik nudi mnogo mogućnosti, ali kodiranje u ovom jeziku može zahtevati veliki broj linija koda i često dovodi do grešaka. Osim toga, proces testiranja i uključivanja drugih elemenata u projekat može biti vrlo spor i zahtevan. Ako niste upoznati sa radnim okvirima za Java programski jezik, može biti teško da se nosite sa svim ovim izazovima. Stoga, preporučuje se da čak i početnici u Java programiranju uče i koriste radne okvire koji olakšavaju razvoj projekata. Radni okviri za Java programski jezik; kao što su Spring, Hibernate i Apache Struts 1 nude mnoge funkcije koje olakšavaju razvoj veb aplikacija i mikroservisa, omogućavajući programerima da brzo razvijaju i skaliraju svoje projekte. Korišćenje radnih okvira takođe može pomoći u smanjenju količine koda koji je potrebno napisati i smanjiti broj grešaka u projektu, pre svega zbog bolje optimizacije i organizacije svih poslovnih i drugih procesa koji proističu iz vašeg projekta.


( Spring radni okvir, jedan od najpopularnijih Java radni okvira )

Pogledajmo koji se to najčešći frameworks – radni okviri koriste u Java projektima.

  • Spring – jedan od najpopularnijih Java radni okvira, koji se koristi za izgradnju veb aplikacija, mikroservisa i drugih aplikacija. Nudi mnoge korisne funkcionalnosti poput sigurnosni, obrada transakcija, kontrole pristupa i druge.
  • Hibernate – popularan radni okvir za rad sa bazama podataka, koji omogućava programerima da lako izvršavaju CRUD operacije, kao i upite i pretrage u bazama podataka.
  • Apache Struts 1 – je stariji radni okvir otvorenog koda za izgradnju veb aplikacija koji pruža odličnu podršku za MVC arhitekturu.
  • Apache Struts 2 – je noviji radni okvir otvorenog koda za izgradnju veb aplikacija koji pruža odličnu podršku za MVC arhitekturu ali i podršku za AJAX.
  • Play Framework – je moderni veb radni okvir koji se koristi za izgradnju brzih i skalabilnih veb aplikacija.
  • JSF – JavaServer Faces – je radni okvir za izgradnju veb aplikacija koji se oslanja na komponente, dok omogućava programerima da brzo i lako izgrađuju korisnički interfejse.
  • JavaFX – je radni okvir za izgradnju desktop aplikacija koji omogućava programerima da brzo i lako izgrade interaktivne aplikacije sa bogatim grafičkim interfejsom.
  • Apache Wicket – je radni okvir koji se koristi za izgradnju veb aplikacija i koji se oslanja na komponente i omogućava programerima da brzo i lako izgrade kompleksne aplikacije.
  • Dropwizard – je radni okvir koji se koristi za izgradnju mikroservisa.
  • Itd.
Postoji još i drugih radnih okvira za Java programski jezik koji se koriste u različitim aplikacijama i projektima, dok izbor radnog okvira isključivo zavisi od specifičnih zahteva projekta i preferencija programera. Imajte samo u vidu da vi možete da koristite više radni okvira u istom projektu, kad to ima smisla ili bolje rečeno kad su radni okviri kompatabilni kao npr. Spring Hibernate. Mi ćemo se u ovom tutorijalu baviti Spring radnim okvirom i mogućnostima koje on pruža.

Spring radni okvir

Tuesday, March 22, 2016

Manifest, GAC i Refleksija


Pre nego što pređemo na Manifest, podsetio bi vas da dobro prostudirate dva prethodna posta Arhitektura Microsoft .NET Framework-a i Šta su sklopovi? Koje sve komponente sadrži .Net Framework i koji je proces kompajliranja i izvršavanja aplikacija programiranih u .Net programskim jezicima je toliko bitno znati, da ćemo prvo u najkraćim crtama ponoviti materiju koja se mora znati. Znači, Microsoft .Net Framework je platforma koja omogućava razvoj i izvršavanje .Net aplikacija. To je platforma koje obezbeđuje komponentnu infrastrukturu, integraciju programskih jezika, internet interoperabilnost, jednostavan razvoj, jednostavnu instalaciju, pouzdanost i bezbednost. CLR – Common Language Runtime je najvažniji deo Microsoft .Net Framework-a nadležan za aktiviranje objekata, izvršavanje bezbednosnih provera nad njima, njihovo smeštanje u memoriju, izvršavanje i uklanjanje iz memorije. CLR podržava sve programske jezike koje se mogu prevesti u MSIL – Microsoft Intermediate Language. 
 

( Sklop u jednom i sklop u više fajlova )

Sledeće komponente Microsoft .Net Framework-a su BCL – Base Class Library, biblioteka baznih klasa koja se sastoji se od klasa, interfejsa i tipova podataka koje omogućavaju korišćenje funkcija sistema i FCL – Framework Class Library koja sadrži specijalizovane biblioteke tipova podataka koje sadrže Data i XML klase. Microsoft .Net Framework sadrži i klase koje omogućavaju tehnologije za razvoj aplikacija poput konzolni aplikacija, formi, WPF aplikacija, univerzalni aplikacija, mobilni aplikacija, web servisa, web aplikacija itd. Proces prevođenja izvornog koda u izvršni u najkraćim crtama se može podeliti u dva koraka. Prvo se izvorni kod prevodi u MSIL – Microsoft Intermediate Language, zatim u mašinski kod. MSIL je jezik nižeg nivoa koji se lako pretvara u mašinski kod. On omogućuje platformsku nezavisnost, poboljšanje performansi i jezičku interoperabilnost. Jednostavno klasa koja je napisana u jednom programskom jeziku može da komunicira sa klasom pisanom u drugom programskom jeziku. CTS – Common Type System – zajednički sistem tipova definiše skup pravila koje .Net kompajleri moraju da poštuju. CTS tipovi imaju istu semantiku bez obzira u kom su programskom jeziku definisani. I naravno ne treba izostaviti ni GC – Garbidge Collection – skupljač smeća, komponentu za upravljanje memorijom. GC jedino radi sa referentnim tipovima podataka, što znači da objekte na hipu do kojih ne vodi ni jedna referenca se automatski oslobađa. GC sprečava curenje memorije, tačno vreme oslobađanja memorije nije određeno i oslobađanje resursa ne treba da se radi u destruktoru klase.

Gde se sad u sve navedeno uklapa sklop? 
 

Sunday, March 13, 2016

Arhitektura Microsoft .NET Framework-a

Microsoft .NET Framework je razvojna platforma ili kako je još zovu „Operativni sistem u operativnom sistemu“ koje omogućava lakše, brže i bezbednije programiranje i izvršavanje aplikacija i servisa pisanih za .Net tehnologiju. Microsoft .NET Framework radi na Microsoft Windows operativnim sistemima i sastoji se iz dva dela. Prvi deo je osnovna komponenta CLR – Common Language Runtime što bi se na srpskom jeziku moglo prevesti kao „Zajednički jezik u vreme izvršavanja“. CLR je u stvari virtualna mašina koja izvršava aplikacije i servere pisane za .Net tehnologiju, dok drugi deo čini BCL zajedno sa FCL (BCL\FCL). BCL – Base Class Library – Biblioteka baznih klasa je standardna biblioteka dostupna svim programskim jezicima koji koriste Microsoft .NET Framework , sadrži ogromnu kolekciju klasa, interfejsa i tipova podataka dok FCL – Framework Class Library je nadskup na BCL, koji uključuje Microsoft imenske prostore. Inače, većina programera FCL posmatra kao Microsoft-ovu implementaciju BCL-a. BCL se deli na korisnički definisanu biblioteku klasa, koju zovemo Assembly – sklop i predefinisanu biblioteku klasa koju zovemo Namespace – imenski prostor. Obadve biblioteke klasa kao jedna celina pre svega programerima omogućavaju brže, lakše i bezbednije programiranje jer programer pored gotovih isprogramiranih klasa nema potrebe da programira kod koji je već savršeno isprogramiran. Ali to nije sve, već ceo Microsoft .NET Framework omogućava i upravljanje resursima, ponovo korišćenje koda, specijalizaciju koda, razvoj programerske višejezičnosti, bezbednost, administraciju, eksploataciju itd.


( .NET Framework komponente)

Napretkom tehnologije i Microsoft .NET Framework konstantno napreduje i njegova zadnja verzija dok još pišem ovaj post je 4.6.1 realizovana 17 novembra 2015 godine. Microsoft .NET Framework je besplatan, uglavnom se instalira i update-tuje sa Microsoft Visual Studio-om iako ga možete instalirati i bez IDE, zato što je neophodan da bi aplikacije i servisi za .Net tehnologiju uopšte mogle da rade. Programeri uglavnom imaju instalirane više ili sve verzije Microsoft .NET Framework-a, tako da je retkost i videti da na jednom računaru imate instaliran samo jednu verziju Microsoft .NET Framework-a . Prva verzija Microsoft .NET Framework-a se pojavila još u januaru 2002 godine, da bi već u aprilu 2003 godine bila nadograđena na Microsoft .NET Framework verziju 1.1. Ali prava vrednost Microsoft .NET Framework-a nastaje tek od novembra 2005 godine pojavom Microsoft .NET Framework-a 2.0. Ona je sa sobom donela .Net programskim jezicima generike, partialne tipove, anonimne metode, iritatore, tip Nullable kao i delegate. U novembru 2007 godine izlaskom Microsoft .NET Framework-a 3.0 pojavile su se tehnologije poput WF, WCF i WPF i njegovom nadogradnjom na Microsoft .NET Framework 3.5 omogućene su nam auto-propertiji, anonimni tipovi, extension metode, Query izrazi kao i Lambda što u celini predstavlja programski jezik LINQ. U aprilu 2010 godine nam dolazi Microsoft .NET Framework 4.0 karakterističan po integrisanim SilverLight aplikacijama i Dynamic binding - kasnom povezivanju. Od Microsoft .NET Framework 4.5 omogućene su nam pravljenje metro aplikacija i asinhronizovane metode dok trenutna verzija Microsoft .NET Framework 4.6.1 donosi sa sobom pre svega mnogo ispravljenih bagova i poboljšanja svih segmenata, posebno u sferi kriptografije. Zahvaljujući svim izmenama i progresu Microsoft .NET Framework-a, danas na primer programski jezik C# 6.0 ima znatne izmene u samom kodiranju što omogućava brže i kraće pisanje koda.

Osnove CLR – Common Language Runtime-a