OOP vs. Procedural v PHP

Programovacie jazyky, rady, poradňa...
Shakal
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 206
Registrovaný: 31 jan 2006, 18:54

OOP vs. Procedural v PHP

Príspevok od používateľa Shakal »

Caute.
Prisiel som s dalsou hlboko filozofickou otazkou.

OOP vs. Proceduralne programovanie v PHP.
Z technickeho hladiska - co je lepsie?

Nezaujima ma nazor vymastencov ktori nevedia citat proceduralne napisany kod a preto pochvalia OOP. Zaujima ma z technickeho hladiska - preco by som mal uprednostnit OOP?
Prinesie to lepsi "vykon" danej aplikacie alebo mi to "len" skrati cas potrebny na jej vyvoj?

Alebo???
Vdaka.
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

OOP ti:
1. Zjednodusi ti jej udrzbu (hlavne ked sa k nej vratis po dlhsej dobe)
2. Umoznuje jednoducho prenasat uz nakodene objekty do inych projektov prostym kopirovanim (za predpokladu ze su spravne napisane)
TGiJack
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 419
Registrovaný: 30 nov 2006, 19:37
Bydlisko: NO
Kontaktovať používateľa:

Príspevok od používateľa TGiJack »

zaggi napísal:OOP ti:
1. Zjednodusi ti jej udrzbu (hlavne ked sa k nej vratis po dlhsej dobe)
2. Umoznuje jednoducho prenasat uz nakodene objekty do inych projektov prostym kopirovanim (za predpokladu ze su spravne napisane)
prestne tak ako napisal zaggi v 2 bode ..ak si objekt dopre zapuzdril a všetko pozapisoval tak ho možeš potom použiť pri nových projektoch len si ho skopiruješ zadaš par vstupných dat a hotovo to čo by trvalo niekolko minut si spravil za par sekund 8)
vivaSlovakia
Guru wannabe
Guru wannabe
Príspevky: 2119
Registrovaný: 29 júl 2006, 10:30

Príspevok od používateľa vivaSlovakia »

OOP ti svojimi vlastnostami ponuka logicky a efektivne riesit strukturu projektu, napr. dedicnostou sa mozes drzat hierarchickeho postupu, coz riesi niekolko problemov naraz... interfejsy ti pomahaju v projekte dodrziavat urcite standardy... etc.

skratka, treba prist na chut oop :)
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

Ja som zastancom proceduralneho programovania. Ak viem, ze nieco budem potrebovat aj v inom projekte (reusability), tak si na to spravim funkciu. A o tom to cele je. Podla mna su objekty akurat tak riadne neprehladne - jeden extenduje druhy, ten druhy zase treti, potom sa tam nieco vola, vznikaju instancie a hovadiny, a hned clovek nevie kam z konopi... teda toto plati ak sa pozera na cudzi kod. :?
Jedinu aplikaciu, co som musel kodit kompletne v objektoch, som kodil v Jave (lebo tam sa inak ani neda, vsak :lol: ). Skratka som tomu na chut neprisiel.
Nezda sa mi vhodne pchat objekty uplne vsade a vsetko kodit objektovo, ked sa to ani moc nehodi. Aplikacia, ktora ma byt kodena objektovo, musi mat taku povahu. Napriklad taky DOM - document object model - to priam zvadza k implementacii objektami, a veruze je to aj takto implementovane. A robi sa s tym paradne :)
Cize oba pristupy maju svoje vyhody a nevyhody, je to len vecou programatora, ktory zvoli.
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

Príspevok od používateľa pheo »

OOP alebo procedurálne ... by som nazval spôsob myslenia pri programovaní. OOP vzniklo preto aby bol kód lahko napisatelny, prehladny, udržiavateľný, znovupoužiteľný , myslím si že zvýšenie výkonu by som tam nehľadal.
DomCZo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 235
Registrovaný: 16 okt 2006, 22:49

Príspevok od používateľa DomCZo »

