OOP a servisní třídy

Kit

Re:OOP a servisní třídy
« Odpověď #15 kdy: 24. 06. 2017, 22:28:49 »
To tu zas budu perly :D

O Perlu se teď nebavíme. Snažíme se dopracovat k tomu, co to jsou servisní třídy a jak souvisí se servisními objekty.


Honza

Re:OOP a servisní třídy
« Odpověď #16 kdy: 24. 06. 2017, 23:48:53 »
Zkusím hádat,
Controller - instance pro každý UI prvek
Session - instance pro každého uživatele
Service - jen jedna instance v aplikaci.

Proto se údajně má zdát, že Service není OOP? Chápu to správně? Protože má jen jednu instanci?
Když spustím vícero aplikací, s tou Service, kde (např.) bude každá obsluhovat jinou databázi, tak to přece už platit nebude.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:OOP a servisní třídy
« Odpověď #17 kdy: 25. 06. 2017, 00:14:34 »
Co se týče OOP, tak bych to moc neprožíval. Žádné mainstreamové OOP jazyky OOP nejsou. [...] a na Kaye si nikdo nevzpomene.
Tři lidi se shodnou na tom, co je OOP, jen když dva z nich jsou mrtví (ne že bych teď nabádal k vraždám). Jenže z pragmatického pohledu jediná důležitá věc je polymorfismus, jehož lze dosáhnout prostými protokoly (rozhraními), zbytek tzv. "OOP" je víceméně k ničemu. Pak jsou ještě technikality jako nějaký automatický způsob správy paměti nebo rozumná podpora paralelismu, ale to už jsme někde jinde. Jakmile se přidají i jen blbá generika, tak už se klouže k FP s tím, že to bude jen polovičatá zkriplená implementace.
P.S. Chudák Kay musí dost trpět, když vidí, kdo dnes píše programy a v čem.

BoneFlute

  • *****
  • 2 047
    • Zobrazit profil
Re:OOP a servisní třídy
« Odpověď #18 kdy: 25. 06. 2017, 00:34:49 »
Co se týče OOP, tak bych to moc neprožíval. Žádné mainstreamové OOP jazyky OOP nejsou. [...] a na Kaye si nikdo nevzpomene.
Tři lidi se shodnou na tom, co je OOP, jen když dva z nich jsou mrtví (ne že bych teď nabádal k vraždám). Jenže z pragmatického pohledu jediná důležitá věc je polymorfismus, jehož lze dosáhnout prostými protokoly (rozhraními), zbytek tzv. "OOP" je víceméně k ničemu. Pak jsou ještě technikality jako nějaký automatický způsob správy paměti nebo rozumná podpora paralelismu, ale to už jsme někde jinde. Jakmile se přidají i jen blbá generika, tak už se klouže k FP s tím, že to bude jen polovičatá zkriplená implementace.
P.S. Chudák Kay musí dost trpět, když vidí, kdo dnes píše programy a v čem.
A to jsme se ještě nedostali k flame, jak si někteří lide poradí s rozlišování co je otázka OOP a co je otázka Typování.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:OOP a servisní třídy
« Odpověď #19 kdy: 25. 06. 2017, 03:42:19 »
Co se týče OOP, tak bych to moc neprožíval. Žádné mainstreamové OOP jazyky OOP nejsou. [...] a na Kaye si nikdo nevzpomene.
Tři lidi se shodnou na tom, co je OOP, jen když dva z nich jsou mrtví (ne že bych teď nabádal k vraždám). Jenže z pragmatického pohledu jediná důležitá věc je polymorfismus, jehož lze dosáhnout prostými protokoly (rozhraními), zbytek tzv. "OOP" je víceméně k ničemu. Pak jsou ještě technikality jako nějaký automatický způsob správy paměti nebo rozumná podpora paralelismu, ale to už jsme někde jinde. Jakmile se přidají i jen blbá generika, tak už se klouže k FP s tím, že to bude jen polovičatá zkriplená implementace.
P.S. Chudák Kay musí dost trpět, když vidí, kdo dnes píše programy a v čem.
A to jsme se ještě nedostali k flame, jak si někteří lide poradí s rozlišování co je otázka OOP a co je otázka Typování.
OOP bych nechal, to není přesně definované (čímž se možná právě hodí na flame). Těm pár konceptům jako typování, polymorfismus, dědičnost apod. se dá věnovat zvlášť, jsou navzájem ortogonální.


BoneFlute

  • *****
  • 2 047
    • Zobrazit profil
Re:OOP a servisní třídy
« Odpověď #20 kdy: 25. 06. 2017, 12:58:41 »
A to jsme se ještě nedostali k flame, jak si někteří lide poradí s rozlišování co je otázka OOP a co je otázka Typování.
OOP bych nechal, to není přesně definované (čímž se možná právě hodí na flame). Těm pár konceptům jako typování, polymorfismus, dědičnost apod. se dá věnovat zvlášť, jsou navzájem ortogonální.
Dá. Ale málokomu je to jasné. Mnoho programátorů chápe OOP jako dědičnost + třídy + interface. Tři věci z toho nejsou součástí OOP.

