Kada prestati raditi sa gotovim aplikacijama i platformama?

Ovisi o tome kakva ti je organizacija datoteka, folder, fileova, funkcija itd.

Daj ovo malo pojasni. Kojih resursa, osim možda vremenskih? Želiš reći da proceduralno programiranje zauzima i troši više računalnih resursa od objektno orijentiranog, može neki benchmark ili tako nešto, neku referencu molim?

Proučavao sam neke frameworke prošle godine i odlučio se da ipak idem od nule. Sad imam svoj framework koji je zadnjih mjesec dana malo zbrzan zbog pritiska da bude gotovo, no budem ga poredio. Također OOP, MVC ali iskorišteno najbolje/brže i iz proceduralnog jer držim da su za web ipak performanse bitnije.

Na osnovu desetak dana proučavanja bi preporuču DooPHP ili Yii.
Za prvi mi se učinilo da nema dovoljno dokumentacije jer je još novi (iako teoretski ima sve dokumentirano, al ne najjasnije), a kod Yii mi zasmetala potreba za command line-om i nekakvim spominjanjem regeneracije stranice / forme nakon male izmjene u bazi, ali to sam možda nešto krivo shvatio, no uskoro počnem raditi u nekom od ta dva pa budem znao više. Još proučim ovaj FuelPHP.
Cake i neki sl. spomenuti su prespori.

Mislio sam na pisanje više koda nego što je potrebno.

Žasto se nebi moglo proceduralno dobro raditi zar nije wordpress napravljen proceduralno.

Nažalost niti s ovim se ne mogu složiti.

Evo jedan banalan primjer funkcije za izbacivanje upisanog imena u formu
OO način:

dakle 20 linija koda

evo običan proceduralni način

dakle 11 linija koda.

Na ovoj maloj usporedbi je razlika od 9 linija, a sad zamisli projekt koji broji 10ke tisuća linija koda, dodaj na to abstrakcije, enkapsulacije i još sto raznih čuda i dobit ćeš razlike koje su ogromne.

OO nije namijenjen šteđenju resursa u vidu manjeg linija koda, nego sasvim nečem drugom. Najveći problem kod PHP-a i je to što on uopće nije zamišljen kao OO jezik nego običan template parser za HTML, a sad se pokušava od njega napraviti nešto što on nije.

Uz to dodaj mlade i nadobudne klince koji misle kad napišu jednu klasu kao što sam ja gore napisao da su naučili OO, ali nije problem samo klinaca ima i puno starijih koji tako misle.

Jbg, ja ga stalno izbjegava navesti kao primjer, a ti si ga baš naveo. Najgori mogući.

[quote=“CreatifCode”]Na koji način si može uštediti tonu vremena programiranjem u objektno orijentiranom načinu u odnosu na proceduralni, ne kužim daj pojasni.

primjer

Ovo je smo primjer, ali ako treba možemo mi i puno kompleksnije primjere odrađivati ovdje usporedbe radi.

Druga stvar ako imaš tonu i tonu klasa i fileova koje ćeš koristiti i kasnije u drugim projektima, da li si svjestan da i tada govorimo o frameworku, samo što to nije MVC framework nego ajmo reći nekakav component based framework. Nekako imam osjećaj da ti ustvari sebi ne znaš rastumačiti što je to framework i čemu to služi.

I treća stvar ne vidim zašto ne bi mogao napraviti i dobru i kvalitetnu aplikaciju koristeći proceduralno programiranje.[/quote]

najjednostavniji primjer:
-imas tonu podataka za nekog korisnika koje trebas pozivati iz baze, da se ne vezem sad za bazu, zasto bi ti za te podatke pravio array u samom fileu ili nekom includeu pa popunjavao, sta ako ti fali neki podatak ili ne valja, zar ne bi bilo bolje da ucitavas sve s klasom…uglavnom, sad zamisli da zelis ucitati podatke odjednom za vise podataka, kolki ti treba array:
korisnik[korisnik][podatci_korisnika] - cemu to raditi sa proceduralnim programiranjem, i onda moras za svakog novog korisnika:
korisnik[0…n-tog][podatak] = …

