Těžké OOP problémy

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #60 kdy: 07. 11. 2019, 13:30:38 »
na nějaké koncepty a SW inženýrství zvysoka šitujou a i tak píšou o řády lepší kód než někdo, kdo někde na VŠE “studoval koncepty”
Já tvrdím, že OOP koncepty lidem matou hlavy. Tahle tvoje historka je s tím tvrzením ortogonální :)
Ani ne. Jen tvrdím, že když má někdo PhD z astrofyziky, nějaký zcestný koncept ho nezmate, protože automaticky (podvědomě) ho bude ignorovat jako blbost. Ta laťka může být jinde, pro mnoho lidí je matoucím konceptem i for cyklus (bohužel i pro mnoho wannabe vývojářů). Když je někdo slabomyslný, mate mu hlavu OOP koncept stejně jako Okamura z SPD, dementní alkoholik na Hradě etc., to není vina OOP, ale onoho individua.
Amen.
A ja osobne nechapu, co je na OOP k nechapani.
Staci pouzivat selsky rozum pro dekompozici
Toto je obecně problém myšlení a přístupu k problémům (resp. problem solving). Technicky/matematicky (prostě čistě logicky) uvažující člověk rozebere problém na prvočinitele a pak mechanicky navrhne přímočaré, konceptuálně jednoduché řešení. Jakmile se k tomu ale pustí homo humanicus, jde selský rozum stranou a místo řešení problému začnou diskuse, proč by nemohlo uhlí samo naskákat na lopatu, případně, jaké pohlaví má uhlí, má-li vůbec nějaké, a není-li rasismem nazývat uhlí černým, ať už je černé nebo ne (alternativa: African-American coal).


Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #61 kdy: 07. 11. 2019, 13:33:26 »
Tak jsem si to zkusil predstavit a vysledek je furt stejny.
Zarovka je furt tupa sklenena banka, ktera sviti, kdyz v tece proud.
A je uplne jedno jestli je spoustena vypinacem na stene, elektronikou projektoru.

Ano, sitovym vypinacem, muzu ovladat PC, klidne treba i vetrak, s faktem, co je to objekt Zarovka, to nema spojecneho lautr nic.

S takhle omezenou představivostí se OOP dělá docela blbě. Možná ti lépe vyhovuje FP.

kimec

Re:Těžké OOP problémy
« Odpověď #62 kdy: 07. 11. 2019, 13:45:52 »
Mimochodem, když už jsme u té amatérské lingvistiky, tak ve filosofii se "objekt" odlišuje od "subjektu" právě tím, že je aktérem, původcem děje. A proto má i ta žárovka konat autonomně. Kdyby byla pasivní, nebyla by "objektem", ale "subjektem" :)

Asi ste chceli poukazat na tranzitivnost/netranzitivnost slovies ako nositelov vyznamu zmeny stavu u prijimatela... V prirodzenych jazykoch je nositel vyznamu prisudok, co je v drvivej vacsine sloveso (pre zjednodusenie).
Podla toho, ci je sloveso tranzitivne alebo nie je, sa "prijmatelom zmeny stavu" moze stat rovnako predmet (object) ako aj podmet (subject).

Problem s OOP je v tom, ze ludia nevedia kam so slovesami, ktore (paradoxne pre OOP dizajnerov) v prirodzenych jazykoch koduju podstatu vyznamu, ale v OOP jaksi nie su ustredna tema. Netranzitivne slovesa ludia este ako tak trafia ako virtualnu metodu na instancii, ktora meni jej stav. Ale co s tranzitivnymi slovesami? Kam ich dat? Staticke metody? No fuj.

To vsak nehovori nic o tom, ci ma ziarovka byt schopna konat autonomne.
Možná jsem příliš naivní, ale nestačilo by teda u přechodných sloves mít buď předmět nebo podmět jako vlastníka metody (this) a tu druhou gramatickou roli jako parametr? Teď tedy pomíjím rozdíl mezi gramatickou rolí a sémantickou funkcí, přechodnost (tranzitivita) je syntaktická záležitost, se sémantikou nijak nesouvisí, to jen, abychom se v tom neztratili, než se začneme věnovat pragmatice (aktuální členění větné, které má v programování také svou analogii).

