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 -----
To: Java
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.

Odpovedet emailem