a to sve mozes jednostavno sa klasom i objektom neograniceno puta, i ktome jednostavnije je mijenjati sve u jednoj klasi nego u vise funkcija u proceduralnom programiranju… na constructu unosis default vrijednosti za varijable… itd… puno manje koda za isti posao…

dalje, primjer za mysql bazu, sve napravis u jednoj klasi i koristis za koliko zelis konekcija odjednom…

uglavnom ne moras mi objasnjavati sta je framework jer nisam idiot da to ne kontam, okani se glupe rasprave…

sto se tice kvalitetne aplikacije, naravno da mozes, programirao sam godinama u C-u pa znam sta znaci proceduralno programiranje, ali da sam mogao to sve raditi objektnim, sigurno se ne bih zamarao proceduralnim i tonama koda… No istina je da su programski jezici s objektnim programiranjem sporiji od onih s proceduralnih ali danas to vise i nije bas toliko bitno jer su racunala sva brza…

uglavnom ne vidim poantu tvojeg pisanja osim da bezveze pametujes, ja nista pogresno rekao nisam i stojim iza toga da je objektno daleko bolje programiranje(naravno u p. jezicima gdje postoji) od proceduralnog i ne vidim veće gluposti ne koristiti mogućnost oop u php kad vec ima tu mogucnost…

[quote=“zerocoolos”]najjednostavniji primjer:
-imas tonu podataka za nekog korisnika koje trebas pozivati iz baze, da se ne vezem sad za bazu, zasto bi ti za te podatke pravio array u samom fileu ili nekom includeu pa popunjavao, sta ako ti fali neki podatak ili ne valja, zar ne bi bilo bolje da ucitavas sve s klasom…uglavnom, sad zamisli da zelis ucitati podatke odjednom za vise podataka, kolki ti treba array:
korisnik[korisnik][podatci_korisnika] - cemu to raditi sa proceduralnim programiranjem, i onda moras za svakog novog korisnika:
korisnik[0…n-tog][podatak] = …

a to sve mozes jednostavno sa klasom i objektom neograniceno puta, i ktome jednostavnije je mijenjati sve u jednoj klasi nego u vise funkcija u proceduralnom programiranju… na constructu unosis default vrijednosti za varijable… itd… puno manje koda za isti posao…

dalje, primjer za mysql bazu, sve napravis u jednoj klasi i koristis za koliko zelis konekcija odjednom…

uglavnom ne moras mi objasnjavati sta je framework jer nisam idiot da to ne kontam, okani se glupe rasprave…

sto se tice kvalitetne aplikacije, naravno da mozes, programirao sam godinama u C-u pa znam sta znaci proceduralno programiranje, ali da sam mogao to sve raditi objektnim, sigurno se ne bih zamarao proceduralnim i tonama koda… No istina je da su programski jezici s objektnim programiranjem sporiji od onih s proceduralnih ali danas to vise i nije bas toliko bitno jer su racunala sva brza…

uglavnom ne vidim poantu tvojeg pisanja osim da bezveze pametujes, ja nista pogresno rekao nisam i stojim iza toga da je objektno daleko bolje programiranje(naravno u p. jezicima gdje postoji) od proceduralnog i ne vidim veće gluposti ne koristiti mogućnost oop u php kad vec ima tu mogucnost…[/quote]

Kaj se uzrujavaš bezveze. Uglavnom napisao si puno toga, a nisi ništa rekao.

ugledao sam se na tebe :wink:

Idem si napraviti kavu, pa ti odgovorim na tvoj post na dugačko i na široko.

slobodno, ne planiram se glupirati vise u raspravi, mozes ti i za mene :wink:

