Má cenu přeučovat se do OOP?

txt

Re:Má cenu přeučovat se do OOP?
« Odpověď #90 kdy: 13. 10. 2014, 22:47:17 »
Podle http://knihy.abz.cz/prodej/objektove-programovani-naucte-se-pravidla-objektoveho-mysleni je OOP volná síť vzájemně komunikujících objektů.

Podle objects.cz je definováno objektové paradigma (tzn. něco obecnějšího než objektové programování):
Prvek v systému nabízí jiným prvkům svou službu možného použití. Jiný prvek přistupuje k tomuto prvku a použije jeho nabízenou službu...
Dále se to dost točí okolo polymorfismu a opětovné použitelnosti kódu.

Který přístup podle vás umožňuje docílit vyšší opětovné použitelnosti, OOP, strukturované programování, nebo něco jiného?


JS

Re:Má cenu přeučovat se do OOP?
« Odpověď #91 kdy: 13. 10. 2014, 23:38:01 »
Mohu poprosit o tvou definici toho co je na OOP to hlavní? Protože zhruba to co h7 napsal jsem si odnesl z těch několika knížek a článků co jsem o tom četl.

Precti si tento klasicky clanek: http://www.paulgraham.com/reesoo.html

OOP neni velmi dobre definovane, tudiz tvoje otazka je nesmyslna. Jak uz jsem rekl, kritici vetsinou kritizuji omezenost toho, co se nazyva OOP u mainstreamovych jazyku jako C++, Java, C#.

JS

Re:Má cenu přeučovat se do OOP?
« Odpověď #92 kdy: 13. 10. 2014, 23:46:55 »
Podle http://knihy.abz.cz/prodej/objektove-programovani-naucte-se-pravidla-objektoveho-mysleni je OOP volná síť vzájemně komunikujících objektů.
...
Prvek v systému nabízí jiným prvkům svou službu možného použití. Jiný prvek přistupuje k tomuto prvku a použije jeho nabízenou službu...

A kde mas v techto definicich treba SOLID? Volna sit vzajemne komunikujicich objektu muze byt cokoliv... pokud se nejak blize neomezi, co to vlastne ten objekt je. Treba v C takovymi "objekty" jsou funkce, ktere komunikuji predavanim parametru. Ditto druha definice, jen se tem funkcim rika "prvek" a ne "objekt". Tohle jsou v podstate definice kruhem.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Má cenu přeučovat se do OOP?
« Odpověď #93 kdy: 13. 10. 2014, 23:48:25 »
Podle http://knihy.abz.cz/prodej/objektove-programovani-naucte-se-pravidla-objektoveho-mysleni je OOP volná síť vzájemně komunikujících objektů.

Tedy to zni jako by ty programy zily vlastnim zivotem. Uz se nedivim, ze nektere programy se chovaji dosti nevypocitatelnym zpusobem.

JSH

Re:Má cenu přeučovat se do OOP?
« Odpověď #94 kdy: 14. 10. 2014, 07:21:51 »
Dovolil bych si to tedy shrnout a zobecnit do jedné nábožensky korektní definice: OOP je vše, co je moderní a pokrokové.
Já to tak nechtěl napsat, protože je to už moc flamoidní. Ale nějak tak na mě ten buzzword taky působí.

Tak jediná věc, která podle mě to oop odlišuje je způsob návrhu, kdy se klade hodně důraz na rozhranní a data jsou vedlejší záležitost. Myšlenka, že kód transformuje data, je v oop asi hereze. Pak z toho lezou divočiny typu "posílám zprávu intu, aby k sobě přičetl jiný int a vrátil mi výsledek".


fail

Re:Má cenu přeučovat se do OOP?
« Odpověď #95 kdy: 14. 10. 2014, 07:45:10 »
Mohu poprosit o tvou definici toho co je na OOP to hlavní? Protože zhruba to co h7 napsal jsem si odnesl z těch několika knížek a článků co jsem o tom četl.

Zajímavým jevem v OOP je rekurze - v definicích metod můžete používat metody, jenž ještě nebyly definovány (budou definovány později v téže třídě nebo dokonce až v podtřídě).
a proceduru z promenne zavolat umis?

fail

Re:Má cenu přeučovat se do OOP?
« Odpověď #96 kdy: 14. 10. 2014, 07:48:08 »
mi to prijde, ze OOP je jenom oznackovani ovecek, co se boji, ze za ohradou muze byt vlk i kdyz je tam treba uplne vlkoprazdno a zelenejsi travicka. a proto se OOP ovecky nikdy nepodivaji dal nez uvnitr ohrady. nechci to psat jako rovnocenne s "nedouk", protoze se to lisi.

Kolemjdoucí

Re:Má cenu přeučovat se do OOP?
« Odpověď #97 kdy: 14. 10. 2014, 08:07:28 »
Podle http://knihy.abz.cz/prodej/objektove-programovani-naucte-se-pravidla-objektoveho-mysleni je OOP volná síť vzájemně komunikujících objektů.

To jsou právě ty nesmysly, které se pindají tak dlouho až tomu lidi uvěřili.

Podle objects.cz je definováno objektové paradigma (tzn. něco obecnějšího než objektové programování):
Prvek v systému nabízí jiným prvkům svou službu možného použití. Jiný prvek přistupuje k tomuto prvku a použije jeho nabízenou službu...
Dále se to dost točí okolo polymorfismu a opětovné použitelnosti kódu.

OOP není o službách. Polymorfismus nikdo neví co je. Znovupoužitelnost je správně a skutečně jednou z motivací vzniku OOP bylo usnadnění znovupoužitelnosti.

