OOP a servisní třídy

Re:OOP a servisní třídy
« Odpověď #60 kdy: 26. 06. 2017, 15:16:26 »
Co je to třída?

Odporucam wikipediu:
https://en.wikipedia.org/wiki/Class-based_programming


To já samozřejmě znám, ale nějak mi nejde přes pysky "servisní třídy". Rozuměl bych "servisním objektům". V programu totiž třída ztrácí smysl, je to jen pouhá šablona layoutu výsledného objektu a nějakých drobností kolem (jako tabulka vt)


baron

Re:OOP a servisní třídy
« Odpověď #61 kdy: 26. 06. 2017, 15:24:09 »
Pozdě: https://www.itnetwork.cz/nezarazene/programovaci-jazyky-rychlost-spusteni-aplikace
kde mas C#? lidi chteji taky C#, viz. komentare. Jo to ty neumis! Ono PHP je sracka, nevim ve ktery zaprdeny firme jeste v tom delaji. Jses zaspal dobu nebo co? Java nebo C# budou mozna pomalejsi, jenomze vyvoj bude rychlejsi a snadnejsi nez v PHP ;). Dnes se moc na rychlost nehraje a nesnaz se namluvit, ze delas v PHP pro embedded zarizeni :D

Kit

Re:OOP a servisní třídy
« Odpověď #62 kdy: 26. 06. 2017, 15:36:56 »
Pozdě: https://www.itnetwork.cz/nezarazene/programovaci-jazyky-rychlost-spusteni-aplikace
kde mas C#? lidi chteji taky C#, viz. komentare. Jo to ty neumis! Ono PHP je sracka, nevim ve ktery zaprdeny firme jeste v tom delaji. Jses zaspal dobu nebo co? Java nebo C# budou mozna pomalejsi, jenomze vyvoj bude rychlejsi a snadnejsi nez v PHP ;). Dnes se moc na rychlost nehraje a nesnaz se namluvit, ze delas v PHP pro embedded zarizeni :D

Když jsem psal ten článek, tak byl C# teprve v začátcích a byl docela minoritní. Později jsem sice udělal totéž pro Mono, ale do článku jsem to už doplnit nemohl. Nemám však důvod dělat v C#, aplikace se stejně nedá přeložit do nativního kódu. Z mého pohledu je ten jazyk dost mimo, protože usnadňuje vývojářům nežádoucí konstrukce a naopak jsou v něm některé žádané konstrukce dost obstruktivní.

A co ty tvé servisní třídy (resp. správněji servisní objekty)? Už jsi nějaké napsal?

baron

Re:OOP a servisní třídy
« Odpověď #63 kdy: 26. 06. 2017, 15:42:58 »
Neda prelozit do nativniho kodu? Ty jsi snad delas zadek! Rika ti neco .net native toolchain? Komentare jsou z roku 2013, C# existuje jiz pekne dlouho, nekdy od 2002. Uz ve 2013 byl o hodne dal nez php ;).

phpmatlator

Re:OOP a servisní třídy
« Odpověď #64 kdy: 26. 06. 2017, 15:50:22 »
Čudujem sa že na toho PHPčkarskeho tro(t)lla vôbec reagujete.


Re:OOP a servisní třídy
« Odpověď #65 kdy: 26. 06. 2017, 16:07:53 »
To já samozřejmě znám, ale nějak mi nejde přes pysky "servisní třídy". Rozuměl bych "servisním objektům". V programu totiž třída ztrácí smysl, je to jen pouhá šablona layoutu výsledného objektu a nějakých drobností kolem (jako tabulka vt)
Pozor, tohle rozhodně neplatí o všech jazycích. Ve slušném objektovém systému je třída také normální entita (objekt).

To je samozřejmě offtopic.

Kit

Re:OOP a servisní třídy
« Odpověď #66 kdy: 26. 06. 2017, 16:16:42 »
Neda prelozit do nativniho kodu? Ty jsi snad delas zadek! Rika ti neco .net native toolchain? Komentare jsou z roku 2013, C# existuje jiz pekne dlouho, nekdy od 2002. Uz ve 2013 byl o hodne dal nez php ;).