Sve u svemu koliko sam shvatio iz vaše konverzacije i mojih prijašnjih iskustava, OOP i proceduralno programiranje, suštinska razlika jest pojednostavljenje u kompliciranim i velikim programima na račun OOP-a.
Primjer koji si ti naveo @CreatifCode je primjer koji može poslužiti samo igranju s programiranjem i nikako nije prezentabilan primjer, kad se stvar počne komplicirati i povećavati sigurno da je OOP bolji izbor, kao što je naveo @zerocoolos, no to naravno ovisi i o platformi.
Al sam se uključio a u C++ sam stao na Hello World . :slight_smile:

[quote=“CreatifCode”]Nažalost niti s ovim se ne mogu složiti.

Evo jedan banalan primjer funkcije za izbacivanje upisanog imena u formu
OO način:

dakle 20 linija koda

evo običan proceduralni način

dakle 11 linija koda.
[/quote]

Točno, ali da si malo manje subverzivna osoba vjerojatno bi shvatio da se ono moje odnosilo na ponavljanje koda. Što ako ja želim ponoviti sada taj isti kod još na 26 različitih mjesta?

Koristit ću samo
echo $name->get_name();

umjesto kopiranja proceduralnog iovo nanovo.

Savjet: budi malo manje subverzivan, ružno izgleda u kontinuitetu (ma vjerovao ti to ili ne).

Mislim da količina koda ne igra presudnu ulogu već troškovi održavanja i nadogradnje.
Nažalost mislim da rijetko tko prati troškove uzrokove kodom kod održavanja ili nadogradnje.
Većinom se to gleda u radnim satima a pitanje koliko je produktivnih radnih sati te sa kakvim kodom se radilo.

Radio sam na jednom golemom library i bilo se radilo o proceduralnom programiranju i nadogradio kod sa nekom varijablom u for petlji ali ta varijabla se kasnije koristila i time sam resetirao varijable koje su se koristile kasnije.
Recimo to se nebi dogodilo u OOP zbog enkapsulacije i moja nova varijabla nebi utjecala na ostatak sustava.
Eto to je jedan od razloga zašto se treba odlučiti za OOP.

No s druge strane isto tako radio na golemom library koji je bio kompliciran da bilo kakva nadogradnja traje danima.
A problem je bio u dizajnu koda iako je bio dosta kvalitetno napisan bilo je pogreška da krajnja upotreba klasa nije imala definiran interface već je korisnik toga library morao sam cijelo vrijeme izvlačiti i tražiti po cijelom library što i kako.
Rješenje za unapređenje je bilo da se na izgraditi nad cijelom librarijem (koji je bio dio većeg library) interface koji definira na koji način nadogradnja radi te na koji način krajnji korisnik koristi kod i nadogradnju.

Kod OOP nije važno da samo znate pravila igre, već što i ta pravila rade, zato bi OOP trebalo biti kompliciranije za izvesti a prednosti bi trebali omogučavati neke stvari. Nažalost danas se u većini slučajeva OOP svodi na pisanje klase.

[quote=“gorrc”]Mislim da količina koda ne igra presudnu ulogu već troškovi održavanja i nadogradnje.
Nažalost mislim da rijetko tko prati troškove uzrokove kodom kod održavanja ili nadogradnje.
Većinom se to gleda u radnim satima a pitanje koliko je produktivnih radnih sati te sa kakvim kodom se radilo.

Radio sam na jednom golemom library i bilo se radilo o proceduralnom programiranju i nadogradio kod sa nekom varijablom u for petlji ali ta varijabla se kasnije koristila i time sam resetirao varijable koje su se koristile kasnije.
Recimo to se nebi dogodilo u OOP zbog enkapsulacije i moja nova varijabla nebi utjecala na ostatak sustava.
Eto to je jedan od razloga zašto se treba odlučiti za OOP.

