Pokušavam shvatiti MVC arhikteturu, help

…i čitam i googlam, ali sve to što piše mi je pre apstraktno. :confused:
Bio bih stvarno zahvalan ako bi netko znao svojim rječima dočarati taj koncept, pa da ja dodatnim upitima možda nešto i shvatim.

Započetak, što su to model , controler i view? Ne što predstavljaju, nego što to zaista jeste? Započetak, pretpostavljam da su to folderi? xd. U tim folderima su skripte koje sve zajedno predstavljaju neki od tih elemenata?

Recimo “view” je prikaz, koji mora biti neovisan od modela i controlera.
Po čemu se taj prikaz razlikuje od skripte.php koja generira neki html sadržaj u ovisnosti nekih ulaznih parametara? Recimo da su ulazni parametri popis ljudi koji će biti prikazani unutar neke liste na stranici …i dodatno ulazni parametri su i svi tekstovi koji se prikazuju na toj stranici.

Pa to su sve apstrakcije, načini na koji organiziraš programski kod kako bi ga kasnije lakše održavao.

Model je programski kod koji barata podacima. View je programski kod koji podatke prikazuje. A controller je programski kod koji sadrži programsku logiku, tipično ovdje upravljanu ili pogonjenu “događajima” koje stvara korisnik klikećući po korisničkom sučelju i tipokovnici, a koja rezultira time da se različiti podaci iz “modela” prikazuju u različitim “viewovima”. Ništa pametno u svojoj osnovi.

Međutim, nema to nikakvu posebnu “konkretizaciju”. Neki razvojni kosturi /framework/, koji su dizajnirani na tom konceptu, su to nekako “konretizirali” (recimo, kroz neke razrede OOP-a), ali zbog njihove nužne “općenitosti” to nikada nisu posve “dovršene slike”, tj. ti bi trebao deriviranjem vlastitih razreda svesti to u končan konkretan oblik. A hoće li sav programski kod biti u istoj datoteci ili ne… ha, pa to baš i nije bit MVC-a, već više neke opće organizacije.

Ovdje čova daje jedan baš jednostavan primjer MVC-a, slikovit za webmajstore:

Općenito, možda jednom nabaviš ovo:

To su folderi, ali ne moraju biti :smile:

Zamisli to ovako:

Odeš na stranicu “www.mojrestoran.com/popis-osoblja”…
Taj link će pokrenuti kontroler koji se zove popis-osoblja…
Taj kontroler će pitati model tko sve radi u tom restoranu…na modelu je da izvuče informacije iz baze i proslijedi ih kontroleru…Kontroler nakon toga pokrene view kojemu proslijedi te podatke, a view ih prikaže…

Da, pročitao sam prije ove teme taj link na codinghorror, samo nisam izašao od tamo nešto puno pametniji. NIsam baš najjači s engleskim, mislim kužim ga, ali kad su mi apstraktne stvari, onda i hrvatski teško pomaže, hehe

E sad, kak ste vi to jednostavno objasnili…čini se stvar jednostavna. Očekivao sam neku veću mudroliju (al možda je samo nisam primjetio)

Koliko sam vas shvatio, aktivacijom neke skripte (koju pokreće određeni link) …u vrh te skrpte inkudamo drugu skriptu koja predstavlja željeni model, i tamo se odradi potrebno dohvaćanje podataka iz baze. U drugi dio skripte inkludamo skriptu koja predstavlja view, i taj view generira HTML za ispis …i u taj HTML upisuje potrebne podatke koje mu je model poviše priredio.

Tako nešto?

Pa, kao neka ad-hoc realizacija MVC arhitekture, pretpostavljam da bi moglo proći. Ako tebi to ima smisla, dakle ako ti pojednostavnjuje razumjevanje i izradu programa, onda svakako da jest. Ako ti je zbog toga što moraš ovako napraviti stvar, program još kompliciraniji, onda sasvim sigurno ne. Uoči, smisao svih tih arhitektura ili uzoraka dizajna dolazi u trenutku kada shvatiš da više ne znaš gdje je što i zašto u programu. Slično kao kada na radnom stolu više ne možeš ništa naći. Onda kreneš tražiti neka načela, principe na kojima bi mogao razvijati softver kako bi što više odgodio trenutak u kojem si izgubio kontrolu nad njim. To možeš tražiti u pojedinačnom slučaju baš svog slijedećeg projekta, tj. sam smišljati kako da si bolje posložiš stvari u svome kodu, ili možeš istraživati postoje li neke uopćene tehnike koje se mogu primijeniti u svakom projektu.

Pa tako mi upravo i je posloženo, hehe.
Samo neke stvari sam krenuo rekonstruirati, pa sam htio saznati što je to MVC, da vidim kako bi i to možda mogao primjeniti na svoj slučaj. Ali super onda da već jesam na dobrom tragu…