objektno vs proceduarno php programiranje
 
zacetnik 3. jul 2010 13:57:22 Pridružen od:
25. jul 2009
54 objav
6 7 1
#1

Do sedaj sem si ogledal nekaj projektov. Pri vseh stran v proceduarni kodi bila mnogo hitrejša. Tudi facebook je menda večino proceduarno.



Tudi glede nepreglednosti mi ni jasno zakaj so nekateri tako proti. Ko pogledam proceduarno kodo, mi je v hipu vse jasno, pri objektnem pa ne čisto.



Verjamem da se da objektno hitreje nekaj naredit. Toda kje je resnica, je proceduarna koda res hitrejša ob predpostavki, da je kvalitetno sprogramirana?


všeč(0) ni všeč(2) spam(0)
*Uporabniku je bila prepovedana uporaba foruma zaradi večih uporabniških računov, ki so po [pravilih obnašanja](/pravila.html) prepovedani.*
 
cyber 3. jul 2010 18:52:33 Pridružen od:
2. dec 2007
536 objav
750 76 10
#2

Hitrost je relativna, oba načina se da optimizirat da sta hitra, če ne drugega, pač natlačiš N serverjev v cluster, pa je.



Pregledna pa je koda, toliko, kolikor jo programer naredi pregledno, oba načina sta lahko pregledna ali pa ne.



Pri objektnem programiranju gre za druge stvari, predvsem pa je OO programiranje človeku bolj naravno, konec koncev se tudi v življenju, vedno srečujemo z objekti.



Bi pa reku, da so razni OO framework-i, precej bolj požrešni, to se opazi, ko recimo ob prvem load-u, preden se nastavitve in koda, skompajla ali cache-ira, lahko kar par sekund traja, da se stran naloži.



Torej, pomojem se hitrosti in preglednosti, ne da neposredno primerjati.


všeč(0) ni všeč(0) spam(0)
 
zacetnik 3. jul 2010 20:32:44 Pridružen od:
25. jul 2009
54 objav
6 7 1
#3

Na živce mi gre ko začne kdo takoj pametovati kako je OO hitrejše in bolj pregledno. Se mi zdi da gre tu bolj za to da bo nekdo vedno hvalil tisti način, v katerem on dela. Podobno kot začne kak ASP programer blatit PHP.


všeč(0) ni všeč(1) spam(0)
*Uporabniku je bila prepovedana uporaba foruma zaradi večih uporabniških računov, ki so po [pravilih obnašanja](/pravila.html) prepovedani.*
 
bl4ckb1rd 3. jul 2010 22:11:06 Pridružen od:
18. avg 2008
1122 objav
750 91 11
#4

Niti ne, objektno orientirano je definitivno bolj prikladno za razširitve, nadgradnje, če pravilno programiraš je tudi bolj jasno in točno veš kje iskat določeno kodo. Ne kot pri proceduralnem, kjer ni tipičnih lokacij določenih funkcij itd. OO programiranje je bolj primerno za večje projekte, ki se bodo še razvijali. V tem primeru izbereš tudi določen framework. Kar se pa tiče manjših programčkov, pa ni sile, se na hitrco sprogramira brez kakih objektov in podobne navlake, ki bi samo komplicirale stvari. Vsako stvar izbereš glede na potrebo... Moraš pa vedeti da za večji projekt je OO programiranje nuja. Kar se tiče pa facebooka, bi me pa ekstremno presenetilo, če bi res vse skupaj skodirali neobjektno... ne vem od kje ti ta informacija.



P.S. Tebi ni jasno ko pogledaš tako kodo, ker ne poznaš Objektno orientiranega programiranja, oz. ne programiraš tako... Preberi si malce o objektnem programiranju. Vse je lepo pošlihtano. Kot da bi imel ropotarnico kjer je vse sicer pospravljeno na neko mesto, vendar ni standardizirano, kje je kaj... drugo pa je omara s policami in vse police so lepo pošlihtane in označene, te stvari so tukaj, te tukaj, te tukaj.


všeč(1) ni všeč(0) spam(0)
blackbird.si - Moj plac za odlaganje problemov in rešitev...
 