No s druge strane isto tako radio na golemom library koji je bio kompliciran da bilo kakva nadogradnja traje danima.
A problem je bio u dizajnu koda iako je bio dosta kvalitetno napisan bilo je pogreška da krajnja upotreba klasa nije imala definiran interface već je korisnik toga library morao sam cijelo vrijeme izvlačiti i tražiti po cijelom library što i kako.
Rješenje za unapređenje je bilo da se na izgraditi nad cijelom librarijem (koji je bi dio većeg library) interface koji definira na koji način nadogradnja radi te na koji način krajnji korisnik koristi kod i nadogradnju.

Kod OOP nije važno samo znate pravila igre, već što i ta pravila rade, zato bi OOP trebalo biti kompliciranije za izvesti a prednosti bi trebali omogučavati neke stvari. Nažalost danas se u većini slučajeva OOP svodi na pisanje klase.[/quote]

Upravo o ovome i ja cijelo vrijeme pričam. Nije cilj OOP-a napisati 10 funkcija omotanih u class Foo {}, nego nešto sasvim drugo, ali to ovima nikako ne mogu pokazati, ma koliko se ja trudio.

[quote=“toniperic”]Točno, ali da si malo manje subverzivna osoba vjerojatno bi shvatio da se ono moje odnosilo na ponavljanje koda. Što ako ja želim ponoviti sada taj isti kod još na 26 različitih mjesta?

Koristit ću samo
echo $name->get_name();

umjesto kopiranja proceduralnog iovo nanovo.[/quote]
Pa nečeš. Koristiti ćeš samo echo $name;

Nećeš kopirati ništa nanovo.

Ovo znači riječ subverzivan: rušilački, razoran, prevratnički
izvor :
http://hjp.srce.hr/index.php?show=search_by_id&id=d1pjWRY%3D&keyword=subverzivan

Ja se duboko nadam da si znao značenje te riječi, a ako jesi daj mi pojasni kakav sam ja to rušilac, razornik, prevratnik, molim te?

[quote=“zerocoolos”]najjednostavniji primjer:
-imas tonu podataka za nekog korisnika koje trebas pozivati iz baze, da se ne vezem sad za bazu, zasto bi ti za te podatke pravio array u samom fileu ili nekom includeu pa popunjavao, sta ako ti fali neki podatak ili ne valja, zar ne bi bilo bolje da ucitavas sve s klasom…uglavnom, sad zamisli da zelis ucitati podatke odjednom za vise podataka, kolki ti treba array:
korisnik[korisnik][podatci_korisnika] - cemu to raditi sa proceduralnim programiranjem, i onda moras za svakog novog korisnika:
korisnik[0…n-tog][podatak] = …

a to sve mozes jednostavno sa klasom i objektom neograniceno puta, i ktome jednostavnije je mijenjati sve u jednoj klasi nego u vise funkcija u proceduralnom programiranju… na constructu unosis default vrijednosti za varijable… itd… puno manje koda za isti posao…

dalje, primjer za mysql bazu, sve napravis u jednoj klasi i koristis za koliko zelis konekcija odjednom…

uglavnom ne moras mi objasnjavati sta je framework jer nisam idiot da to ne kontam, okani se glupe rasprave…

sto se tice kvalitetne aplikacije, naravno da mozes, programirao sam godinama u C-u pa znam sta znaci proceduralno programiranje, ali da sam mogao to sve raditi objektnim, sigurno se ne bih zamarao proceduralnim i tonama koda… No istina je da su programski jezici s objektnim programiranjem sporiji od onih s proceduralnih ali danas to vise i nije bas toliko bitno jer su racunala sva brza…

uglavnom ne vidim poantu tvojeg pisanja osim da bezveze pametujes, ja nista pogresno rekao nisam i stojim iza toga da je objektno daleko bolje programiranje(naravno u p. jezicima gdje postoji) od proceduralnog i ne vidim veće gluposti ne koristiti mogućnost oop u php kad vec ima tu mogucnost…[/quote]

