Avatar
Energy
Člen
Avatar
Energy:

V posledním znaku { mi to hází 2 chyby nevíte čím by to mohlo být?

 
Odpovědět 11.6.2012 7:35
Avatar
Odpovídá na Energy
David Jančík [sczdavos]:

Můžeš nám poslat zdrojový kód se zvýrazněným řádkem, kde je chyba?

Nahoru Odpovědět 11.6.2012 7:39
Čím více času dostaneš, tím méně ho máš.
Avatar
Energy
Člen
Avatar
Energy:

Chybu už jsem vyřešil.

 
Nahoru Odpovědět 11.6.2012 7:45
Avatar
Odpovídá na Energy
David Jančík [sczdavos]:

Mohl by jsi sem alespoň poslat kód a říci jak jsi chybu vyřešil? Teď je toto vlákno naprosto zbytečné. Poděl se s uživateli, když někdo bude řešit stejný problém, tak jej odkážeš na toto vlákno...

Nahoru Odpovědět 11.6.2012 7:52
Čím více času dostaneš, tím méně ho máš.
Avatar
Energy
Člen
Avatar
Energy:

Problém byl jen v umístění bloků {} měl jsem tam jeden který nikde nekončil.

 
Nahoru Odpovědět 11.6.2012 13:56
Avatar
Odpovídá na Energy
David Jančík [sczdavos]:

Když píšu v PHPčku a používám jen editor, taky se mi občas stane, že mi někde přebývá nebo chybí závorka.
Ale VS tohle krásně zobrazuje (dáš kurzor k závorce a on ukáže, kterou závorkou končí a kterou začíná) a vypisuje chyby, takže tady to hned odladíš :)

Nahoru Odpovědět 11.6.2012 14:30
Čím více času dostaneš, tím méně ho máš.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
Kit:

Hlídání párovosti závorek má dnes už asi většina používaných editorů. Například v Lispu by se bez toho už asi nedalo programovat.

Nahoru Odpovědět 11.6.2012 14:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

David spíš myslel, že IDE ti zařve (protože tomu jazyku rozumí). Editor ti sice pomůže závorky párovat, ale sám tě neupozorní nebo jsem to alespoň neviděl.

Mimochodem, v čem píšeš PHP?

Nahoru Odpovědět 11.6.2012 15:18
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Píšu v editoru Vim. Umí po těch závorkách i skákat.

Nahoru Odpovědět 11.6.2012 15:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Já jsem si to myslel, že máš Vim :D Já teď zkoušel NetBeans, v PHP jsem v něm ještě nedělal, ale funguje to docela hezky.

Nahoru Odpovědět 11.6.2012 15:38
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Mně se na těchto IDE nelíbí, že jsou hrozně pomalá. Než se projekt otevře, trvá to celou věčnost. Také jsem na nich pochopil, proč někomu vadí i jen několik set souborů v jednom adresáři. Než se to nalistuje...

Z podobných důvodů jsem přestal používat jinak skvělý program Freemind.

Nahoru Odpovědět 11.6.2012 17:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 11.6.2012 17:29
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Jak jsem si ověřil, Java není pomalá. Pomalé jsou pouze chybně napsané aplikace. Když se dívám na aktuální programátorské poklesky, které se i vyučují, tak se ani nedivím.

Nahoru Odpovědět 11.6.2012 23:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Co máš konkrétně na mysli?

Nahoru Odpovědět 12.6.2012 8:01
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Ono je toho víc, ovšem začíná to jednořádkovými gettery a settery. Pokračuje to používáním nevhodných knihoven (například pro umocňování na druhou) a nedodělanými metodami uvnitř tříd. Prostě z objektů se dělá jen pouhé datové skladiště s chybnou delegací funkčnosti.

Zjednodušeně: Pokud je objektem pes, nechci vědět, jak štěká, ale chci, aby zaštěkal.

Nahoru Odpovědět 12.6.2012 9:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

A jak bys řešil read-only zapouzdření bez getterů?

Nahoru Odpovědět 12.6.2012 10:03
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Jednoduše. Proč se ptám objektu na nějakou vlastnost? protože ji chci použít k nějakému účelu, do nějakého výrazu. Tak ten výraz dám jako další metodu do objektu. Tam už s tou proměnnou zacházím lokálně.

