Je lepší začít s C nebo C++?

Kit

Re:Je lepší začít s C nebo C++?
« Odpověď #105 kdy: 08. 01. 2017, 01:16:31 »
Kontext bol, ze je nutne pouzivat Utility classes so statickymi metodami, lebo metody musia patrit triede.

Není jednodušší místo statické metody umístit plnokrevnou metodu do třídy, ve které ji potřebuji použít?

Z dovodu redundancie kodu nie. Ak ju pouzijete raz, tak samozrejme, vytvorite private metodu. Ale ak ju uz potrebujete vo viacerych objektoch, uz treba pouzit ine riesenie. (alebo dalsi dovod, ze uz mate privela pomocnych private metod v classe a zneprehladnuje to kod)

Proč bych měl definovat stejnou metodu ve více třídách? O jakou redundanci se jedná? Proč by měl být počet pomocných metod důvodem k jejich vytržení z kontextu třídy?


balki

Re:Je lepší začít s C nebo C++?
« Odpověď #106 kdy: 08. 01. 2017, 09:28:16 »
Citace: Kit

Proč bych měl definovat stejnou metodu ve více třídách? O jakou redundanci se jedná?

Proto, ze ste to tak napisali.

Citace: Kit
Není jednodušší místo statické metody umístit plnokrevnou metodu do třídy, ve které ji potřebuji použít?

Ked miesto "pomocnej" metody mimo triedy pouzijete "plnokrevnou ve tride, kde ju potrebujete pouzit" implikuje to, ze nebude "mimo tridy, kde ji potrebujete pouzit".  Cize, to znemoznuje vytvorit metodu inde a tym padom je ju treba kopirovat. Jedina moznost mi napada prasenie, ktore by vsak nikto neurobil, ze spravit pomocnu metodu public a pridat triede zodpovednost, ktoru nema mat.



Citace: Kit
Proč by měl být počet pomocných metod důvodem k jejich vytržení z kontextu třídy?

Robi to triedu neprehladnejsou, ak je v nej vela pomocnych metod. Z triedy by sa mala dat vycitat funkcionalita, ktoru ma na zodpovednosti. Ak je  v triede vela pomocnych metod, zatazuju programatora nedolezitymi vecami. Intuitivne treba vediet, kedy je "bordel" este vporiadku, a kedy ho je vela a treba ho vynat.

Kit

Re:Je lepší začít s C nebo C++?
« Odpověď #107 kdy: 08. 01. 2017, 09:48:41 »
Citace: Kit

Proč bych měl definovat stejnou metodu ve více třídách? O jakou redundanci se jedná?
Proto, ze ste to tak napisali.
Citace: Kit
Není jednodušší místo statické metody umístit plnokrevnou metodu do třídy, ve které ji potřebuji použít?
Ked miesto "pomocnej" metody mimo triedy pouzijete "plnokrevnou ve tride, kde ju potrebujete pouzit" implikuje to, ze nebude "mimo tridy, kde ji potrebujete pouzit".  Cize, to znemoznuje vytvorit metodu inde a tym padom je ju treba kopirovat. Jedina moznost mi napada prasenie, ktore by vsak nikto neurobil, ze spravit pomocnu metodu public a pridat triede zodpovednost, ktoru nema mat.

Tu metodu přece nebudu potřebovat jinde než tam, kde s takovým objektem potřebuji pracovat.

Citace: balki
Citace: Kit
Proč by měl být počet pomocných metod důvodem k jejich vytržení z kontextu třídy?

Robi to triedu neprehladnejsou, ak je v nej vela pomocnych metod. Z triedy by sa mala dat vycitat funkcionalita, ktoru ma na zodpovednosti. Ak je  v triede vela pomocnych metod, zatazuju programatora nedolezitymi vecami. Intuitivne treba vediet, kedy je "bordel" este vporiadku, a kedy ho je vela a treba ho vynat.