Počeo sam pisati odgovor ali sam odustao jer mi se naprosto nije dalo. Možda kasnije.

sve 5, ja kod svojega stojim… kad budem opet u civilizaciji(za 5-6 dana), a ti ako napises budem procitao…

no samo da nadodam, kad budes jednom pravio skripte od 100 000 linija u c-u proceduralno, shvatit ces da je to totalno gubljenje vremena jer da imas mogucnost objektnog dobio bi puno toga… da ne govorim o promjeni nekog dijela skripte i snalazenje u svemu tome… razdvajao u zasebne fileove ili ne uvijek moras mislit da li je neka varijabla definirana, kod php-a to nije problem jer ne moras misliti o memoriji i curenju memorije, niti npr o velicini arraya i puno toga, ali kod programskih jezika gdje kompajliras moras misliti i na to, zato je po meni Java(koju sam tek poceo ozbiljnije uciti i koja je iskljucivo objektno orijentirana) za sad neusporedivo bolja od c-a, brzina je jedina mana, no ne previse. Svaki programski jezik ima svoje dobre i lose strane.

@gorrc
Naravno da količina koda ne igra ulogu niti sam išao na to, već sam isto tako želio pokazati da je puno lakse raditi klase i objekte za vecinu toga u php-u, prednosti su mnoge, da ne ulazim u pojedinosti. Kod php-a se nikima cini proceduralno kao laksi pristup, ali ono sto sam naucio godinama programirajuci da kada programiras tonu koda preceduralno i mijenjas neki dio, da je to posao za usrat se, da sam imao mogucnost oop bilo bi puno lakse, ne kazem jednostavnije, jer to nije nikako. Za ulazak u dublje rasprave nemam volje niti vremena, no ne volim kada me netko uvjerava(ne govorim ovo za tebe) da treba izbjeci oop jer je mozda u tom trenutku to jednostavnije, a pogotovo jer se nikad ne zna do koje se mjere ta skripta moze razviti…

uglavnom dosta mi rasprave jer ovo moze ici u nedogled, i proceduralno ima svoje prednosti, a pogotovo objektno…

[quote=“CreatifCode”]Pa nečeš. Koristiti ćeš samo echo $name;

Nećeš kopirati ništa nanovo.

Ovo znači riječ subverzivan: rušilački, razoran, prevratnički
izvor :
http://hjp.srce.hr/index.php?show=search_by_id&id=d1pjWRY%3D&keyword=subverzivan

Ja se duboko nadam da si znao značenje te riječi, a ako jesi daj mi pojasni kakav sam ja to rušilac, razornik, prevratnik, molim te?[/quote]

Da ne gledam sad link, proguglaj negdje onda i političku subverziju, možda ti to pomogne ako već ne znaš značenje te riječi pošto kažeš da si guglao. Slično je, vjerovao ili ne. :wink:

Ukratko - htjedoh reći da si krajnje neprijateljski nastrojen o čemu god da se radi, a mislim da niti ne moram spomenuti da si uvijek u pravu. Kada si ciničan i spuštaš drugima (obično početnicima) također si u pravu.
Međutim i onda kada jesi u pravu i hoćeš nekome nešto pokazati, to radiš kao da radiš preko one stvari i malo je reći da omalovažavaš druge. Radije onda nemoj ništa ni napisati nego biti takav jer meni, kao osobi koja redovito dolazi na forum da bi uglavnom samo čitala novosti, se smuči gledajući/čitajući takve stvari. Nhf ali mislim da je bolje da ti kažem prijateljski ono što sam ja zapazio i što bode u oči nego da šutim.

[quote=“CreatifCode”]Pa nečeš. Koristiti ćeš samo echo $name;

Nećeš kopirati ništa nanovo.[/quote]

