Errare humanum est …

0
2

Dzisiaj uruchamialiśmy u klienta aktualizację systemu, do którego aplikację pisałem jeszcze w 2008 roku. Sześć lat to jednak szmat czasu i poza dość starą technologią, której już dzisiaj w zasadzie nie używam (Delphi 2005) sam kod pozostawia niestety też wiele do życzenia, a z praktyki wiem, że refaktoryzacja bez możliwości dobrego zasymulowania warunków produkcyjnych zwykle przynosi więcej problemów na obiekcie niż zysku. Generalnie chyba nie jest źle – ponoć jak programista widzi swój kod napisany chwilę temu i nie ma do niego żadnych zastrzeżeń to oznacza, że się nie rozwija …

Jednak nie o tym chciałem. Jak się okazuje – nawet mając całkiem spore mniemanie o własnych umiejętnościach łatwo wpaść w pułapkę. Z pozoru prosta funkcja, która wyświetla odczytane z pliku dane przepisane tam wcześniej z bazy (MS SQLServer) przez inną funkcję – powodowała najpierw zerwanie połączenia  z bazą w innej funkcji (pomimo tego, że opisywana funkcja nie korzysta z tej komunikacji) a potem raportowany przez kompilator Access Violation Error z nic nie mówiącą wartością adresu w pamięci.

Ponad dwie godziny zajęło mi zdiagnozowanie problemu, którym okazało się zapisywanie tablicy poza zadeklarowany wymiar. Prawdopodobnie podczas nawykowego używania skrótów klawiszowych przełączył mi się tryb klawiatury po czym musiałem niechcący skasować kawałek kodu i zamiast zrobić Undo – poprawiłem tak jak mi się wydawało że było wcześniej, nie sprawdzając uprzednio deklaracji tablicy.

Szkolny błąd – należało by się po tym najpierw ubiczować a potem oddać fartucha, ale jak mówią „Errare humanum est” i niestety w stresowych warunkach na instalacji u klienta takie rzeczy czasem potrafią umknąć – ot proza programistycznego życia.

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here