Niekiedy test jednostkowy sprawdza poprawność jakiegoś skomplikowanego algorytmu bądź parsera tekstu bądź czegokolwiek, co wymaga znacznych ilości danych. Zamiast umieszczać te dane w kodzie, niejednokrotnie wygodniej jest po prostu wrzucić je do pliku, plik dodać do projektu i ustawić jego właściwość "Copy to Output Directory" na Always. W normalnej sytuacji pobralibyśmy dane o tak: 1: string filePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Locatio...
[More]
Po przeczytaniu poniższego zdania przerwałem ostatnio lekturę i dałem sobie kilka minut na głębsze się nad nim zastanowienie: Myśleć, że się coś wie to najlepsza obrona przed dowiedzeniem się czegoś Wpasowuje się do idealnie w moje postrzeganie rozwoju zawodowego programisty/architekta. Źródło: Frank Herbert "Bóg Imperator Diuny".
Domyślna konfiguracja instalacji IIS na Win7 nie do końca nadaje się do uruchamiania stron ASP.NET. Ba, "nie do końca" to za mało powiedziane... W przyszłości pewnie natknę się jeszcze na ten problem, dlatego zamieszczam swoją konfigurację, która po prostu działa: I następnym razem zajmie mi to minutę, a nie pół godziny:).
Po dość długim okresie ignorowania zjawiska zwanego Twitterem postanowiłem sprawdzić o co w tym chodzi i z czym to się je. Czy miliony użytkowników, w tym ogromna większość szanowanych przeze mnie specjalistów, mogą się mylić? Okaże się. Wiem jedno: nie pozwolę, aby zostawianie za sobą tych małych wirtualnych kupek zwanych potocznie tweetami stało się moim nałogiem, żeby nie powiedzieć wprost... pierdolcem. Bo jak inaczej określić takie zachowanie?: Na konferencję przyjeżdża prelegent z USA. Z...
[More]
Minęło circa około ~300 dni od kiedy zostałem freelancerem. Przez ten czas dość regularnie otrzymywałem od Was pytania typu "jak to jest?", "jak zacząć?", "jakie są plusy i minusy?"... Czas więc na krótkie zerknięcie wstecz i spisanie kilku porad dla tych, którzy myślą o przejściu na "swoje" i pracy w domu. Freelancowanie może wydawać się szczytem zawodowej rozkoszy, jednak nie wolno myśleć o nim z klapkami na oczach. Przez nierozsądne podejście do tematu...
[More]
W bibliotece System.ServiceModel.dll znajdziemy ciekawą klasę SynchronizedCollection<T>. Szybkie zerknięcie w Reflectora: i nad łysiejącą łepetyną zapaliła się żaróweczka: przecież to idealna klasa do cache dostępnego z różnych wątków aplikacji eliminująca ciągłe pisanie lock! W takim przypadku od stanu wymyślone do stanu zrobione potrzeba jedynie kilkudziesięciu uderzeń w klawiaturę: 1: public class SampleCache<T>
2: {
3: private readonly IList<T> _items...
[More]
Testowanie kodu wielowątkowego jest nie lada wyzwaniem. Teoretycznie powinno się tego unikać, ale czasami nie ma innego wyjścia. Co robić w sytuacji, gdy w komponencie tworzonym podczas naszego testu uruchamiany jest nowy wątek, a w nim wyskakuje wyjątek? Test oczywiście nie przechodzi, ale wcale niekoniecznie musimy wiedzieć dlaczego tak a nie inaczej się stało. Kiedyś pół godziny straciłem na wgapianie się w monitor zanim wpadłem na to, że w wątku pobocznym wyskakuje wyjątek. Bo jak wiadomo, w...
[More]
Po długim świąteczno-sylwestrowym relaksie czas na powrót do normalnego życia. Normalne życie w nowym roku można zacząć garścią blogowych refleksji, które sobie za rok przeczytam i sprawdzę jak udało mi się ów rok wykorzystać. A jeśli kogoś jeszcze to interesuje to zapraszam. 2009 Ale najpierw rozgrzebię mogiłę roku poprzedniego i krótki rachunek sumienia uczynię. W podobnym temu poście (link) zaplanowałem sobie 12 miesięcy temu kilka rzeczy. Najważniejsza z nich: być wreszcie zadowolonym z p...
[More]