punkt siedzenia - punkt widzenia
Zadanie testowe dla analityka systemowego — czy zaprezentowana poniżej konstrukcja adresu w Polsce jest poprawna przy założeniu, że w rozpatrywanym systemie nie funkcjonują słowniki miejscowości, nazw ulic ani kodów pocztowych; czas wykonania: 7 sekund
...
Ulica varchar(50) null,
NumerDomu varchar(4) not null,
NumerLokalu varchar(4) null,
KodPocztowy varchar(6) null,
Miejscowosc varchar(50) not null,
...
0 .. 1 .. 2 .. 3 .. 4 .. 5 .. 6 .. czas minął.
Odpowiedź oczywiście brzmi nie. Jeżeli powyższe miałoby przedstawiać adres nie posiłkowany słownikami to przede wszystkim brakuje tutaj pola Poczta
.[1] Mimo, że miejscowość zamieszkania a poczta mogą być w sposób całkiem oczywisty zupełnie inne, to w 9 przypadkach na 10 fakt ten jest kompletnie ignorowany. Dlaczego? Z powodu braku standardów? Lenistwa? Niewiedzy? Niekompetencji?
Szczerze mówiąc sam do niedawna również olewałem takie szczegóły — w końcu dane adresowe to z reguły najczęściej ignorowany i najgorzej przemyślany fragment bazy jakiejkolwiek (powyższy przykład to i tak przypadek nadzwyczaj elegancki i szczegółowy). Podejście zmienia się nie po nabraniu wiedzy tajemniej, tylko na skutek ... doświadczenia na przykładzie własnym. Po wyprowadzeniu się z miasta na wieś, co krok, co sklep, co faktura napotykam problem z zapisaniem mojego adresu w systemach przeróżnych. Najczęściej akceptowalnym rozwiązaniem jest podanie miejscowości zamieszkania obok kodu pocztowego (czyli w miejscu przeznaczonym na nazwę poczty) — taki adres jest w miarę zrozumiały. Szkoda tylko, że nieprawdziwy ;-)
Podobna refleksja męczyła mnie parę lat temu, kiedy się okazało, że 20 znaków nie wystarcza do zapisania aktualnego nazwiska mojej żony. Tutaj rozwiązania optymalnego już w ogóle nie ma — używanie nazwiska panieńskiego to przekłamanie znacznie większego kalibru.
I tak dochodzę do niezbyt może błyskotliwej konkluzji — wartość, sprawność i generalnie umiejętności analityka i/lub projektanta zależą w wielkiej mierze od jego osobistego doświadczenia. Bez doświadczenia na własnej skórze wszyscy wykazujemy tendencje do ignorowania spraw banalnych...
[1] Oczywiście słownik kodów pocztowych z przypisanymi nazwami miejscowości lokalizacji poczty byłby tu rozwiązaniem, ale — patrz założenie. Zresztą przy wykorzystaniu słowników całość powinna wyglądać zupełnie inaczej...
2005.01.12 | 6 komentarzy |
tagi » sztuka programowania
Komentarze
#1 | 2005.01.12 16:37 | Marek
hm. wyrobiłeś już nowy dowód? ja mam dowód, w którym obok kodu pocztowego istnieje nazwa miejscowości, w której mieszkam, a nazwy poczty brak - adres niby poprawny, ale nie prawdziwy.
ale to nic :) gmina, w której mieszkam, ustaliła właśnie, że siedziba poczty znajduje się w innej miejscowości, niż siedziba gminy, pomijając już, iż gmina i poczta znajdują się w innej miejscowości, niż miejscowość, od której nazwę gmina wzięła ;)
ale skutkiem tego jest obowiązek zmiany wpisu do rejestru dla wszystkich podmiotów gospodarczych - ewidentnie jest zaniedbanie i wina gminy, ale początkowo gmina życzyła sobie 50 zł za tę aktualizację!!!
#2 | 2005.01.13 09:16 | MiMaS
Profesjonalne (jak mniemam) zdanie analityka systemowego:
"czas wykonania: 7 sekund"
Zakładając, że analiza to około 20% czasu każdego projektu, tak ścisłe ograniczenie czasowe jest oczywiście niedorzeczne.
Generalnie się zgadzam, że „tak ścisłe ograniczenie czasowe” to bzdura, ale ... celowa. Do powyższego zadania można podejść tak — pytanie dotyczy standardu, czyli czegoś, co zawodowiec powinien wyrecytować w ciągu paru sekund w przysłowiowym środku nocy. Oczywiście, że sposobów rozwiązania kwestii zapisu adresu może być kilka, mniej lub bardziej optymalnych dla danego systemu, tylko w tym momencie to nie ma nic do rzeczy. Aby wymyślić coś „cwanego” trzeba zacząć od rozwiązania jak najbardziej podstawowego, takiego którego przedstawienie nie wymaga aż 7 sekund...
#3 | 2005.01.16 18:19 | Łukasz Grabuń
Śmiałbym się nie zgodzić (abstrahując już od faktu, że nie ma czegoś takiego jak mniej lub bardziej optymalne rozwiązanie :-). Ale nic to, przejdźmy do rzeczy.
Moja notka - będąca odpowiedzią na Twój wpis - sugeruje, że nie ma czegoś takiego jak optymalny opis adresu. W każdej sytuacji może się przydać nam coś innego, a nawet jeśli przyjmiemy jakiś wspólny punkt wyjścia, to po modyfikacjach niezbędnych do przystosowania go (tego adresu :-) do wymagań systemu, okaże się, że wyrzuciliśmy/dodaliśmy do wersju pierwotnej tyle, że cały ten standard jest psu na budę...
Uff, to było bardzo długie zdanie. Ujmując to lakoniczniej i prościej: moim zdaniem nie można ustalić jednego standardu, gdyż do każdego systemu potrzebne jest inne rozwiązanie. Ot, tyle.
#4 | 2005.01.17 08:13 | MiMaS
nie ma czegoś takiego jak mniej lub bardziej optymalne rozwiązanie
A jest „z pewnego punktu widzenia optymalne”? To to samo ;-)
moim zdaniem nie można ustalić jednego standardu, gdyż do każdego systemu potrzebne jest inne rozwiązanie
No widzisz, ja rozumiem Twój punkt widzenia, ale tutaj chyba wychodzą na jaw różnice w podejściu do tematu analityka i projektanta. ;-) Nie myśl o żadnym konkretnym zastosowaniu — pomyśl o adresie jako takim... Dla mnie coś takiego jak standardowa, podstawowa postać adresu jak najbardziej ma sens — coś jak klasa bazowa dla wszelkich możliwych adresów. Fakt, że żaden praktyczny system nie korzysta z tej klasy bazowej, tylko z jakiejś jej pochodnej specjalizowanej na potrzeby danego systemu nie ma tutaj nic do rzeczy. A nawet niech ona sobię będzie klasą abstrakcyjną.
A wracając do moich narzekań — gdyby taki „standard” istniał, to zapewne byłoby w nim pole „poczta” i założę się, że w bardzo wielu systemach by ono przetrwało. Prawdopodobieństwo, że zostałoby świadomie wywalone jest IMHO stosunkowo niewielkie. Zatem i prawdopodobieństwo, że znowu będę miał problem dyktując dane do jakiejś faktury byłoby mniejsze...
#5 | 2005.02.23 13:47 | baszar
A propos standardu adresu:
Istnieja u nas jeszcze takie potworki jak np ul. Mysliwiecka 3/5/7, czy "wylansowane" przez niektore spoldzielnie mieszkaniowe wprowadzanie dodatkowego nr bloku (ktory z adresem: ulica-nr budynku nic wspolnego nie ma).
#6 | 2005.02.23 14:02 | K
Haha, nie spotkałam. Ale w Opolu są bloki o adresach np. 5-7/1. Nie klatki schodowe numer 5 i numer 7 tylko obie z identycznym numerem 5-7. Założę się, że setki razy ludzie podawali np. samo 5 tylko dlatego, że ktoś nie przewidział znaku "-" w numerze domu. Inna spawa, że w takim bloku nie da się jednoznacznie stwierdzić, która klatka jest 5 a która 7 ;-)
Uwaga: Ze względu na bardzo intensywną działalność spambotów komentowanie zostało wyłączone po 60 dniach od opublikowania wpisu. Jeżeli faktycznie chcesz jeszcze skomentować skorzystaj ze strony kontaktowej.