Dzisiejszy dzień upłynął pod znakiem odgrzebywania starych śmieci i przypominania sobie jak to wszystko działało.
Po pierwsze - jakiś tam kod, pisany tylko przeze mnie od 2006-12. Kod poprawny, założenia do kitu - ale jakoś działało ;) Ciekawostką jest fakt, że dwaj uzytkownicy z Poznania i Szczecina w tym samym dniu odkryły błąd, który mógł wystąpić od 2 lat, a ja odkryłem go tydzień wcześniej...
Poprawione szybko i bezboleśnie.
Po drugie - inny kod, pisany przez 5 osób, tez brałem udział, powstał ok 2007-04. Kod poprawny, założenia też, ale niestety w międzyczasie zmieniły się wymagania. Kod zdezaktualizował się, ktoś coś poprawił, ktoś inny poprawił poprawkę.
Po 4 godzinach analizy okazało się, że "wystarczy" zmienić 10 znaków w zapytaniu SQL i wszystko działa poprawnie...
Wnioski na przyszłość - komentujmy kod! Opisujmy założenia jakie nam przyświecały, a nie działanie. Jak coś działa widać od razu - przecież kod czytają tylko programiści, więc po co pisać:
// przygotowanie zapytania zliczenia liczby wyszukanych rekordówsb = new StringBuffer();sb.append("SELECT COUNT(S1.IMWU) \n");
skoro można napisać
// Liczba miejsc wykonywania świadczeń, użytych w zestawie produktówsb = new StringBuffer();sb.append("SELECT COUNT(S1.IMWU) \n");
Niestety druga opcja wymaga zrozumienia tego, co się pisze.
Zauważam ze smutkiem, że niektórzy (większość?) programiści mają tendencje do pisania mechanicznego, bez próby zrozumienia przyczyny powstania kodu. Dostają projekt i bezmyślnie walą w klawisze. Efektem jest kod nieodporny na zmiany (wynikające z naturalnego rozwoju i tematyki zagadnienia) w którym brak jest podstawowych walidacji.
Z innej beczki. Może by tak spróbować skompilować Killera na g++? Jeśli się uda, to otworem stoi droga do obiektów, klas i czystego mięska pt. RTTI.
Brak komentarzy:
Prześlij komentarz