fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
5 minut

Najgłupsze rzeczy, jakie popełniłem podczas kodowania


12.04.2010

Rzadko to rzadko, ale czasami moja głupota mnie przeraża. Zdarza mi się utknąć nad jakimś kawałkiem kodu, który MUSI działać. Po prostu MUSI. A nie działa…

Zwykle ma to miejsce po bardzo długiej sesji kodowania. Takiej jak ta, o której pisałem kiedyś. Podzielę się, chociaż mi wstyd:). Jedziemy…

Mailu, dlaczego się nie wysyłasz???

Prawie 3 godziny zmarnowałem jednej nocy na wysłanie maila. Siedziałem, testowałem, drapałem się w głowę, wymyślałem najdurniejsze juz możliwe rozwiązania… Wreszcie o 4 rano dostrzegłem że faktycznie coś chyba jest nie tak z mojej winy.

Info na stronie Onetu:

Mój konfig:

Bez dalszego komentarza.

WCFie, dlaczego nie działasz???

Równie niemało czasu (i o równie zboczonej porze) zajęło mi kiedyś przesłanie WCFem obiektu z serwera na klienta. Poniżej uproszczony kod… który NIE WYSYŁAŁ DANYCH! W jakie zagłębiłem się wówczas konfiguracje WCFa, czegóż ja nie zmieniałem, jakieś limity, jakieś zabezpieczenia… A godzin tych nikt już mi nie zwróci:

Ale przynajmniej teraz ZAWSZE gdy coś z WCF nie działa tak jak trzeba to przypominam sobie ową historię i sprawdzam czy przypadkiem moja klasa nie wygląda tak jak ta powyżej:).

SQLu, dlaczego źle się wykonujesz???

Innym razem tworzyłem w kodzie zapytanie SQL (komentarze "tak się nie robi!" proszę na bok). Zwracało one dane zależne od daty przekazanej w parametrze. Tworzyła je klasa skonfigurowana w kontenerze DI jako singleton, i wyglądało to mnie więcej tak:

Pierwsze wykonanie: OK. Ale im dalej w las, tym bardziej bezsensowne wyniki!

Oczywiście okazało się, że po takiej zmianie:

wszystko było już w porządku.

Wszystko, oprócz mojego poczucia własnej wartości:).

O, parametrze, dlaczegóż wartość twa niezmienna jest???

Nie tak wcale dawno z kolei modyfikowałem logikę wykonywania skryptów IronPython w tworzonym systemie. Nowe założenia (uproszczono-wymyślone): "jeśli przekazany skrypt jest pusty, pobierz z konfiguracji domyślny skrypt i go uruchom".

Banał, prawda? Ale, kurde, nie działa! Oto dlaczego:

Fluent eNHajbernejcie, dlaczego mapowania moje ignorujesz???

Dawszy się ponieść szałowi refactoringu zapędziłem się też w kozi róg przy użyciu NHibernate. Po dość intensywnych przemieszczeniach funkcjonalności między klasami, klas między folderami, folderów między projektami itd (jak to bywa w bardzo początkowej fazie projektu) znalazłem się w sytuacji… prawie że bez wyjścia. Kodu jako takiego nie zmieniałem w ogóle – modyfikowałem jedynie jego położenie. A mimo to nie mogłem z bazy pobrać nic. NIC!

Nie było błędu, ale nie było też danych. Po podłączeniu SQL Profilera okazało się, że nie wykonują się nawet żadne zapytania. Norrrrrmalnie szok i masakra.

Powyższy obrazek pokazuje (zasymulowaną w 5 minut w nowej instancji VS) co było nie tak. Idiot, idiot, idiot! Półtorej godziny wyrwane z nocy jak… ząb ze zgniłego dziąsła?

Karto sieciowa, dlaczego coś z tobą nie tak???

Ostatnia historyjka (i tak już pewnie wystarczająco straciłem w Waszych oczach:) )…

Tworzę sobie nową wirtualkę, wpinam w sieć gotową do testowania, i… i nic!

NIe pamiętam już ile czasu zajęło mi dostrzeżenie tego:

Blacha!


To kilka masakrycznych po prostu debilizmów z ostatnich kilkunastu miesięcy… Może nie nadają się na The Daily WTF, ale mam nadzieję że uśmiech u kogoś wywołało:) (są jak Pokemony – musisz rozwiązać je wszystkie!)

A jakie Wy mieliście przygody, po których głupio było spojrzeć w lustro?

0 0 votes
Article Rating
8 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Szymon Pobiega
14 years ago

Taki mały off-topic: jaki jest cel definiowania delegata _time zamiast funkcji private DateTime GetCurrentTimeValue()?

procent
14 years ago

@Szymon Pobiega:
Nie potrafię sensownie odpowiedzieć – po prostu "samo wyewoluowało" z pola:).

twk
twk
14 years ago

Hehe, dobre, uśmiałem się :)
Szacuneczek za przyznanie się, to działa oczyszczająco.

JM
JM
14 years ago

No nie jest tak tragicznie, popełniałem większe kwiatki, no ale ja jestem amatorem, więc czuje się trochę usprawiedliwiony ;-) Eniłej, na gamedev.pl jest nawet wątek od tego, gdzieś tam w sumie są i moje kwiatki.
http://forum.gamedev.pl/index.php/topic,4306.0.html

Gutek
14 years ago

ech chyba jakis filtr zaposciles na te kwiatki ;)

neino
14 years ago

Oj tak, praktyka czyni mistrza i każdy z nas ma na koncie takie grzechy:). Mało tego – można być pewnym działania, by po jakimś czasie dopiero się przekonać, że jest złe. Ja m.in. do tej pory "pluję sobie w brodę", że wysłałem (dawno temu:)) rozwiązanie zadania (program w C++) na olimpiadę informatyczną, które przechodziło mi wspaniale pod Windows, ale pod Unixem jak się okazało już nie działało…a wszyyyystko toooo..boo… nie zainicjowałem tablicy :) Zabrakło

for (int i = 0; i < n; ++i) tab[i] = 0;

noisy
14 years ago

Jedną z głupszych a co gorsza powtarzających się u mnie jest… "wrong filesystem"!

No ale tak to jest jak się czasami ma kilka instancji podobnego kodu… branch stabilizacyjny, head… a potem Visual przypadkiem wyszukuje nie po tej ścieżce….

żebym to raz się tak nabrał :(

Jarek
Jarek
14 years ago

EEE słabe ;p To w sumie w ogóle nie są wpadki.
Ale z tym _time to trochę przesadziłeś. Z jakiego powodu nie mogłeś tam użyć zwykłego property Time { get; } ?

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również