No, podla mna nie. Gramatickou roli myslite co? Funkciu vetneho clena? Mozeme sa pobavit aj pragmatickych chybach. Len dnes uz nie.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #63 kdy: 07. 11. 2019, 13:52:15 »
Mimochodem, když už jsme u té amatérské lingvistiky, tak ve filosofii se "objekt" odlišuje od "subjektu" právě tím, že je aktérem, původcem děje. A proto má i ta žárovka konat autonomně. Kdyby byla pasivní, nebyla by "objektem", ale "subjektem" :)

Asi ste chceli poukazat na tranzitivnost/netranzitivnost slovies ako nositelov vyznamu zmeny stavu u prijimatela... V prirodzenych jazykoch je nositel vyznamu prisudok, co je v drvivej vacsine sloveso (pre zjednodusenie).
Podla toho, ci je sloveso tranzitivne alebo nie je, sa "prijmatelom zmeny stavu" moze stat rovnako predmet (object) ako aj podmet (subject).

Problem s OOP je v tom, ze ludia nevedia kam so slovesami, ktore (paradoxne pre OOP dizajnerov) v prirodzenych jazykoch koduju podstatu vyznamu, ale v OOP jaksi nie su ustredna tema. Netranzitivne slovesa ludia este ako tak trafia ako virtualnu metodu na instancii, ktora meni jej stav. Ale co s tranzitivnymi slovesami? Kam ich dat? Staticke metody? No fuj.

To vsak nehovori nic o tom, ci ma ziarovka byt schopna konat autonomne.
Možná jsem příliš naivní, ale nestačilo by teda u přechodných sloves mít buď předmět nebo podmět jako vlastníka metody (this) a tu druhou gramatickou roli jako parametr? Teď tedy pomíjím rozdíl mezi gramatickou rolí a sémantickou funkcí, přechodnost (tranzitivita) je syntaktická záležitost, se sémantikou nijak nesouvisí, to jen, abychom se v tom neztratili, než se začneme věnovat pragmatice (aktuální členění větné, které má v programování také svou analogii).
No, podla mna nie. Gramatickou roli myslite co? Funkciu vetneho clena? Mozeme sa pobavit aj pragmatickych chybach. Len dnes uz nie.
To je lingvistická terminologie právě pro podmět, předmět, příslovečné určení apod.

Re:Těžké OOP problémy
« Odpověď #64 kdy: 07. 11. 2019, 14:06:11 »
Mimochodem, když už jsme u té amatérské lingvistiky, tak ve filosofii se "objekt" odlišuje od "subjektu" právě tím, že je aktérem, původcem děje. A proto má i ta žárovka konat autonomně. Kdyby byla pasivní, nebyla by "objektem", ale "subjektem" :)
Tos těžce netrefil, subjekt/objekt jsou pojmy z oblasti syntaxe
Asi ste chceli poukazat na tranzitivnost/netranzitivnost slovies
Oba jste to pochopili příliš lingvisticky, já jsem myslel spíš https://en.wikipedia.org/wiki/Object_(philosophy)
...ale jak jsem u toho psaní dělal ještě něco jinýho, tak jsem to omylem otočil, takže jsem dodal argument proti tomu, co říkám (že "objekt" má být "konatel") :)


Re:Těžké OOP problémy
« Odpověď #65 kdy: 07. 11. 2019, 14:08:37 »
Já tvrdím, že OOP koncepty lidem matou hlavy.
Ani ne. Jen tvrdím, že když má někdo PhD z astrofyziky, nějaký zcestný koncept ho nezmate
Doktoři astrofyziky budou uvnitř "lidí" tvořit dost zanedbatelné procento :)

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #66 kdy: 07. 11. 2019, 14:10:07 »
Mimochodem, když už jsme u té amatérské lingvistiky, tak ve filosofii se "objekt" odlišuje od "subjektu" právě tím, že je aktérem, původcem děje. A proto má i ta žárovka konat autonomně. Kdyby byla pasivní, nebyla by "objektem", ale "subjektem" :)
Tos těžce netrefil, subjekt/objekt jsou pojmy z oblasti syntaxe
Asi ste chceli poukazat na tranzitivnost/netranzitivnost slovies
Oba jste to pochopili příliš lingvisticky, já jsem myslel spíš https://en.wikipedia.org/wiki/Object_(philosophy)
...ale jak jsem u toho psaní dělal ještě něco jinýho, tak jsem to omylem otočil, takže jsem dodal argument proti tomu, co říkám (že "objekt" má být "konatel") :)
Tak ale ty sám jsi zmínil “amatérskou lingvistiku.”

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #67 kdy: 07. 11. 2019, 14:11:08 »
Já tvrdím, že OOP koncepty lidem matou hlavy.
Ani ne. Jen tvrdím, že když má někdo PhD z astrofyziky, nějaký zcestný koncept ho nezmate
Doktoři astrofyziky budou uvnitř "lidí" tvořit dost zanedbatelné procento :)
To je pravda, ale v zápětí jsem psal, že ta laťka může být jinde, prostě jsem si dovolil nadsázku  ;)

