NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:15.9.2012 21:32

No nejde udělat jen tak výpis bez určení typu - tedy vytvoření instance... new "typ" ["rozměr"] { položky - počtem musí odpovídat rozměru };

Jinak ještě nějaké námitky? :)

 
Odpovědět
15.9.2012 21:32
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:15.9.2012 21:34

Když použiješ výjimku, nemusíš testovat zkaženou URL.

Podle mne jsou výjimky mnohem lepší, než vracet boolean. Nemusíš prznit návratovou hodnotu funkce, používat globální proměnné a většinou ani předávat parametry odkazem. Errorflow teče jinudy.

Nahoru Odpovědět
15.9.2012 21:34
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 matesax
Kit:15.9.2012 21:37

Však ten rozměr tam dávat vůbec nemusíš. Proč taky? Není to pole, ale seznam.

Námitky? Diskutujeme přece o tom, jak nejlépe naprogramovat práci se seznamem.

Editováno 15.9.2012 21:38
Nahoru Odpovědět
15.9.2012 21:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:15.9.2012 21:39

Samozřejmě - však se to snažím vychytat - nebylo to myšleno jinak, než napsáno...

No zde by to vypadalo úplně stejně - jen bych vyvolal vyjímku - a musel ji chytat v try bloku - to mi nepřijde pěkné. Takto mám přehlednou podmínku. Jako proč by mělo být výhodnější vyvolávat vyjímku, oproti testování v podmínce?

Editováno 15.9.2012 21:41
 
Nahoru Odpovědět
15.9.2012 21:39
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:15.9.2012 21:44

Protože výjimky jsou přehlednější.

Ale hlavně: Zavoláš funkci a její výsledek někam uložíš. Pokud dojde k výjimce, uložení se neprovede. V hlavním bloku nemusíš nic testovat, pouze provedeš přiřazení. A takových přiřazení můžeš udělat klidně 10 za sebou bez jakéhokoli testování. Pokud v některém z nich dojde k výjimce, blok je opuštěn a pokračuje větví catch.

Výsledkem funkce není status, zda se povedla, ale hodnota, kterou někde použiješ.

Nahoru Odpovědět
15.9.2012 21:44
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:15.9.2012 21:47

Aha - špatně si mne pochopil - netestuji URL zvlášť - to testu zahrnuji v případě návratu true přidání správné URL do seznamu navšťívených URL... (Mimo jiné do seznamu doplňující právě psanou URL.)

Ano to jsem pochopil, ale nechápu, proč je lepší try blok:

if (bool n = SetUrl()) // uložení výsledku
else
try
{
}
catch
{
}
Editováno 15.9.2012 21:51
 
Nahoru Odpovědět
15.9.2012 21:47
Avatar
matesax
Tvůrce
Avatar
Odpovídá na matesax
matesax:15.9.2012 21:52

Pardon - nestihl jsem to:

try
{
SetUrl();
}
catch
{
}
 
Nahoru Odpovědět
15.9.2012 21:52
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:15.9.2012 22:02

Protože ses ještě nenaučil výjimky používat. A také ses ještě nenaučil používat funkce. Uvedený příklad try..catch nemá smysl opravovat, protože je celý chybně. Používání globálních proměnných je nešvar, je to tzv. side-effect, který by funkce neměla mít.

Nahoru Odpovědět
15.9.2012 22:02
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 matesax
Kit:15.9.2012 22:23

Sám píšeš "přidání správné URL do seznamu navšťívených URL". Použil jsi slovíčko "seznam". Proč s tím tedy nezacházíš jako se seznamem, ale jako kdyby to bylo pole? Položky v seznamu index nemají, používá se iterátor.

Editováno 15.9.2012 22:24
Nahoru Odpovědět
15.9.2012 22:23
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 9 zpráv z 59.