-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news-1.dfn.de!ne
ws.dfn.de!feeder.erje.net!feeder.news-service.com!cyclone02.ams2.highwinds-medi
a.com!news.highwinds-media.com!npeersf01.ams.highwinds-media.com!newsfe16.ams2.
POSTED!8ebcc956!not-for-mail
From: somebody <a...@d...com>
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
MIME-Version: 1.0
Newsgroups: pl.comp.programming
Subject: Re: Jak używać wyjštków
References: <bQxQl.48828$iK7.2372@newsfe08.ams2>
<s...@4...com> <guuejr$f01$1@news.onet.pl>
<RazQl.191454$Oi7.182266@newsfe23.ams2> <guufl7$i3b$1@news.onet.pl>
<GgDQl.186360$y17.156510@newsfe11.ams2>
<gv0inu$m81$1@nemesis.news.neostrada.pl>
<lMsRl.484$zS4.134@newsfe29.ams2> <gv5r57$98q$1@news.onet.pl>
In-Reply-To: <gv5r57$98q$1@news.onet.pl>
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 60
Message-ID: <1X7Sl.169175$aj5.123564@newsfe16.ams2>
X-Complaints-To: a...@W...net
NNTP-Posting-Date: Sun, 24 May 2009 08:54:21 UTC
Date: Sun, 24 May 2009 10:54:11 +0200
Xref: news-archive.icm.edu.pl pl.comp.programming:182141
[ ukryj nagłówki ]Jacek Czerwinski pisze:
> somebody pisze:
>> Wiktor Zychla pisze:
>
>> nie chodzi o korzystanie z tych gotowych kombajnów. Bardziej chodzi mi
>> o naukę i poszerzenie wiedzy.
>>
>> Przykładowa aplikacja w .net framework to 4 dllki (data, view, mssql,
>> utils) oraz aplikacja webowa. I interesuje mnie, jak sensownie
>> wyświetlać użytkownikowi informacje na temat błędnie wpisanych danych
>> w formularza. Walidatory pól nie są do końca dobrym rozwiązaniem.
>
> Szkoły, czy przynajmniej akcenty są nieco rózne.
> jedna ze szkół "wyjątek to cos wyjątkowego" (w sensie normalne sytuacje
> robi się normalnie) (np. w javie jak biblioteki i JVM z zasady dośc
> mocno optymalizują, tak nikt nie optymalizuje obsługi wyjątków.
> Stwierdzenie stosunkowo oficjalne bo chyba z Joshua Blocha)
>
> Inna szkoła: obsługiwać jak najbliżej.
>
> A może potrzebujesz po prostu dobrych walidatorów?
>
> Zawsze możesz odziedziczyć własne exception, ale to oznacza znów jedną
> więcej zależność po obu stronach throw/catch.
Jestem świadom, że szkół jest wiele i podejścia mogą być przeciwstawne,
dlatego najpierw zapytałem o literaturę, aby móc wyrobić sobie jakieś
własne zdanie.
Walidatory nie wydają się być dobrym rozwiązaniem. Mam np. klienta
(encja, byt z wycinka rzeczywistości), który posiada numer NIP. Jak
rozsądnie powinno wyglądać sprawdzenie czy numer wprowadzany przez osobę
obsługującą aplikację jest poprawny czy też nie?
Teoretycznie może być to walidator w warstwie prezentacji, ale: dla
warstwy prezentacji jest wzorzec MVP i może się ona zmienić. Zresztą mam
wrażenie, że warstwa prezentacji nie jest najlepsza do tego. Więc gdzie?
Niżej? Warstwa logiki? Ale dane są przechowywane w bazie danych i
lepiej, żeby nikt błędnych insertów (w trakcie programowania) nie
zrobił. Więc może procedura składowana dla wstawiania rekordu z
odpaleniem innej procedury dla walidacji? Do zrobienia, jakoś logicznie
uzasadnione.
Ale co, jeśli dla dostępu do danych jest wzorzec repository, a dodatkowo
pole które mamy sprawdzać jest stricto związane z implementowanym
wycinkiem rzeczywistości, a analitycy nie zdążyli jeszcze rozpoznać
pełni algorytmu? (Pomińmy kwestię, że bez specyfikacji nie
programujemy). Powielać kod sprawdzający na kilka warstw?
I jak teraz rozsądnie przekazać informację z np. warstwy logiki
biznesowej albo warstwy danych do warstwy prezentacji, że wypełnione
pole jest niepoprawne?
Widziałem rozwiązanie które polegało na wypełnianiu obiektu (tutaj np.
Client) wartościami od użytkownika a następnie wywołaniem metody
Validate() i zbieraniem listy ewentualnych uwag. Ale czy to obiekt
Client powinien posiadać umiejętność sprawdzania swojej poprawności? Czy
nie jest to przekazanie mu więcej niż jednej odpowiedzialności?
pozdrawiam,
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=