Re:Těžké OOP problémy
« Odpověď #68 kdy: 07. 11. 2019, 14:13:00 »
Tak ale ty sám jsi zmínil “amatérskou lingvistiku.”
Já vím, napsal jsem to zmateně. Chtěl jsem říct "když už se bavíme o významech slov". Byla to narážka na předchozí ""normálně" neříkáme "objekt" skoro ničemu."

To je pravda, ale v zápětí jsem psal, že ta laťka může být jinde, prostě jsem si dovolil nadsázku  ;)
Jak říká klasik: "Trochu jsem si zapřeháněl" :)

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #69 kdy: 07. 11. 2019, 14:18:08 »
Tak ale ty sám jsi zmínil “amatérskou lingvistiku.”
Já vím, napsal jsem to zmateně. Chtěl jsem říct "když už se bavíme o významech slov". Byla to narážka na předchozí ""normálně" neříkáme "objekt" skoro ničemu."
To už je ale slovíčkaření. Do filosofie bych se teď nerad pouštěl, a už vůbec ne té kontinentální.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #70 kdy: 07. 11. 2019, 14:19:14 »
To je pravda, ale v zápětí jsem psal, že ta laťka může být jinde, prostě jsem si dovolil nadsázku  ;)
Jak říká klasik: "Trochu jsem si zapřeháněl" :)
Ano, velmi zlehka. Ruku na srdce, každý z nás pár astrofyziků zná, oder?

Re:Těžké OOP problémy
« Odpověď #71 kdy: 07. 11. 2019, 14:22:35 »
Rad bych videl architektonicke vytvory mistniho osazenstva, to musi byt veru zajimave cteni...
No problem. Nejnovější veřejně dostupný kód: https://github.com/mprymek/PeaLC/tree/master/firmware/ - víceméně tak, jak byl napsaný, na první dobrou, ještě bez většího review a dokumentace, pořád trochu v pohybu.

Re:Těžké OOP problémy
« Odpověď #72 kdy: 07. 11. 2019, 14:23:16 »
Ano, velmi zlehka. Ruku na srdce, každý z nás pár astrofyziků zná, oder?
Já ne :)

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #73 kdy: 07. 11. 2019, 14:49:29 »
Ano, velmi zlehka. Ruku na srdce, každý z nás pár astrofyziků zná, oder?
Já ne :)
To byla ironie ;)

Re:Těžké OOP problémy
« Odpověď #74 kdy: 07. 11. 2019, 16:40:45 »
... napriklad, ze atribut User v session na webu neni modelem cloveka, ale ze je to model listku do pichacky daneho  cloveka na vratnici. Pak ho nenapadaj peachoviny jako User.zabookijSiObedVKantyne(), protoze kartotecni listky tohle obvykle nedelaji. A ze tam parti User.prichod(cas), user.odchod(cas) apod.
Nebo ze je logicke mit Lopata.naberUhli() a ne Uhli.naskakejNaLopatu().

Je zajimave, co jsou schopni lidi vymyslet za selmostroje a zakonity fail svedou na paradigma.

Kdo má tedy kompetenci zabookování obědu v kantýně? User si vybere jídlo z Menu a pošle požadavek do Canteen.

Také bych raději použil User.add(new Prichod) a User.add(new Odchod). Případně Lopata.naber(new Uhli).

To je presne o cem mluvim.
Zabookovani obeda dela uzivatel, mysleno entita sedici za monitorem pocitace, k tomu pouzije pres nejaky MVC view a servicu Canteen.registerObed(menuitem), ktery si vnitrne ze session nacte, jaky User se to teda registruje.
Strkat registraci obeda do Usera, tedy do listku pichacky, ma asi podobnou logiku, jako zajit na vratnici, rict tomu listku at mi alokuje obed, tomu narostou nozicky a zabehne do kantyny s timto requestem.