Který přístup podle vás umožňuje docílit vyšší opětovné použitelnosti, OOP, strukturované programování, nebo něco jiného?

Jde to mnoha způsoby, ale s OOP je to asi nejpohodlnější.

Teda z téhle diskuse mám takový pocit, že pod OOP někteří schovávají vše, co považují za přínosné a dobré, přitom se vlastně nejsou schopni shodnout na nějaké univerzální definici. To už jsou příznaky náboženství.

To je proto, že se kolem objektů neustále pindají nesmysly a tak jsou lidi zmatení. Hlavní smysly OOP jsou tyto dva:
- Usnadnění psaní kódu a mírně vyšší přehlednost kódu
- Usnadnění znovupoužitelnosti kódu
A žádné zázraky s OOP se prostě nekonají.

Ovrscout

Re:Má cenu přeučovat se do OOP?
« Odpověď #98 kdy: 14. 10. 2014, 08:15:21 »
Precti si tento klasicky clanek: http://www.paulgraham.com/reesoo.html

dikyJS, pěkné shrnutí. Jinak se omlouvám za nevhodně položený dotaz, původní otázka měla směrovat na základ toho co dělá OOP tak odlišným že má, podle některých, vyžadovat úplně jiné myšlení.

Víceméně souhlasím s Kolemjdoucím, ale přeci jen, zde je můj popis jak OOP vnímám:
Já OOP zatím vnímám jako vývoj dopředu. Podobně jako se z podprogramů staly funkce, tak se z "modulů" vynořili objekty.
Něco jako souhrn "best practices" modulů, navíc podpořeno novým velmi zjednodušeným zápisem. Díky tomu lze přenést část zodpovědností a pravidel z programátora na překladač. Navíc nový zjednodušený zápis umožňuje používat "kouzla" jako polyformizmus v rozsahu která by dříve byla neudržitelně složitá(což neznamená že se musí používat aby byl program dle OOP). Také, stále díky zjednodušení, OOP přístup zjemňuje granularitu, takže se jako o objektech uvažuje snadněji v daleko širším měřítku, a ve více úrovních.
Za základ OOP pak považuji to že se návrh (nebo fáze návrhu?)  cíleně zaměřuje na hledání toho co lze oddělit a jak to bude spolupracovat. Plus  sada kritérií (s proměnou váhou dle situace/programu/..) dle kterých se určování objektů/tříd provádí. Nicméně jako u všech metodik si myslím že je třeba používat je se zdravým rozum a neaplikovat je slepě až do absurdních rozměrů.
Čili není to až tak úplně odlišné, spíš jen vylepšení a kodifikování starších ověřených postupů, vedoucí k novým možnostem.

Re:Má cenu přeučovat se do OOP?
« Odpověď #99 kdy: 14. 10. 2014, 08:17:19 »
Podle http://knihy.abz.cz/prodej/objektove-programovani-naucte-se-pravidla-objektoveho-mysleni je OOP volná síť vzájemně komunikujících objektů.

To jsou právě ty nesmysly, které se pindají tak dlouho až tomu lidi uvěřili.


A co si pod tim predstavujes ty nepindale?

Kolemjdoucí

Re:Má cenu přeučovat se do OOP?
« Odpověď #100 kdy: 14. 10. 2014, 08:21:49 »
A co si pod tim predstavujes ty nepindale?

Psal jsem to tady už několikrát, si to projdi. OOP je ve zkratce nade vší pochybnost programátorská technika vedoucí k usnadnění práce a usnadnění znovupoužitelnosti kódu, nikoliv nějaký zázrak od bohů.

Kolemjdoucí

Re:Má cenu přeučovat se do OOP?
« Odpověď #101 kdy: 14. 10. 2014, 08:27:53 »
Navíc nový zjednodušený zápis umožňuje používat "kouzla" jako polyformizmus v rozsahu která by dříve byla neudržitelně složitá.

Nikdo neví co je polymorfismus. Dobrý jazyk umí overload i bez OOP.

Re:Má cenu přeučovat se do OOP?
« Odpověď #102 kdy: 14. 10. 2014, 08:30:07 »
A co si pod tim predstavujes ty nepindale?

Psal jsem to tady už několikrát, si to projdi. OOP je ve zkratce nade vší pochybnost programátorská technika vedoucí k usnadnění práce a usnadnění znovupoužitelnosti kódu, nikoliv nějaký zázrak od bohů.

PResne! To jsi psal, ale neni to definice. To je popis vyhod, ale da se +- aplikovat trebas na modularni programovani nebo funkcnionalni programovani.

Hmmm

Re:Má cenu přeučovat se do OOP?
« Odpověď #103 kdy: 14. 10. 2014, 08:30:30 »
A co si pod tim predstavujes ty nepindale?

Psal jsem to tady už několikrát, si to projdi. OOP je ve zkratce nade vší pochybnost programátorská technika vedoucí k usnadnění práce a usnadnění znovupoužitelnosti kódu, nikoliv nějaký zázrak od bohů.
Dokopy si ale nenapisal nic, nez vseobecne pindy.

Re:Má cenu přeučovat se do OOP?
« Odpověď #104 kdy: 14. 10. 2014, 08:31:43 »
Navíc nový zjednodušený zápis umožňuje používat "kouzla" jako polyformizmus v rozsahu která by dříve byla neudržitelně složitá.

Nikdo neví co je polymorfismus. Dobrý jazyk umí overload i bez OOP.

Overload neni polymorfismus, minimalne ne ve smyslyu OOP. Overload pouziva casnou vazbu, polymorfismus pozdni vazbu.