« 1 2 »
Autor Zpráva
Tirus
Profil
Co si myslíte že je lepší když neovládám OOP? Učit se ho průběžně při psaní stránek a nebo pokračovat ve scriptování v procedurálním stylu a pomalu přecházet na OOP?
Mám svůj kód na takovej nic moc RS, zmatenej a nepřehlednej. Chci ho zdokonalit a napadá mne, že bych ho vylepšil a zmenšil. zpřehlednil, apod.. a postupem času, ho předělal celej do OOP. Nebo to mám rovnou "mastit" do OOP?
ShiraNai7
Profil
Neexistuje žádný mezistupeň mezi procedurálním stylem a OOP - protože cokoliv mezi je prostě paskvil. Předělávat větší aplikace do OOP je dost náročné, vyplatí se to spíš napsat znovu.
Tirus
Profil
ShiraNai7:
tím mezistupněm myslím jen například pro DB využít dibi a pro šablony bTemplates... jinak jet v procedurálním stylu
ShiraNai7
Profil
To pak není tvá aplikace ale OOP no, jen používáš cizí OOP doplňky. To je jedno, udělej to tak, jak ti to vyhovuje. Já třeba preferuji psát si vše v OOP sám (např. šablonový systém i ten databázový wrapper). Určitě se to nedá naučit naráz, nicméně používáním hotových věcí se to nenaučíš.
Tirus
Profil
ShiraNai7:
jo to máš pravdu.
Rád bych si to vše napsal sám.. ale nějak nemám tucha, jak takovej šablonovej systém udělat :(
Joker
Profil
Tirus:
Souhlas se ShiraNai7, procedurální a objektové programování jsou různé způsoby nahlížení na problém jako takový, takže nějaký „procedurálně-objektový“ skript nejspíš dopadne jako procedurální skript ve kterém je sem tam pohozený nějaký objekt.
ShiraNai7
Profil
Tirus:
Komplexní šablonový systém není zrovna jednoduchý na napsání no. Možná začít s něčím jednodušším.
meris
Profil
Tirus:
Vyzkoušet Javu. Na učení OOP je v ní hodně návodů a tutoriálů. Budete li psát OOP jen v php, tak budete mít tendenci používat stávající procedurální přístup. Vyzkoušíte li si OOP v jiném jazyku, bude to pro Vás jednoduší se soustředit na čistý objektový návrh a postup. A právě Java je na to docela šikovný jazyk.
H13
Profil
Neexistuje žádný mezistupeň mezi procedurálním stylem a OOP - protože cokoliv mezi je prostě paskvil

Nejsem odborník ani na php ani na oop, ale používám právě ten mezistupeň a asi nejsem sám.

Podle mě je např. statická metoda (třída) vlastně takovej procedurální styl v OOP.

Pokud volám statickou metodu, je to jako kdybych v procedurálním stylu volal standardně funkci. A vídávám to i v kódech, který jsem nenapsal. Vyloženě bych to nenazval paskvilem. A přepisovat to např. do singletonu (v některých případech), aby to vypadalo více objektově, to mě připadá tak trochu divný. Ale jak říkám, nejsem odborník, takže se možná mýlím. :-)
ShiraNai7
Profil
H13:

OOP neznamená, že musíš používát objekty. Jde o hlavně o zapouzdření kódu a abstrakci... přečti si o tom třeba na wikipedii. Sám používám statické třídy tam, kde je jejich použití vhodné - např. právě ty "singletony" pro řídící třídy, u kterých nedává smysl vytvářet jejich instance.
H13
Profil
ShiraNai7:
OOP neznamená, že musíš používát objekty
Napsal jsem snad někde něco takového?
ShiraNai7
Profil
H13:
Podle mě je např. statická metoda (třída) vlastně takovej procedurální styl v OOP.

Statická třída není žádný procedurální styl v OOP, to je blábol :)

Pokud volám statickou metodu, je to jako kdybych v procedurálním stylu volal standardně funkci.

Stejně jako metodu u objektu :)
psychopat
Profil *
H13:
OOP neznamená, že musíš používát objekty

jenom pro doplnění znalostí, nedal by sem někdo kousek OOP kódu bez jediného objektu ?
ShiraNai7
Profil
psychopat:

Napsal jsem to jednou a napíšu to zase - jde o zapouzdření procedur v programu. Máš nějaký validní důvod nepovažovat statickou třídu za objekt-singleton?
H13
Profil
function vratAno() {
   return "Ano";
}
echo vratAno();


vs.

class Neco {
   public static function vratAno() {
      return "Ano";
   }
}
echo Neco::vratAno();



Podle mě (znovu opakuji, nejsem programátor a netvrdím, že je to správně) je to stejnej styl, stejně tak se podle mě nedá určit hranice mezi OOP a procedurálním stylem, protože i v OOP se programuje prostě procedurálně.
ShiraNai7
Profil
H13:
Ve výsledku není mezi OOP a non-OOP kódem rozdíl. O to ti jde? A pointa?
H13
Profil
ShiraNai7
A pointa?

uvedená již v [#9]

Stručně:
"
Neexistuje žádný mezistupeň mezi procedurálním stylem a OOP - protože cokoliv mezi je prostě paskvil

... Vyloženě bych to nenazval paskvilem ...
"

:-)
breeta
Profil
Tirus:
Nebo to mám rovnou "mastit" do OOP?

Jde o to že když se to budeš snažit psát OOP a budeš používat MVC tak bude kód přehlednější a bude ho míň, tím pádem ti ulehčí práci. Nic víc nic míň za tím nehledej ....
Johnik
Profil
breeta:
To neplatí vždy. Hlavním důvodem proč psát v OOP je možnost dědičnosti a zapouzdření logicky souvisejících věcí do objektů.
breeta
Profil
Johnik:
To neplatí vždy. Hlavním důvodem proč psát v OOP je možnost dědičnosti a zapouzdření logicky souvisejících věcí do objektů.