Co je to "vela pomocnych metod"? Je to víc než 4 nebo 6? Jak poznám, že "je to moc"? Pokud vyndám metodu ven ze třídy, tak bych neměl přístupné privátní atributy třídy, všechny bych tedy musel uvádět do parametrů metody. To by bylo poněkud nepraktické.

balki

Re:Je lepší začít s C nebo C++?
« Odpověď #108 kdy: 08. 01. 2017, 10:19:18 »
Citace: Kit
Tu metodu přece nebudu potřebovat jinde než tam, kde s takovým objektem potřebuji pracovat.

Ked je to metoda typu "vytvor datum poslednej nedele v minulom mesiaci". Ok, kravinka. Ale zrazu sa zisti, ze to bude treba aj inde.  Co potom?

Citace: Kit
Co je to "vela pomocnych metod"? Je to víc než 4 nebo 6? Jak poznám, že "je to moc"? Pokud vyndám metodu ven ze třídy, tak bych neměl přístupné privátní atributy třídy, všechny bych tedy musel uvádět do parametrů metody. To by bylo poněkud nepraktické.

Je to na uvazeni programatora, co sa mu zda "moc". Styri alebo 6 ? Moze byt ok? Nemusi byt? 6 az 15?  Ono aj ten pristup k privatnym fieldom triedy sa da pouzivat s rozumom - uvedomit si, co staci mat na stacku, a co je nutne privatny field (atribut ak to tak chcete). Ak je privatnych fieldov viac nez treba, byva v nich kadejaky neporiadok  a sklzava to k roznym pascalizmom, kedy je komplikovane odsledovat stav prebiehajuceho algoritmu. ( Nehovoriac, ze pri paralelizme je potom potrebne strazit vela zdielaneho kontextu)

Kit

Re:Je lepší začít s C nebo C++?
« Odpověď #109 kdy: 08. 01. 2017, 10:34:03 »
Citace: Kit
Tu metodu přece nebudu potřebovat jinde než tam, kde s takovým objektem potřebuji pracovat.
Ked je to metoda typu "vytvor datum poslednej nedele v minulom mesiaci". Ok, kravinka. Ale zrazu sa zisti, ze to bude treba aj inde.  Co potom?

Na tohle je přece knihovní funkce, ale dobrá, je to příklad. Tu metodu prostě umístím do třídy Datum a budu ji mít k dispozici všude, kde budu pracovat s datem.

Citace: Kit
Co je to "vela pomocnych metod"? Je to víc než 4 nebo 6? Jak poznám, že "je to moc"? Pokud vyndám metodu ven ze třídy, tak bych neměl přístupné privátní atributy třídy, všechny bych tedy musel uvádět do parametrů metody. To by bylo poněkud nepraktické.
Je to na uvazeni programatora, co sa mu zda "moc". Styri alebo 6 ? Moze byt ok? Nemusi byt? 6 az 15?  Ono aj ten pristup k privatnym fieldom triedy sa da pouzivat s rozumom - uvedomit si, co staci mat na stacku, a co je nutne privatny field (atribut ak to tak chcete). Ak je privatnych fieldov viac nez treba, byva v nich kadejaky neporiadok  a sklzava to k roznym pascalizmom, kedy je komplikovane odsledovat stav prebiehajuceho algoritmu. ( Nehovoriac, ze pri paralelizme je potom potrebne strazit vela zdielaneho kontextu)

Obvykle mívám ve třídě 2-4 atributy a 4-6 metod dohromady, takže na tyto hranice nenarážím. Atributy jsou nutné jen tam, kde potřebuji perzistenci objektu - na lokální proměnné metody je stack výhodnější, nehledě k tomu, že se to i lépe čte.


balki

Re:Je lepší začít s C nebo C++?
« Odpověď #110 kdy: 08. 01. 2017, 10:39:45 »
Citace: Kit
Tu metodu přece nebudu potřebovat jinde než tam, kde s takovým objektem potřebuji pracovat.
Ked je to metoda typu "vytvor datum poslednej nedele v minulom mesiaci". Ok, kravinka. Ale zrazu sa zisti, ze to bude treba aj inde.  Co potom?