pheo napísal:OOP alebo procedurálne ... by som nazval spôsob myslenia pri programovaní. OOP vzniklo preto aby bol kód lahko napisatelny, prehladny, udržiavateľný, znovupoužiteľný , myslím si že zvýšenie výkonu by som tam nehľadal.
Súhlasím, tiež by som to takto formuloval.
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

pokial si dobre pamatam, tak jednoduchy script pisany v OOP by mal byt o nieco malo pomalsi v porovnani s proceduralnym kodom. nie som si vsak tymto isty na 100%. OOP sa da vyuzit napriklad pri kodeni viacerych CMS systemov. implementacia objektov je praktickejsia ako prerabanie (a nasledne upravovanie) function listu z ineho CMS. myslim, ze proceduralny kod je zrozumitelny kazdemu a citanie tohto kodu je imho o dost jednoduchsie ako sa snazit vysomarit z objektov.
Shakal
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 206
Registrovaný: 31 jan 2006, 18:54

Príspevok od používateľa Shakal »

Dakujem. Som poteseny.
Ja som totiz zastanca proceduralu takze mi padol kamen zo srdca.
:D
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Príspevok od používateľa harrison314 »

no programy v proceduralnom programovani su ryclejsie
ale zas OOP ma ine vyhody a hodi sa skor na zlozitejsie problemy a abstrakciu
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

V dnesnej dobe sa cokolvek zlozitejsie ci uz je to web, alebo nejaka aplikacia pomocou proceduralneho programovania robit neda. Ak si zastanca proceduralneho programovania tak tvoj projekt moze:
a.) byt dokonceny a zastavit sa a budes spokojny zastanca proceduralneho nadalej
b.) byt velmi uspesny a bude sa rozrastat, rozrastat a este viac rozrastat, az zistis, ze si uz neni schopny mat prehlad vo svojich kodoch, akakolvek uprava ti trva neprimerane velke mnozstvo casu, kvoli jednej zmene musis upravovat tu istu vec vo velkom mnozstve kodov a potom pochopis, ze v roku 2009 je kodovat proceduralne nieco ako jazdit rally na trabante ...
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

Príspevok od používateľa pheo »

zaoberať sa pomalosťou OOP pri programovaní webu je zbytočné, takýto problém riešiš na najnižšej úrovni - ASM, C ... Skôr si treba všímať čo ti OOP prinesie, zjednodušenie kódu. Samozrejme si to vyžaduje určitú prax a študovanie návrhových vzorov, pre niekoho kto programoval v C v PHP < 5 doteraz sa to môže zdať zbytočné.
Už len taká drobnosť ako zapúzrenie a polymorfizmus ti dokáže sprehľadniť kód - nie stovky metód a každá na niečo iné - len zopár objektov a v nich zopár metód - prehľadné.

Prípadne programovanie cez interface, ti umožní zmeniť celú vrstvu (databázu, zobrazovaciu vrstvu) programu bez nutnosti úpravy ostatných, AOP ti umožní tvoj kód zjednodušiť ešte viac - môžeš z neho odstrániť opakujúce sa časti. Pri použití architektúr ako inverzia kontroly dokonca odstrániť referenčné závyslosti a vytvoriť tak malé ľahko testovateľné jednotky.

Alebo môžeš ostať pri procedúrach ... každému podľa jeho gusta.
Snacker
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 362
Registrovaný: 08 jún 2009, 22:42
Kontaktovať používateľa:

Príspevok od používateľa Snacker »

zaggi napisal:
kvoli jednej zmene musis upravovat tu istu vec vo velkom mnozstve kodov
To, ze upravujes jednu vec vo velkom mnozstve kodov nema nic spolocne s OOP. Je to chyba akehokolvek programovania. OOP ma ine vyhody ako napr. pubic, private funkcie, lahko sa vyznas vo funkciach, ktore su volane priamo alebo inymi funkciami, takze nemusis robit dokumentaciu atd...
Napísať odpoveď