zacetnik 3. jul 2010 23:22:28 Pridružen od:
25. jul 2009
54 objav
6 7 1
#5

Malo poguglaj in boš videl, da je Facebook večinoma neobjektno. Enkrat je celo krožil del njihove kode po blogih, ko so se jim zrušili serverji in se je izpisala koda.


všeč(0) ni všeč(2) spam(0)
*Uporabniku je bila prepovedana uporaba foruma zaradi večih uporabniških računov, ki so po [pravilih obnašanja](/pravila.html) prepovedani.*
 
bl4ckb1rd 3. jul 2010 23:54:00 Pridružen od:
18. avg 2008
1122 objav
750 91 11
#6

Neki implyi da je tako so res na internetu, vendar to je iz leta 2007... vmes je prišlo že kar nekaj verzij facebooka ven. Dvomim da se še vedno držijo istega kot pijanec plota. Kakorkoli, tudi če je tako, je to njihov problem, kako kodirajo svojo aplikacijo. Kakor je tvoj problem, kako kodiraš svojo. Če se znajdeš v svoji proceduralni kodi in se ti ne da učiti objektno orientirane, prav, tvoja odločitev. V večini firm pa se programira objektno.



Hitrost izvajanja je povezana z ogromno stvarmi... od strežnika, podatkovne baze, programskega jezika, pa do izbire frameworka, kako zahtevne operacije izvajaš itd. In ti so veliko bolj pomembni kot tvoj OO ali proceduralni način programiranja...


všeč(0) ni všeč(0) spam(0)
blackbird.si - Moj plac za odlaganje problemov in rešitev...
 
bostjan 4. jul 2010 08:01:24 Pridružen od:
31. jul 2008
643 objav
689 30 9
#7

pa saj lahko narediš nek simpl test



npišašeš funkcijo, ki se 100.000 krat zaloopa čez nekaj in meriš čas. To napišeš kot proceduro potem jo pa še v class vržeš.



Kolikor vem je minimalna razlika v prid proceduram. Samo kot so že zgoraj omenili, da bi za ta minimalen bonus pri hitrosti šel delat s procedurami? Ne vem, bi moral imet pa res neko noro kritično situacijo (tako kot očitno FB, ki je cel svoj "compiler" spisal ;) ).



No sam delam v C# kjer pa itak nimaš neke izbire in je vse OOP :)


všeč(0) ni všeč(0) spam(0)
 
FrEaKmAn 4. jul 2010 12:23:40 Pridružen od:
2. dec 2007
303 objav
175 59 0
#8

roko na srce, pri phpju ne moreš ravno govoriti o pravem OO programiranju :D


všeč(0) ni všeč(5) spam(0)
 
fatg 4. jul 2010 13:18:00 Pridružen od:
28. jan 2008
94 objav
73 2 0
#9

Debata o hitrosti je popolnoma nepotrebna. Kaj ti pomaga mikrosukunda, ko pa izvajaš isti query na bazo, ali pač na nek drug zunanji resource (datoteka, service) in traja zadeva 0.1s?



Pri OOP gre za koncept, ne za hitrost. O tem, kaj naj uporabljaš, gre za pravilo palca: če delaš 100-vrstično skripto, ki jo boš uporabil 3x in potem zavrgel, je objekten pristop odveč, za kaj več pa lahko hitro pokaže svoje prednosti. Pred tem pa moraš seveda objektno programiranje razumeti. Če ti samo namečeš funkcije v objekte in s tem dobiš neke skupine funkcij (module), je to še vedno proceduralno programiranje.



Freakman: očitno se ne spoznaš kaj dosti na PHP, ker ima zelo soliden OO model.


všeč(4) ni všeč(0) spam(0)
 
FrEaKmAn 4. jul 2010 19:44:47 Pridružen od:
2. dec 2007
303 objav
175 59 0
#10

poznam PHP precej dobro, problem je da so OOP dodali, da bi kao zadovoljili fanatikom :D



npr poglej si Ruby, to je pravi OOP jezik...


všeč(0) ni všeč(4) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se