Matlat něco v C# by se mi vážně nechtělo. Proč taky? Existuje přece hromada lepších jazyků, alespoň z mého pohledu. Pokud jsem si správně všiml, tak .NET Native Toolchain generuje pouze EXE a DLL. To moc nativně nezní. Co třeba ELF?

PHP je moderním objektovým jazykem, ale nikomu ho nevnucuji. Pište si své programy v čem chcete.

Kit

Re:OOP a servisní třídy
« Odpověď #67 kdy: 26. 06. 2017, 16:20:56 »
To já samozřejmě znám, ale nějak mi nejde přes pysky "servisní třídy". Rozuměl bych "servisním objektům". V programu totiž třída ztrácí smysl, je to jen pouhá šablona layoutu výsledného objektu a nějakých drobností kolem (jako tabulka vt)
Pozor, tohle rozhodně neplatí o všech jazycích. Ve slušném objektovém systému je třída také normální entita (objekt).

O důvod víc, proč tomu říkat raději "servisní objekt" nebo ve větším měřítku "servisní vrstva".

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:OOP a servisní třídy
« Odpověď #68 kdy: 26. 06. 2017, 16:55:27 »
To já samozřejmě znám, ale nějak mi nejde přes pysky "servisní třídy". Rozuměl bych "servisním objektům". V programu totiž třída ztrácí smysl, je to jen pouhá šablona layoutu výsledného objektu a nějakých drobností kolem (jako tabulka vt)
Pozor, tohle rozhodně neplatí o všech jazycích. Ve slušném objektovém systému je třída také normální entita (objekt).

To je samozřejmě offtopic.
Takových jazyků ale moc není (bohužel). Z čistě pragmatického pohledu to ani moc nutné není, jsou důležitější vlastnosti.

Re:OOP a servisní třídy
« Odpověď #69 kdy: 26. 06. 2017, 17:03:06 »
Neda prelozit do nativniho kodu? Ty jsi snad delas zadek! Rika ti neco .net native toolchain? Komentare jsou z roku 2013, C# existuje jiz pekne dlouho, nekdy od 2002. Uz ve 2013 byl o hodne dal nez php ;).

Matlat něco v C# by se mi vážně nechtělo. Proč taky? Existuje přece hromada lepších jazyků, alespoň z mého pohledu. Pokud jsem si správně všiml, tak .NET Native Toolchain generuje pouze EXE a DLL. To moc nativně nezní. Co třeba ELF?

PHP je moderním objektovým jazykem, ale nikomu ho nevnucuji. Pište si své programy v čem chcete.

Co jiného by měl produkovat? Jeho výstupem je nativní binárka na stroji s Windows OS. Jen ten kompilátor není multiplatformní. Popravdě dlouho jsem o tom zas neslyšel, ale jak koukám třeba na Scalu a Kotlin, začíná to být populární -- kromě dnes časté transpilace do JS.

kimec

Re:OOP a servisní třídy
« Odpověď #70 kdy: 27. 06. 2017, 09:08:57 »
To já samozřejmě znám, ale nějak mi nejde přes pysky "servisní třídy". Rozuměl bych "servisním objektům". V programu totiž třída ztrácí smysl, je to jen pouhá šablona layoutu výsledného objektu a nějakých drobností kolem (jako tabulka vt)
Pozor, tohle rozhodně neplatí o všech jazycích. Ve slušném objektovém systému je třída také normální entita (objekt).

O důvod víc, proč tomu říkat raději "servisní objekt" nebo ve větším měřítku "servisní vrstva".

Svata prostoto. To, ze sa Magda nevie vyjadrovat jednoznacne a neupresnila programovaci jazyk, nechame bokom, ale ak Magda v oboch svojich prispevkoch spomenula podstatne meno zenskeho rodu trieda, myslite si, ze hovorila o implementacii sluzieb (v najsirsom slova zmysle) v:

a) prototypovom jazyku
b) pure funkcionalnom jazyku
c) class based jazyku (cough, cough, trieda) <--------------------- SPRAVNA ODPOVEDtm

A teraz mi prosim vysvetlite, ako inak sa da v class based jazyku vytvorit "servisny objekt" bez tej "servisnej triedy", ktora je "jen pouhá šablona" s jeho implementaciou?

