.: Centra wiedzy :. Aktywuj swój bezpłatny dostęp!   .: Computerworld.pl :.
     w 
Zaloguj się
Zarejestruj się
 
KATALOG TEMATYCZNY
 
 
IDG.pl
PC World Komputer
CEO
CIO
CFO
CMO
CSO
NetWorld
Macworld
Playlista
Digit
Kino Domowe - DVD
Tips & Tricks
Gamestar
IT Partner
Internet Standard
Job Universe
ZOOM
Fotografia
Cyber
CyberJoy
Digital Life


 
FELIETONY
Zostań magiem programowania (2006.01.23)
Programista powinien pisać programy od razu poprawnie. Jeśli nie jest to możliwe, powinien poddawać swój kod wnikliwemu testowaniu. A jeśli ten etap nie zostanie przeprowadzony jak należy, niechybnie pojawią się błędy wykonania. Przyczyn błędów programista powinien dopatrywać się u siebie, a nie poszukiwać zaczarowanej fikcyjnej ich genezy.

Ciągle jest sporo wyznawców inżynierii programowania określonej jako voodoo programming, których wiara w magię jest silniejsza od logiki. I niestety do grona tego oprócz użytkowników należy cała masa programistów. Jak łatwo jednak przekroczyć tę kruchą granicę, będąc nawet doświadczonym i świadomym programistą, niech świadczą opisane tu przypadki. O tym, jak o mały włos nie zostałem wciągnięty w czeluść sekciarskiego nurtu programowania, jak omal nie zszedłem z prostej i świetlanej drogi logiki i jak krzewiłem wiedzę oraz prostowałem ścieżki młodszych kolegów, będę dzisiaj pisał.

W jednym z programów mam generator procedur składowanych. Generator ten pobiera kod źródłowy zapisany lokalnie, przekazuje go na serwer i nadaje uprawnienia wykonawcze. Tak dzieje się w środowisku eksploatacyjnym. Zanim jednak procedury zostaną oddane do szerokiego użytkowania, przechodzą cykl konstrukcyjny w niezależnym środowisku testowym. Każde uruchomienie procedury w tym środowisku powoduje utworzenie jej od nowa i zapamiętanie na serwerze testowym - jednak bez uprawnień, które nie są tu potrzebne. Gdy taki sam "numer" zrobi się na serwerze produkcyjnym, użytkownicy tracą możliwość wykonania pewnych funkcji. I zdarzyło się, że przyszedł pan Marek, któremu (jak zwykle) coś się nie zgadzało w "jego" danych. Uruchomiłem więc w pośpiechu (jak zwykle) stosowną procedurę składowaną, korzystając z mojego środowiska testowego, ale w bazie eksploatacyjnej, aby mieć dostęp do rzeczywistych danych. Sprawa została pozytywnie wyjaśniona, bo w gruncie rzeczy wszystko było w porządku, tylko pan Marek wyciągnął złe (jak zwykle) wnioski z wyników. Wiele dni później zgłasza się pan Marek ponownie, że mu ta funkcja w aplikacji nie działa. Po analizie doszedłem do wniosku, że ktoś zdjął uprawnienia do wykonania procedury na serwerze. Zastanawiałem się, kto mógł coś tu grzebać i to w tak subtelnym zakresie. Uczuliłem także na sprawę nowego administratora. Prawdę powiedziawszy, to nawet miałem podejrzenia w stosunku do niego. Wiele tygodni później sytuacja - można powiedzieć - powieliła się. Po dłuższej chwili namysłu wykluczyłem czyjeś celowe działanie. Po jeszcze dłuższej chwili przypomniałem sobie, że już coś takiego miało miejsce. Za moment wiedziałem już, że sprawcą tego jestem ja sam. Od tej pory wisi przede mną kartka z czerwonym napisem: "uwaga na uprawnienia przy testowaniu procedur".

Niedawno mój podwładny poprosił mnie o pomoc w znalezieniu błędu. Chodziło o to, że do istniejącej już funkcji miała być dodana kontrola elementu o numerze dostarczanym przez jeden z parametrów funkcji. Pracownik dopisał jedną zaledwie prostą instrukcję i wystarczyło, aby zaczęła dziać się jakaś magia. Zaleciłem wyłączyć programową obsługę błędu, która zbytnio maskowała szczegóły. Debuger pokazał, że numer elementu jest jakiś z kosmosu wzięty. Sprawa okazała się trywialnie prosta: do funkcji były przekazywane dwa parametry numeryczne, a ten niewłaściwy w tym zastosowaniu to numer klienta. I pech chciał, że programista akurat jego sobie upodobał.

Jeśli mimo wszystko ktoś wierzy w magię, to naprawdę nie ma podstaw, aby dopatrywać się jej przejawów w informatyce - w żadnej odmianie, odcieniu i natężeniu. Nawet jeśli pozory zdają się przemawiać za cudami, to jest to tylko i wyłącznie objaw niewiedzy.


 
 
Zobacz też:
Aktualności
Artykuły



RAPORT
Płace w IT
  • Niedobór czy nadmiar?
    Na rynku pracy dla specjalistów IT mamy dziś specyficzną sytuację. Z jednej strony, od kilku lat do polskich firm trafiają kolejne, liczne roczniki absolwentów studiów informatycznych. Nie ma zatem problemu ze znalezieniem młodych wykształconych kadr. Z drugiej jednak strony, znalezienie doświadczonego informatyka nadal pozostaje nie lada wyzwaniem.
  • Wygrać o włos
    Z dr. Tomaszem Rostkowskim, wykładowcą Szkoły Głównej Handlowej i współpracownikiem Institute of Advanced Managment oraz Jackiem Nowackim z Institute of Advanced Managment rozmawia Antoni Bielewicz.
  • Warszawa - miasto dla menedżera
    Kraków i Wrocław zdetronizowały Warszawę w rankingach najbardziej atrakcyjnych miejsc do inwestycji technologicznych. Stolica nadal jednak pozostaje atrakcyjnym miejscem pracy dla informatyków. Zwłaszcza zainteresowanych karierą menedżerską.
  • Gdańsk - dobre zarobki tylko w IT
    Gdańsk wraz z całym Trójmiastem znalazły się daleko w tyle jeśli chodzi o wynagrodzenia dla specjalistów IT. Informatyk ma jednak szansę na dobrą pensję przede wszystkim w renomowanych firmach technologicznych.



 
Wiadomości     Wywiady     Badania i analizy     Case Study     Felietony     Archiwum     Raporty     Programy     White Papers
O nas | Kontakt | Redakcja | Regulamin | Reklama | Ochrona prywatności
Zasoby premium - nie masz uprawnień dostępu: zapłać SMSem, zarejestruj się
Zasoby premium - dostęp przyznany
Copyright 1999 - 2008 IDG Poland SA. Wszelkie prawa zastrzeżone. Publikacja całości lub części zamieszczonych materiałów w jakiejkolwiek formie bez pisemnej zgody IDG Poland SA jest zabroniona. Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.

Korzystanie z serwisu Computerworld Online jest jednoznaczne z wyrażeniem zgody na następujące warunki obsługi. Serwis realizuje wytyczne ASME oraz uzupełnienia IDG dotyczące zasad publikacji w mediach elektronicznych. Prosimy też o zapoznanie się z ochroną prywatności.


Computerworld na świecie: Niemcy: Computerwoche | USA: Computerworld |