Na tohle je přece knihovní funkce, ale dobrá, je to příklad. Tu metodu prostě umístím do třídy Datum a budu ji mít k dispozici všude, kde budu pracovat s datem.

Citace: Kit
Co je to "vela pomocnych metod"? Je to víc než 4 nebo 6? Jak poznám, že "je to moc"? Pokud vyndám metodu ven ze třídy, tak bych neměl přístupné privátní atributy třídy, všechny bych tedy musel uvádět do parametrů metody. To by bylo poněkud nepraktické.
Je to na uvazeni programatora, co sa mu zda "moc". Styri alebo 6 ? Moze byt ok? Nemusi byt? 6 az 15?  Ono aj ten pristup k privatnym fieldom triedy sa da pouzivat s rozumom - uvedomit si, co staci mat na stacku, a co je nutne privatny field (atribut ak to tak chcete). Ak je privatnych fieldov viac nez treba, byva v nich kadejaky neporiadok  a sklzava to k roznym pascalizmom, kedy je komplikovane odsledovat stav prebiehajuceho algoritmu. ( Nehovoriac, ze pri paralelizme je potom potrebne strazit vela zdielaneho kontextu)

Obvykle mívám ve třídě 2-4 atributy a 4-6 metod dohromady, takže na tyto hranice nenarážím. Atributy jsou nutné jen tam, kde potřebuji perzistenci objektu - na lokální proměnné metody je stack výhodnější, nehledě k tomu, že se to i lépe čte.

Ved vy vsetko viete, tak naco sa potom pytate? Pripomina mi to legendarny rozhovor Dura Mokreho so Zichom a Lauferom.

Kiwi

Re:Je lepší začít s C nebo C++?
« Odpověď #111 kdy: 08. 01. 2017, 10:43:30 »
Sam mam diskalkuliu, ale matematicka analyza a algebra a logika mi isli dobre.

To ale tvrdíš ty. Třeba máš jen vysoké sebevědomí, jak je dnes obvyklé.

P. S.: dyskalkulie se píše s ypsilon

podlesh

Re:Je lepší začít s C nebo C++?
« Odpověď #112 kdy: 08. 01. 2017, 10:43:51 »
Jinak pokud to neni popularni jak se to nahrazuje? Ono prave staticke metody vznikaju za urcitim cilem a potreby. V podstate se tim obchazi limitace jazyka. Pokud by jazyk umoznoval psat i funkce ktere nejsou soucasti trid tak staticke metody nejsou potreba.
To je zase diskuse, koukám...

Statické metodě v Javě jsou prostě normální funkce (procedury) které v podstatě nejsou součástí třídy. Jejich umístění do některé třídy je skutečně jen namespace. Můžeme to sice nějak ideologicky maskovat, ale to je asi tak vše. I když furt lepší než tvrdit že "OOP v Javě je promakané" - to už je vyloženě prohlášení na úrovní "pátá pětiletka už téměř dosáhla komunismu".

balki

Re:Je lepší začít s C nebo C++?
« Odpověď #113 kdy: 08. 01. 2017, 10:50:48 »
Sam mam diskalkuliu, ale matematicka analyza a algebra a logika mi isli dobre.

To ale tvrdíš ty. Třeba máš jen vysoké sebevědomí, jak je dnes obvyklé.

P. S.: dyskalkulie se píše s ypsilon

Ok, dostali ste ma, som hlupak. Skolstvo mi cely cas klamalo uz od zakladky.
Naviac som spravil preklep v cudzom slove.

gll

Re:Je lepší začít s C nebo C++?
« Odpověď #114 kdy: 08. 01. 2017, 11:14:46 »
Použití nebo nepoužití statických metod je jen otázka konvencí. Hádat se o tom bez odkazu na nějaký style guide je nesmysl. Každá knihovna k tomu přistupuje jinak a na jejich použitelnost to nemá žádný vliv.