...makes you wonder.

Kit

Re:OOP a servisní třídy
« Odpověď #71 kdy: 27. 06. 2017, 09:42:03 »
A teraz mi prosim vysvetlite, ako inak sa da v class based jazyku vytvorit "servisny objekt" bez tej "servisnej triedy", ktora je "jen pouhá šablona" s jeho implementaciou?

V class based jazyku musíš vytvořit třídu, v ostatních nemusíš. Výsledkem je v obou případech servisní objekt.

Re:OOP a servisní třídy
« Odpověď #72 kdy: 27. 06. 2017, 13:31:29 »
To já samozřejmě znám, ale nějak mi nejde přes pysky "servisní třídy". Rozuměl bych "servisním objektům". V programu totiž třída ztrácí smysl, je to jen pouhá šablona layoutu výsledného objektu a nějakých drobností kolem (jako tabulka vt)
Pozor, tohle rozhodně neplatí o všech jazycích. Ve slušném objektovém systému je třída také normální entita (objekt).

O důvod víc, proč tomu říkat raději "servisní objekt" nebo ve větším měřítku "servisní vrstva".

Svata prostoto. To, ze sa Magda nevie vyjadrovat jednoznacne a neupresnila programovaci jazyk, nechame bokom, ale ak Magda v oboch svojich prispevkoch spomenula podstatne meno zenskeho rodu trieda, myslite si, ze hovorila o implementacii sluzieb (v najsirsom slova zmysle) v:

a) prototypovom jazyku
b) pure funkcionalnom jazyku
c) class based jazyku (cough, cough, trieda) <--------------------- SPRAVNA ODPOVEDtm

A teraz mi prosim vysvetlite, ako inak sa da v class based jazyku vytvorit "servisny objekt" bez tej "servisnej triedy", ktora je "jen pouhá šablona" s jeho implementaciou?

...makes you wonder.

S termínem servisní třída mám problém, protože ho neznám. Pokud jde o nějakou knihovnu bezstavových operací, tak spíš než třídu používám normální namespace. Chápu tedy, že v jazycích, které nemají namespace musím toto zabalit do třídy. Tomu bych rozuměl.

To co já nazývám servisními objekty, nebo často servisními interfacemi jsou objekty/interface, které obsahují hromadu metod, které spolu moc nemusí souviset, některé jsou stavové, jiné bezstavová, často jsou tam továrny. Zahrnutí do interface má ten význam, že skrývám implementaci, buď proto, že nechci aby byla vidět, nebo většinou proto, že v tom místě není definována (je dodána později). To třeba umožňuje nahradit skutečnou implementaci mockupem.

Servisní objekt skrze interface se buď předává do funkčních objektů přes konstruktor, někdy je dodáván později, někdy se dá za běhu změnit, záleží na typu objektu. Někdy jej mám globální nebo thread lokální, pokud jde o něco hodně základního. Třeba logovací service je zpravidla thread lokální, abych služby logování měl k dispozici všude a abych si nemusel logovací objekt předávat mezi objekty do zblbnutí.

Thread lokální objekty nadále neztrácí možnost funkcionalitu dočasně změnit, třeba v rámci následujícího volání mohu chtít změnit logovacího objektu, a po návratu z vrátím stav služby do původního stavu.


Re:OOP a servisní třídy
« Odpověď #73 kdy: 27. 06. 2017, 13:41:18 »
A ještě doplnění. v jazycích s třídami předpokládám, že

objekt = instance třídy

Re:OOP a servisní třídy
« Odpověď #74 kdy: 27. 06. 2017, 13:41:52 »
To co já nazývám servisními objekty, nebo často servisními interfacemi jsou objekty/interface, které obsahují hromadu metod, které spolu moc nemusí souviset, některé jsou stavové, jiné bezstavová, často jsou tam továrny. Zahrnutí do interface má ten význam, že skrývám implementaci, buď proto, že nechci aby byla vidět, nebo většinou proto, že v tom místě není definována (je dodána později). To třeba umožňuje nahradit skutečnou implementaci mockupem.

Takže servisní interface = fasáda?