No a z toho plyne to co jsem psal .. :-)
Johnik
Profil
breeta:
Reagoval jsem na to bude ho míň, přehlednější bude při správném návrhu a použití určitě.
ShiraNai7
Profil
H13:
To není pointa, ale blábol. Koneckonců je to jedno - chápejte a praste si to jak chcete :)
H13
Profil
ShiraNai7:
To není pointa, ale blábol. Koneckonců je to jedno - chápejte a praste si to jak chcete :)

Ta pointa je právě v tom, že ten, kdo programuje stylem, který jsi nazval mezistupňem, nemusí vyrábět paskvil a zároveň nemusí prasit kód.

Důvod mé reakce je pouze a jen v tom, že se nemusí začátečníkům nalhávat něco v tom smyslu, že ten, kdo to dělá věci jinak než ty, prasí kód a vyrábí paskvil.
ShiraNai7
Profil
H13:

Psát část kódu OOP stylem a zbytek jinak je paskvil, o tom snad není třeba diskutovat. Mi je jedno že to funguje. Kdyby ho to nezajímalo, tak si tam prasí co chce a neptá se na diskusi.
H13
Profil
ShiraNai7
Psát část kódu OOP stylem a zbytek jinak je paskvil
Ale to jsem přece nikde nenapsal (už podruhé)

Nelze určit hranici mezi procedurálním kódem a OOP -> nelze tedy přesně stanovit co je styl OOP a co styl procedurální (jak jsi napsal v #16) -> nelze tedy něco považovat za mezistupeň -> nelze tedy o něčím kódu na základě tohoto tvrzení psát, že je to paskvil nebo prasení.

Běžně pracuju s kódem, který (když už to tak nazveme) obsahuje jak vyloženě "procedurální kód", tak "OOP kód" v externích knihovnách, a rozhodně bych to nenazval paskvilem, stejně tak není v mých silách, předělávat externí knihovny do jednotného "OOP stylu" - eterní knihovny napsané v "OOP" a nebo "procedurálně" jsou dobře čitelné, srozumitelné, a přehledné. A i kdybych si definoval nějakou hranici, co je OOP a co už OOP není, stejně bych nadále využíval kombinaci obou dvou bez toho, aniž bych se strachoval o to, jestli je to paskvil nebo prasení.
ShiraNai7
Profil
H13:
Nelze určit hranici mezi procedurálním kódem a OOP

A na to si přišel jak? V OOP kódu máš vše uzavřené ve třídách a jejich instancích. V procedurálním máš globální funkce a hromadu includů, nejlépe spojenou s prasením HTML přes echo/print přímo v PHP.

A i kdybych si definoval nějakou hranici, co je OOP a co už OOP není, stejně bych nadále využíval kombinaci obou dvou bez toho, aniž bych se strachoval o to, jestli je to paskvil nebo prasení.

Využívej :) Mi jsou tvé kódy buřt. Vyjadřuju tu akorát svůj názor, že kombinovat OOP a non-OOP kód je prasení a stojím si za tím. Nikomu nic nenutím.
Joker
Profil
H13:
Nelze určit hranici mezi procedurálním kódem a OOP -> nelze tedy přesně stanovit co je styl OOP a co styl procedurální
Jakto že ne?

Mám problém k řešení.

Imperativní přístup (jehož součástí je procedurální programování):
- Rozdělím problém na menší problémy. To dělám tak dlouho, až dostanu dostatečně jednoduché problémy.
- Pro každý dílčí problém najdu a implementuji algoritmus, který ho řeší.
- Řešení dílčích problémů skládám tak, aby celek řešil původní problém.

Objektový přístup:
- Identifikuji v problému jednotlivé třídy objektů.
- U jednotlivých tříd popíši jejich vlastnosti (atributy a metody).
- Zjistím, jak spolu objekty musí komunikovat, aby řešily daný problém.

Že jde udělat procedurální kód formálně používající objekt je jasné:
class Aplikace{
  public static function main() { výkonný kód aplikace }
}
Aplikace::main();
- ale to není objektově-orientované programování.
H13
Profil
Že jde udělat procedurální kód formálně používající objekt je jasné:

class Aplikace{
public static function main() { výkonný kód aplikace }
}
Aplikace::main();
- ale to není objektově-orientované programování.


A to se snažím naznačit, že to tak v mnoha případech a mnoha projektech je (a tím myslím i tu hranici, kdy jeden to považuje za OOP a druhý za "procedurální kód formálně používající objekt" ), já bych to paskvilem nenazval, někdo jiný (ShiraNai7) ano.

ShiraNai7
Využívej :) Mi jsou tvé kódy buřt. Vyjadřuju tu akorát svůj názor, že kombinovat OOP a non-OOP kód je prasení a stojím si za tím. Nikomu nic nenutím.
A já vyjadřuju názor jiný (ne opačný - sám mám rád aplikace typu MVC), také nikomu nic nenutím.
unlucky
Profil
zacinal jsem s php a ve skole mel javu s oop. Do tedka oop porad nechapu i kdyz javu jsem mel rok a pul :D
Joker
Profil
H13:
A to se snažím naznačit, že to tak v mnoha případech a mnoha projektech je
Jenže to není objektově-orientované programování.

Ten příklad co jsem napsal je přesně totéž jako když vezmu binární data, na začátek dám <data><![CDATA[, na konec ]]></data> a budu tvrdit, že je to XML.
« 1 2 »

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0