Krivi primjer onda. Neka sami poziv na neku klasu povuče za sobom više stvari, i nikakav output ne mora biti na kraju kao u tom primjeru, već neka se bavi procesuiranjem nekih podataka. Što ako ja istu tu radnju/radnje ponoviti na 26 različitih mjesta? Cijeli kod moram kopirati, dok ovako praktičnim i logičnim grananjem mogu iste stvari održavati i koristiti lakše/brže, pogotovo kada se radi o 26 ponavljanja a ne 2.

Kaže ovako:
subverzija
pol. rušenje važećih vrijednosti ili postojećeg stanja u društvu iznutra

http://hjp.srce.hr/index.php?show=search_by_id&id=d1pjWRU%3D&keyword=subverzija

i

[quote=""]Politička subverzija je naziv aktivnosti u tajnosti, koje imaju za cilj oboriti postojeći društveni sustav kroz infiltraciju i subverziju. Pojam se često koristi diskriminirajuće ili manipulativno za skupine ljudi za koje se tek sluti ili samo navodi njihovu navodnu subverzivnost. U nekim režimima ukupnoj se opoziciji predbacuje subverzivnost.

Metode subverzije mogu biti:
metode terora: širenje panike, prijetnje iznuđivanjem, krađe, otmice, ozljede ili ubojstva predstavnika, članova, dobrovoljnih pomagača ili pomoćnika postojećeg poretka.
diverzantsko djelovanje: Otudivanje, oštećenje ili uništenje robe i komponenti infrastrukture, koja služi za održavanje postoječeg poretka.
diverzija: širenje glasina ili neistinitih informacija, ili izobličenje poruka i dokumenta, otvorene ili skrivene propagande protiv tog poretka.

Stvaranje subkulture koja je u suprotnosti sa tradicionalnom službenom kulturom i službenim sustavom vrijednosti ili u suprotnosti s vlastitom kulturom.

U Južnoameričkim vojnim diktaturama izmedu 1970. i 1980. godine i realsocijalističkim diktaturama pojam subverzija i “antidržavni” je bio zajednički pojam za sve političke protivnike. To je služilo kao opravdanje za uhićenja i ubojstva desetaka tisuća ljudi.[/quote]ovo je s

I dalje ne shvaćam tvoj post o mojoj subverzivnosti.

[quote=“toniperic”]Ukratko - htjedoh reći da si krajnje neprijateljski nastrojen o čemu god da se radi, a mislim da niti ne moram spomenuti da si uvijek u pravu. Kada si ciničan i spuštaš drugima (obično početnicima) također si u pravu.
Međutim i onda kada jesi u pravu i hoćeš nekome nešto pokazati, to radiš kao da radiš preko one stvari i malo je reći da omalovažavaš druge. Radije onda nemoj ništa ni napisati nego biti takav jer meni, kao osobi koja redovito dolazi na forum da bi uglavnom samo čitala novosti, se smuči gledajući/čitajući takve stvari. Nhf ali mislim da je bolje da ti kažem prijateljski ono što sam ja zapazio i što bode u oči nego da šutim.[/quote]

Za takve stvari postoji filter i blokiranje korisnika pa ako sam ti toliko naporan jednostavno me blokiraj. :wink: Neću se naljutiti.

Ništa onda pozoveš 26 puta funkciju koju bi pozivao i ovako i onako samo je razlika na koji način ćeš je pozvati. Dali će to biti $foo->bar() ili samo bar() ti je toliko svejedno da ne možeš uopće pojmiti koliko. Ne moraš uopće kopirati cijeli kôd ni u proceduralnom ni OO programiranju. Bez obzira što koristio proceduralno ili OOP opet ćeš tu funkciju promijeniti na samo jednom mjestu u tvojoj aplikaciji i promjene će biti vidljive svagdje.

Ja vam samo želim pokazati da imate malo krivo shvaćanje OOPa kao takvog, onaj koji jedini to shvaća u ovoj cijeloj raspravi je gorcc.

Kao što rekoh OOP nije omatanje funkcija u class {}