Vznikne vlastně getter, ale už to není ten primitivní zdržující getter. Objekt pak má mnohem lepší funkčnost, jeho volání je mnohem jednodušší a aplikace přehlednější.

To stejné se settery. Většinou si vystačím s parametry konstruktoru, ale typický příklad

objekt.setX(x);
objekt.setY(y);

nahrazuji kratším zápisem.

objekt.setXY(x,y);

Samozřejmě musím napsat další setter, ale ten mě tolik netrápí, jako neustálé volání dvou metod za sebou. Klidně tomu setteru svěřím i parsování stringu a další neošetřená data. Setter si je musí sám ošetřit, zpracovat a uložit do svých vnitřních struktur.

Zjednodušeně řečeno na jednom objektu nikdy nevolám 2 settery za sebou a ani 2 gettery za sebou. Neošetřuji vstupní data a ani dále nemodifikuji výstupní data. To vše je v kompetenci objektu.

Nahoru Odpovědět 12.6.2012 10:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

To nepochybně, ale občas se getteru stejně nevyhneš. Nemůžeš např. stále modifikovat jeden objekt, protože ho chceš použít jiným způsobem, to bys porušoval komponentový koncept OOP. Objekt by měl být do určité míry univerzální.

Nahoru Odpovědět 12.6.2012 10:49
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Objekt není datové skladiště. Co si představuješ pod pojmem "univerzální"? Univerzální prostředek neexistuje a pokud se budeš snažit dělat univerzální objekty, vznikne paskvil.

Doplňováním dalších metod do objektu koncept OOP rozhodně neporušuji.

Nahoru Odpovědět 12.6.2012 10:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Objekt by se měl specializovat na jednu věc a tu umět dobře. Pokud ti rozumím správně, kdykoli budeš potřebovat např. nový vzorec, tak ho přidáš do toho objektu do metody. Tím pádem podle usecase stále ohýbáš objekt a to imho není správné. Objekt by měl být znovupoužitelný a mít jasně definovanou kompetenci, když chci něco nad jeho kompetenci, napíši si to mimo a použiji nějaký jeho getter. Jedině by to šlo zdědit, ale stejně mi připadá špatné zanášet do objektu logiku, která s ním přímo nesouvisí.
Např. si nemyslím, že do objektu autobus patří vzorec pro výpočet nákladů firmy na benzín, to raději udělám getter na spotřebu a třídu, která bude mít v kompetenci výpočty. Autobus jinak nebude znovupoužitelný, protože bude specializovaný na jednu konkrétní firmu. Nebudu ho moci použít v jiném projektu, kde třeba budou chtít počítat zas něco jiného. Jedině ho mohu zdědit, ale stejně mi přijde výhodné mít výpočetní logiku na jednom místě, ve třídě, která je za ni kompetentní.

Nahoru Odpovědět 12.6.2012 14:24
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Jenže když potřebuješ nový vzorec, stejně měníš usecase. Neohýbám, přidávám. Dávám do objektu jen logiku, která s ním přímo souvisí. Pokud je objektem obdélník, může mi poskytnout i svůj obvod a obsah. Totéž s kruhem. Nemusím zjišťovat typ objektu a přesto získám jeho obsah.

Argument znovupoužitelnosti mi zní úplně stejně jako předčasná optimalizace. Když se to přežene, vede to do pekel.

Nahoru Odpovědět 12.6.2012 14:44
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Budeš potřebovat spočítat, kolik se do obdelníku vejde jablek. Opravdu je za toto kompetentní obdelník?

Já si myslím, že pravda je někde uprostřed, ty extrémně přetěžuješ objekty.

Nahoru Odpovědět 12.6.2012 15:18
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Teď jsi mě dostal. Opravdu jsem to tak málem udělal, když jsem potřeboval zjistit vzdálenost dvou objektů. Nakonec jsem udělal kompromis ve stylu

vzdalenost(objekt1.getXY(),objekt2.getXY())

a to snad bude ta pravda někde uprostřed.

Nahoru Odpovědět 12.6.2012 17:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 23 zpráv z 23.