gll

Re:Je lepší začít s C nebo C++?
« Odpověď #115 kdy: 08. 01. 2017, 11:19:58 »
Studium algebry a analýzy bez znalosti malé násobilky musí být dobrý masochismus.

balki

Re:Je lepší začít s C nebo C++?
« Odpověď #116 kdy: 08. 01. 2017, 11:32:21 »
Studium algebry a analýzy bez znalosti malé násobilky musí být dobrý masochismus.

Nie je. Iba studium linearnej algebry bez znalosti malej nasobilky je masochizmus. Linearnu algebru mi cviciaca dala vyzrat aj s podrazkami. A stale mi chcela dokazovat, ze to neviem aj napriek tomu, ze som ovladal principy, holt len cisla mi ulietavali. Nakoniec som skusku presiel na D-cko, lebo som mal malo zo zapoctu.  Velka cast matematiky je natolko abstraktna, ze ani nie je potrebne tu malu nasobilku celu poznat. (Respektive ju netreba vediet rychlo pouzivat)

gll

Re:Je lepší začít s C nebo C++?
« Odpověď #117 kdy: 08. 01. 2017, 11:53:17 »
Studium algebry a analýzy bez znalosti malé násobilky musí být dobrý masochismus.

Nie je. Iba studium linearnej algebry bez znalosti malej nasobilky je masochizmus. Linearnu algebru mi cviciaca dala vyzrat aj s podrazkami. A stale mi chcela dokazovat, ze to neviem aj napriek tomu, ze som ovladal principy, holt len cisla mi ulietavali. Nakoniec som skusku presiel na D-cko, lebo som mal malo zo zapoctu.  Velka cast matematiky je natolko abstraktna, ze ani nie je potrebne tu malu nasobilku celu poznat. (Respektive ju netreba vediet rychlo pouzivat)

V matematice se běžně postupuje od konkrétního k obecnému. Číselné příklady se používají i na nejlepších univerzitách. Podívejte se na přednášky Gilberta Stranga.

balki

Re:Je lepší začít s C nebo C++?
« Odpověď #118 kdy: 08. 01. 2017, 12:19:38 »
Studium algebry a analýzy bez znalosti malé násobilky musí být dobrý masochismus.

Nie je. Iba studium linearnej algebry bez znalosti malej nasobilky je masochizmus. Linearnu algebru mi cviciaca dala vyzrat aj s podrazkami. A stale mi chcela dokazovat, ze to neviem aj napriek tomu, ze som ovladal principy, holt len cisla mi ulietavali. Nakoniec som skusku presiel na D-cko, lebo som mal malo zo zapoctu.  Velka cast matematiky je natolko abstraktna, ze ani nie je potrebne tu malu nasobilku celu poznat. (Respektive ju netreba vediet rychlo pouzivat)

V matematice se běžně postupuje od konkrétního k obecnému. Číselné příklady se používají i na nejlepších univerzitách. Podívejte se na přednášky Gilberta Stranga.

Je to bezne pouzivany postup, no vacsinou sa konkretne uvadza kvoli uplnosti, aby vyklad nestal na vode. Ak je to pouzivane aj inak, tak preto, ze vacsina ludi lepsie rozumie cislam, nez abstrakciam. 

Inym zasa ale nejdu cisla, ale idu im abstrakcie. Taki si musia pretrpiet hranie sa na zivu kalkulacku a nevzdat sa. Lahsia cast uciva nasleduje az potom.

Kit

Re:Je lepší začít s C nebo C++?
« Odpověď #119 kdy: 08. 01. 2017, 12:22:23 »
V matematice se běžně postupuje od konkrétního k obecnému. Číselné příklady se používají i na nejlepších univerzitách. Podívejte se na přednášky Gilberta Stranga.

Programátorovi stačí znát tři čísla: 0, 1 a ∞.