Przychodzi do was klientka. Wdrażacie jej osCommerce. Robicie jej niedźwiedzią przysługę, ale to problem większości tak zwanych agencji interaktywnych. Teraz zaczyna się wasza praca przy dostosowaniu owego wynalazku z piekła rodem. Uwaga, czytajcie mi z ruchu klawiszy…

Waszym pieprzonym obowiązkiem jest wykonać pracę prawidłowo, zgodnie ze sztuką i w jak najlepszym interesie klientki, która wam za to płaci. Tak, to jest obowiązek, a nie opcja premium, za którą się dopłaca. Tak, jak zamawiając hydraulika nie dopłacacie 100% ekstra za uszczelnienie zaworu po wymianie, tak wy nie macie prawa oddać klientowi produktu, który już po chwili zaglądania za kulisy wygląda jak ledwie trójkowa praca zaliczeniowa na pierwszym semestrze studiów informatycznych.

Że kod brzydko sformatowany? Nie, nie. Co powiecie na zapytanie SQL, które wykonuje się — bagatela — piętnaście sekund? Nie mówię o raportach, mam na myśli zapytanie, które pobiera dane do wyświetlenia na stronie. A dlaczego potrzebuje na to ledwo ćwierć minuty? Bo jeden z drugim klepacz (to taka odmiana programisty, która przychodzi do biura o 8:01, a o 15:59 jest już w płaszczu i chwyta za klamkę) — jak to się marketingowo na stronach chwalą — potraktował klienta indywidualnie. Zapewne przez to rozumieć należy to tylko jeden klient, pewnie nikt się nie kapnie.

Całe pięć minut zajęło mi przeczytanie, mało popularnego w arystokratycznych kręgach agencyjkowych hakerów, loga slow queries. Całe dziesięć poświęciłem na dodanie prawdziwej nowinki w świecie RDBMSindeksów do tabel. Serwis działa ponad dwa razy szybciej (przetestowane też za pomocą dostępnego tylko elicie narzędzia ab).

Jako ciekawostkę podam, że — zapewne dla podwójnej pewności — któryś geniusz poświęcił sporo czasu na dodanie indeksu UNIQUE dla każdego klucza PRIMARY, który (widać niektórzy nie wiedzą) implikuje indeksowanie dla przeszukiwania i gwarantuje unikalność. Nie poświęcił za to ani sekundy na dodanie oczywistych indeksów dla kolumn, które służą za klucze zewnętrzne. Prawie zewnętrzne, bo serwis korzysta z tabel MyISAM.

Na koniec powiem, że jeśli ktoś poczuł się urażony powyższą notką, to bardzo, kurwa, dobrze i powinien się w końcu nauczyć wykonywać swój zawód. Jeśli agencji nie stać na zatrudnienie kompetentnego DBA, to niech się przebranżowi na robienie bannerków we Flashu, bo w programowaniu nie ma czego szukać. Cała reszta czytelników, mam nadzieję, bawiła się równie dobrze, co ja przy poprawianiu waszej fuszerki i pewnie z radością wysłałaby was na Worse Than Failure.