IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:14.9.2013 13:29

To máme stejný názor. Problém je, že programátorské prase = každý druhý programátor. Jsou to z většiny bušiči, kterým je jedno jak to bude vypadat a jsou někdy i placení od počtu řádků. Proto by ten jazyk měl mít nějaké restrikce. EDIT: A co největší základní knihovnu objektů pro běžné situace. Se stavebnicí se toho tolik zkazit nedá.

Editováno 14.9.2013 13:30
Odpovědět
14.9.2013 13:29
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:14.9.2013 13:30

Například šablony pro Smarty jsou imperativní a kvůli tomu musí být rozděleny do více částí (hlavička, střed, patička,...). Když tu šablonu uděláš deklarativně nebo objektově, tak ji v klidu strčíš do jednoho souboru a vypadá mnohem přehledněji a udržovatelněji.

Nahoru Odpovědět
14.9.2013 13:30
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Hartinger
Luboš Běhounek Satik:14.9.2013 14:02

Uh, placen podle počtu řádků? S tím jsem se ještě nepotkal :D

Nahoru Odpovědět
14.9.2013 14:02
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:14.9.2013 14:06

Hmm, to bych splakal nad výdělkem nebo bych si musel účtovat aspoň 100 Kč/řádek :)

Editováno 14.9.2013 14:06
Nahoru Odpovědět
14.9.2013 14:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:14.9.2013 14:09

Kupodivu mi základní knihovna objektů připadá OK. Možná proto, že ty třídy používají rozhraní, které je pro mne akceptovatelné, mohu si je rozšířit a nemusím se přitom dívat do zdrojového kódu, jak to ten autor myslel.

Nahoru Odpovědět
14.9.2013 14:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Lukáš Hruda
Tvůrce
Avatar
Lukáš Hruda:14.9.2013 15:12

Luboš Běhounek Satik, Kit

Osobně hlavní rozdíl v OOP přístupu mezi C++ a moderními jazyky vidím v tom, že C++ bere objekty jako klasické proměnné a umožňuje programátorovy s nimi tak i zacházet. Zatímco Java nebo C# s objekty zachází jinak než s primitivními typy (systém referencí). Co se týče vracení objektů, tak pokud v daném případě nijak zásadně nezáleží na rychlosti, pak není problém vrátit objekt pomocí dočasné proměnné, která se zkopíruje. Jinak můžeš využít třeba smart pointery.

 
Nahoru Odpovědět
14.9.2013 15:12
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Lukáš Hruda
Kit:14.9.2013 15:28

Ty dočasné proměnné jsou při návratu problém, protože ji musíš ve volající metodě mít dostupnou, což je zátěž navíc. Pokud neznáš její typ, je to problém. Pokud návratovou hodnotu vložíš přímo jako parametr do další metody, tak to rozhraní musí znát až ta volaná metoda.

Messenger se prostě bez návratu returnem dělá blbě.

Nahoru Odpovědět
14.9.2013 15:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Panda38
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Panda38:15.9.2013 8:57

Neprogramátoři (např. zaměstnavatelé) mají počet řádků často jaké jediné měřítko které jsou schopni posoudit. V dobách SAPI se měřila pravítkem výška stohu listingů programu.

 
Nahoru Odpovědět
15.9.2013 8:57
Avatar
Panda38
Tvůrce
Avatar
Odpovídá na Lukáš Hruda
Panda38:15.9.2013 9:37

C++ může pracovat s objekty úplně stejně jako jiné jazyky (jako např. Java). U sdílených objektů (obrázky, texty) se používá také počítadlo referencí na objekt - viz např. CString z ATL. O snížení počítadla a zrušení objektu se stará destruktor lokálního objektu. Lze tak objekt vytvořit v nějaké funkci, vrátit jej v návratové hodnotě a předat jiným funkcím či objektům, aniž je třeba se starat o jeho životnost. Dobrým příkladem jsou COM objekty.

Ve skutečnosti mezi objektovým a strukturovaným programováním není až tak propastný rozdíl. Objekty jsou jen běžné struktury, jen se zjednodušil zápis a funkcím (metodám) se předává skrytě ukazatel na objekty (=struktury). Spíš že OOP nutí programátora k přehlednějšímu přístupu k programu a zjednodušuje tak práci. Dá se programovat čistě i v assembleru a naopak prasácky ve vysokém jazyce.

Objektově programovat lze i v základním C, jen musí programátor zajišťovat to, co jinak dělá OOP skrytě - předávat funkcím ukazatel na struktury (objekty), volat konstruktory a destruktory. Lze takto používat i referenční čítače počtu vlastníků objektů nebo virtuální funkce. V názvech metod pro přehlednost namísto teček uvádět např. podtržítka: Picture_Flip. Při dědění struktury se musí bázová struktura explicitně vložit (z nějakého důvodu nebylo v C pamatováno na odvozování struktur). Takto lze programovat objektově např. u jednočipů.

Na druhou stranu lze používat OOP (např. C++) i u nízkoúrovňovějších záležitostí jako např. programování kernelu systémů, není nutné používat C. Jen je nutné před prvním použitím objektů inicializovat správce paměti a explicitně zavolat konstruktor globálních objektů.

 
Nahoru Odpovědět
15.9.2013 9:37
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 59.