|
Jj slo o tridu spirng.util.Assert, prominte za
nepresnost,
no ale ja jsem ji nechtel pouzit, jenom jsem byl
zmaten
tim ze dela to same co moje trida, akorat ze se
menuje assert o nic vic mi neslo.
No ja se programovat neucim jeden den
;-)
Nejsem zadny profesional, ale 2roky v php uz mam za
sebou, zacinal jsem v delphi, nejake zaklady tudiz mam ;-)
V php funguje type-hinting trochu jinak, neni
tam
povolena nulova instance, takze kdyz napisu
ze
ocekavam jako argument objekt, tak dostanu
objekt,
vim v jave to funguje trochu jinak, ale prijde mi
divne, ze
by se s tim nikdo nezajimal, treba to reseni pomoci
anotaci
by mozna bylo fajn, ale muselo by byt asi primo na
urovni jazyka. No nic asi to udelam pres copy&paste metodu :-/
----- Original Message -----
Sent: Saturday, July 29, 2006 2:04
PM
Subject: Re: Validace
Tak já to zkusím ještě jednou, i když ani z první otázky a ni z
této není moc jasné, na co se vlastně ptáte…
Spring nepoužívám a
neznám, ale žádnou Spring Assertion library jsem nenašel. Našel jsem jen třídu
org.springframework.util.Assert (http://static.springframework.org/spring/docs/1.2.x/api/index.html
) , která není založená na JUnit testech, ale je jim podobná; v dokumentaci je
hlavně napsáno, že je určená především pro interní použití ve frameworku –
ptal jste se jak to řešíme, tak konkrétně já rozhodně takovéhle třídy
nepoužívám, a pokud už není jiného zbytí, podívám se do zdrojáku, co vlastně
dělá.
Ohledně toho, že když metoda dostane jako parametr nevalidní
řetězec, měla by vyhodit InvalidArgumentException – přesně to metoda
uvedená ve vašem příkladě dělá, nevím tedy, na co se ptáte.
Abych
nemusel opisovat stále ten samý kód, buď si vytvořím třídu se statickými
metodami, které dělají tuhle validaci; nebo kód validace kopíruji přes
schránku; nebo si ve vývojovém prostředí vytvořím šablonu, pomocí které
validaci rychle "napíšu"; nebo použiju nějaký framework pro validace; nebo
můžu použít nějaké anotace a validační kód generovat během překladu; mohu mít
validační metody v abstraktním předkovi všech tříd, kde budu používat
validace; mohu validace generovat do hotových zkompilovaných tříd pomocí
cglib… Záleží na typu projektu, na množství validací, na tom, s čím mám
zkušenosti, co už v projektu používám a na spoustě dalších věcí. Rozhodně ale
nevytrhnu z celého frameworku jednu třídu a nesnažím se jí naroubovat na moje
potřeby…
Předpokládám, že už je Vám jasné, že se za jeden den a
proběhnutí jedné knížky programovat nenaučíte. Na vysokých školách se běžně
předpokládá, že studenti po jednom semestru (4 - 5 měsíců) budou schopni něco
naprogramovat, ale i tak upřímně lituju ty studenty, kteří předtím nikdy nic
neprogramovali, protože podle mého je i půl roku málo na to naučit se o
programování správně přemýšlet. A bez toho sice budete schopen napsat kód,
který půjde přeložit, ale nebudete schopen napsat nějaký opravdový program. A
tím že pro Vás bylo hodně věcí z Thinking in Java opakováním, se nenechte
zmást, je opravdu velký rozdíl mezi tím umět psát příkazy a umět psát
programy. Na druhou stranu se to naučila psousta lidí, chce to jenom čas a
trpělivost.
Z českých autorů knih a článků o programování rozhodně
nezklamou Pavel Satrapa, Miroslav Virius nebo Rudolf Pecinovský.
Filip
Jirsák
2006/7/29, Kamzik-II < [EMAIL PROTECTED]
>:
1.
Neptal jsem se ani na vyjímky ani na asserce, ale na Assertion
library Springu, která je založená na JUnit testech, a protože namám v
úmyslu to použít v testech, tak mi to přijde jako špatné
řešení.
Možná, že jsem to špatně pochopil, něříkám že ne, ale když je
ta metoda psaná tak, aby počítala s validním řetězcem - tzn. nesmí být
null a musí mít nějakou délku, tak mi prostě přijde, že bych měl vyhodit
vyjímku InvalidArgumentException, pokud mi jako argument přijde něco
jiného.
Otázku jsem možná špatně položil, vadí mi, že neustále musím
opisovat téměř na chlup stejný kód, zajímalo by mě, jak to řešíte
Vy.
|