Honza

Re:OOP a servisní třídy
« Odpověď #21 kdy: 25. 06. 2017, 13:10:17 »
Tady na rootu se každá diskuze o OOP nějak zacyklí, nezdá se vám?

Kit

Re:OOP a servisní třídy
« Odpověď #22 kdy: 25. 06. 2017, 13:12:56 »
Tady na rootu se každá diskuze o OOP nějak zacyklí, nezdá se vám?

V OOP i ve FP preferuji spíš rekurzi.

balki

Re:OOP a servisní třídy
« Odpověď #23 kdy: 25. 06. 2017, 13:37:21 »
A to jsme se ještě nedostali k flame, jak si někteří lide poradí s rozlišování co je otázka OOP a co je otázka Typování.
OOP bych nechal, to není přesně definované (čímž se možná právě hodí na flame). Těm pár konceptům jako typování, polymorfismus, dědičnost apod. se dá věnovat zvlášť, jsou navzájem ortogonální.
Dá. Ale málokomu je to jasné. Mnoho programátorů chápe OOP jako dědičnost + třídy + interface. Tři věci z toho nejsou součástí OOP.

Ono je to definovane. Zakladne principy su - dedicnost, polymorfizmus a enkapsulacia.
To, ze kazdy to chape inac a niekomu sa to nepaci je ina vec. (napriklad mne sa nepaci polymorfizmus a dedicnost)


Kit

Re:OOP a servisní třídy
« Odpověď #24 kdy: 25. 06. 2017, 13:53:43 »
Ono je to definovane. Zakladne principy su - dedicnost, polymorfizmus a enkapsulacia.
To, ze kazdy to chape inac a niekomu sa to nepaci je ina vec. (napriklad mne sa nepaci polymorfizmus a dedicnost)

Těším se, až mnozí programátoři pochopí i princip zapouzdření :-)

baron

Re:OOP a servisní třídy
« Odpověď #25 kdy: 25. 06. 2017, 14:00:35 »
no ty vole, opet tema ohledne OOP. se poseru. a opet si tu dokazuji nekteri co je a co neni OOP. ja jenom lituji spolupracovniky, kteri to zcela jiste nemaji lehke, kdyz maji v kanclu takoveto individua.

.

Re:OOP a servisní třídy
« Odpověď #26 kdy: 25. 06. 2017, 14:26:13 »
Servisní třídy slouží taky k tomu, aby se pokaždé s každým požadavkem nevytvářely znovu ty samé instance tříd, protože by to mělo vliv na performance. Když se dělá se Servisními třídami např ve Springu, je třeba to tak trochu brát jako práci uvnitř návrhového vzoru.

Myslím si, že Service je třeba brát spíše jako nutnost a ne něco, co má nějak vylepšit OOP. Osobně moc Services rád nemám, myslím že třeba v typickém Spring app se docela nadužívají, prostě každá nová třída dostane anotaci buďto Service nebo DAO. To není dobře.

Co se týče samotného OOP, tak odpověď na to, co to je, by se dal brát myslím si ze dvou stran. Ta první, mě bližší: prirozené obohacení procedurálního programování o přimou podporu zapouzdřenosti (tvorba modulů) a polymorfizmu (nad těmito moduly). To je takový praktický pohled na věc. Pak je ještě pohled z druhé strany, tomu se vyhýbám, a to od OOP teoretiků. Tento úhel pohledu nemám rád, protože je přehnaný a dost přesahuje schopnosti samotného OOP. S OOP se nedají modelovat reálné věci, je příliš stupidní. Takže já se držím definice OOP jakožto vylepšení starého způsobu programování a především beru OOP jako nástroj pro programátora, a ne programátora jako nástroj pro OOP.

Kit

Re:OOP a servisní třídy
« Odpověď #27 kdy: 25. 06. 2017, 14:35:41 »
... především beru OOP jako nástroj pro programátora, a ne programátora jako nástroj pro OOP.

Také to tak beru. OOP má programátorovi sloužit a nevytvářet mu "povinnosti". Dědičnost usnadňuje tvorbu podobných modulů, polymorfismus práci s nimi a zapouzdření pomáhá vytvářet moduly s minimálním rozhraním a maximální soběstačnosti.

baron

Re:OOP a servisní třídy
« Odpověď #28 kdy: 25. 06. 2017, 14:42:28 »
jo Kit jako vzdycky bude rikat jenom to svy. zustan radsi u php.

Kit

Re:OOP a servisní třídy
« Odpověď #29 kdy: 25. 06. 2017, 15:07:48 »
jo Kit jako vzdycky bude rikat jenom to svy. zustan radsi u php.

Jasně, baron nám to vysvětlil mnohem lépe. Jenom mi stále není jasné, jak svůj názor zakomponuješ do svého oblíbeného jazyka, tak, aby to bylo ve stylu OOP.