sobota, 30 listopada 2013

Najczęściej popełniane błędy

Dzisiaj krótko o najczęściej popełnianych błędach podczas pisania skryptów, które udało mi się wychwycić w ostatnim czasie.

U mnie to działa
Jest to dość częste wytłumaczenie programistów. U mnie na środowisku deweloperskim, lub bazie danych, wszystko działa poprawnie. Szkoda tylko, że tego oto środowiska nie można wykorzystać na produkcji. Dlaczego skrypt może wykonywać się bez problemu na jednej bazie danych a na innej już nie, mimo że są na tej samej wersji SQL Servera? Jednym z powodów może być kompatybilność bazy danych. Jeżeli baza jest na SQL 2008 zarówno na środowisku deweloperskim jak i produkcyjnym to obie powinny mieć ten sam poziom kopatybilności. Ostatnio trafiłem na kilka skryptów, które sie nie wykonywały poprawnie z racji tego, że jedna baza miała ustawioną kompatybilność na 90 a druga na 80.

Wstawianie nowego rekordu bez enumeracji kolumn
To jest niestety dość częsty błąd. Wypisanie listy kolumn do których się chce wstawić dane jest tak czasochłonne, że aż pomijane. Niefart pojawia się wtedy, gry ktoś inny napsiał skrypt, który zmienia ilość kolumn w tabeli i ten skrypt z różnych powodów powinien być uruchomiony przed tym, który wstawia nowe rekordy. Co ciekawe, problem wcale nie jest taki skomplikowany i dość łatwo można z nim sobie poradzić używając następującego zapytania.
   1: SELECT name +', ' AS [text()] FROM sys.columns WHERE OBJECT_ID = OBJECT_ID('MYTABLE') FOR XML PATH('')

Powyższe rozwiązuje problem pisania wszystkich nazw kolumn. Wystarczy skopiować odpowiedź, wprowadzić niewielkie modyfikacje (nawiazy, kolumny identity) i problem staje się rozwiązany.

Uruchom i zapomnij
To jest jeden z moich ulubionych błędów. Napisz skrypt, wciśnij F5 i jak nie ma błędu do repozytorium. Szkoda tylko, że po ponownym wykonaniu skryptu rezultat może okazać się diametralnie inny. Defensywne programowanie (sprawdzanie czy obiekty istnieją, czy rekordy o danych kluczach istnieją już w tabeli itp) procentuje spokojem w przyszłości. Ale “niestety” wymaga aż kilku minut wiecej w czasie pisania skryptu.

Jak wspomniałem powyższe są najczęściej spotykanymi błędami, z którymi mam okazje się spotkać analizując lub wykonując kod innych członków zespołu. Uniknąć problemów jest bardzo łatwo, ale należy pamiętać o tych kilku rzeczach, o których wspomniełem powyżej i poświęcić dodatkowe kilka minut dopisując trochę kodu.

Prześlij komentarz