Autor Zpráva
Derthis
Profil
Zdravím,
potřeboval bych poradit, jakou knihu si mám koupit, popř. z jakých stránek mám čerpat, když se chci naučit základy OOP? (Později uplatnit v PHP)

Našel jsem OOP Objektově orientované programování bez předchozích znalostí, co na ni říkaté?
WanTo
Profil
Při hledání googlem jsem narazil na tuto stránku:
http://oop.ronnieweb.net/

Nijak detailně jsem ji nepročítal, ale vypadá velice slibně.
Rudolf
Profil *
Proboha, jenom ne tuhle knihu!
Je to nejhorší snůžka nesmyslů, jaké jsem za několik posledních let četl.
Jak jsem již několikrát napsal, to co tvrdí autor, jsme o OOP tvrdili zhruba před 20 lety a teď se za to stydíme, protože jsme mezi tím pochopili, že OOP je něco dost podstatně jiného.
Co se týká zmíněného článku, působí dojmem, že autor také ještě pořádně neví, o co jde. Popisuje sice nějaké syntaktické konstrukce, ale OOP je o zcela novém způsobu myšlení, a o něm se autor ani vzdáleně nezmiňuje. Autor zřejmě ještě neví, že používat třídy ještě neznamená objektově programovat - alespoň na mne tak ten článek působí.
Jedinou knihou, kterou je možno běžně v knihkupectví sehnat, je prozatím moje vlastní "Myslíme objektově v jazyku Java 5.0". Všichni, kteří ji doposud četli a napsali mi o tom, si ji velmice pochvalují.
Pro ty, kteří se nechtějí učit Javu ale žádné doporučení nemáím.
llook
Profil
O tom Myslíme objektově v jazyku Java taky už delší dobu pokukuju. I kdybych Javu v životě nepoužil, třeba bych se přiučil něco z OOP (ačkoli si nemyslím, že by pro mě OOP bylo zcela cizí, jisté zlozvyky z procedurálního programování pociťuju). Od R. Pecinovského jsem četl pár článků na ceskaskola.cz a připadá mi, že je to jeden z mála českých pisálků, kteří rozumí OOP a umí to i předat.
Jazyk PHP od jazyka Java nakonec není zas tak moc odlišný (teď mě Javisti ukamenují).
roberta
Profil
Derthis
OOP ťažko uplatníš v PHP, pretože PHP nie je objektové
Hugo
Profil
roberta

PHP4 ne, ale v PHP5 je uz OOP solidni.
roberta
Profil
Hugo
solidni OOP nie je OOP
Hugo
Profil
roberta

Vec nazoru. Stop flame!
roberta
Profil
Hugo
no, vec názororu... len akurát ide o to, že PHP má iba podporu OOP. Uznávam, že podpora OOP v PHP je čím ďalej tým väčšia, ale v blízkej budúcnosti nehrozí, aby sa PHP stalo objektovo orientovaným programovaním, pretože základná filozofia PHP je úplne o niečom inom, ako OOP. OOP sú napríklad JAVA, C++, Visual Basic, C#, ...

takže ak sa chce Derthis naučiť základy OOP rozhodne by som mu nedoporučoval učiť sa to na PHP
llook
Profil
Nechci flamovat, ale PHP (v poslední verzi, samozřejmě) mi připadá s podporou OOP na dost podobné úrovni jako Java. Sice mi v něm schází spousta věcí, jako vícenásobná inheritance nebo lepší reflexe, ale to v Javě taky.

A i když znám i jazyky se silnější objektovou orientací (Python, Javascript), tak to neznamená, že v PHP nelze programovat objektově.

Jak někde vidím někoho ohánět se slovem filozofie (filozofie unixu, filozofie PHP, filozofie open source apod.), tak mi nedá nezeptat se: o čem ta filozofie je, krom toho, že je "o něčem jiném"?
roberta
Profil
llook
K tej filozofii...
Iste uznáš, že medzi "klasickým" (štrukturovaným, procedurálnym) programovaním a objektovo orientovaným programovaním je dosť podstatný rozdiel. Pri obidvoch "typoch" programovania musíš myslieť úplne iným spôsobom - to myslenie som mal na mysli pod pojmom filozofia. Aj keď PHP má podporu práce s objektami, tak v podstate aj tak programuješ klasicky, nie objektovo. Napr. aj v objektovo orientovaných jazykoch sa dá programovať klasicky. Programátori, ktorý nevedia myslieť objektovo tak aj programujú, mysliac si, že programujú objektovo. Totiž programovať s objektami neznamená programovať objektovo...
thingwath
Profil
roberta
Upřímně, někdy bych si docela rád přečetl jaký je mezi tímhle vším opravdu rozdíl a to tak abych to pochopil. Že mezi tím je rozdíl, to čtu všude, ale jaký... Zrovna v PHP to oop nemusí být tak zlý, statické typování vás třeba v té Javě může vést k zoufalým věcem.
WanTo
Profil
thingwath
Statickým typováním myslíš členskou proměnnou (nebo metodu) označenou jako static?
thingwath
Profil
WanTo
Ne :-)
WanTo
Profil
thingwath
Tak teďka si pod statickým typováním nedokážu vůbec nic představit. A sakra, to si říkám Java programátor :-)

Co tím bylo myšleno?
thingwath
Profil
NejakyTyp x = new NejakyTyp ();

$x = new NejakyTyp ();

Kde je rozdíl?
WanTo
Profil
thingwath
Aha :-) To by mě ani ve snu nenapadlo, že tím bylo myšleno tohle :-)


Ukaž mi příklad nějaké zoufalé věci, ke které může dovést statické typování. Mě zatím k zoufalým věcem dovádí to, co je v PHP (že by dynamické typování?).
roberta
Profil
thingwath
máš pravdu, je toho dosť málo na internete, ale v čechách máte celkom dobrých odborníkov na OOP, ktorý organizujú, okrem iného, aj školenia ohľadne OOP
http://www.objects.cz/
thingwath
Profil
Většinou stačí přidat rozhraní nebo něco takového, ale ne vždy to jde. A plyne z toho taková lehká ukecanost, spousta kódu jako lešení, které nic nedělá, ale drží nám typování pohromadě. Je přeci trochu jednodušší prostě si přidat metodu, kterou potřebuju, než vymýšlet rozhraní nebo se to snažit nějak prodědit kam je třeba.
llook
Profil
WanTo
Rozsáhlejší polemiku na téma statické vs. dynamické typování (resp. silné vs. slabé) lze najít tady: http://www.py.cz/RozhovorCast5

roberta
Jo tohle. Tak tomu neříkám filozofie PHP, ale filozofie PHP programátorů (a rozhodně ne všech), protože jak správně říkáš, je to o přístupu. V Javascriptu nakonec taky většina lidí programuje procedurálně, i přes jeho ohromnou objektovou podporu.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0