Tag: pattern

Grypa wzorcowa

Tylko uważaj, żeby nie dopadła Cię grypa wzorcowa – poznasz to po tym jak będziesz próbował użyć wzorca do zwykłego Hello World. — Po co to wszystko? – Opowiem wam historyjkę…

Singleton – czyli jak sobie strzelić w stopę …

… podczas rekrutacji, a zwłaszcza w codziennym kodowaniu. Jakie zna pan wzorce projektowe i proszę opisać jeden z nich? Mi też zdarzało się tutaj odpowiadać, że Singleton. Bo prosty, bo rozumiem jak działa i jakie problemy rozwiązuje. Myliłem się – Singleton to antywzorzec. W…

Null References: The Billion Dollar Mistake

Unikaj przekazywania nulli. Jeśli nie będziesz ich przekazywał nie będziesz musiał sprawdzać czy ich nie masz. Prosto powiedzieć – trudniej zrobić. Proste rzeczy to przekazywanie pustych kolekcji, Null Object Pattern. Jednak to drugie może dobrze działać dla serwisów, ale już gorzej dla Value Objects….

Bezpieczniej z TryParse()

Zwyczajny, często widziany kod który parsuje stringa na inta. W zależności od tego czy jesteśmy pewni, że przekazany string ładnie się sparsuje, powyższa funkcja może wystarczyć lub nie. Fakt, że dostajemy string już mówi, że coś może pójść nie tak. Gdybyśmy mogli przekazać int…

Wzorce i antywzorce projektowe w C#

Chciałem przypomnieć prezentację Pawła Łukasika zatytułowaną Kurs programowania w C# – 24. Wzorce projektowe, która została nagrana 1,5 roku temu na VirtualStudy. Dużo się z niej nauczyłem zwłaszcza o antyzworcach. Ostatecznie pytanie o wzorce na pewno pojawi się na rozmowie o pracę, jeśli ktoś…

Marker Interface

Chcemy zaznaczyć, że klasa możemy być użyta w jakiś sposób, jednocześnie nie definiując żadnych metod, które klasa miałaby implementować. Może się wydawać, że takie coś nie powinno mieć miejsca, bo zawsze chcemy wykonać logikę która została zaimplementowana dzięki kontraktowi zwanemu interfejsem. Przykładami, że jednak…

Rzutowanie na Enum z niepewnego źródła

TLDR Gdy MyEnum nie ma wartości -13, to poniższy kod się wykona poprawnie i w enumie będziemy mieli wartość spoza zakresu enuma. Właściwa treść Mamy enum: I chcemy wykonać prostą operacje utworzenia tego enuma, tyle że posiadamy jedynie wartość liczbową (z zewnętrznego źródła danych)….

Moje Unit Testy

Dziś będzie opowieść… Co sądzą ludzie, którzy nie testują Ja, dla przykładu, wierzę w Unit Testy. Kontrastowałem (podpytywałem) to ze stanowiskiem wielu osób. Niektóre osoby odpowiadały, że to nie działa. Następnie podały powody dlaczego tak uważają i od tych powodów chciałbym zacząć: widziałem kogoś…

Trochę więcej kultury

Rozszerzenie poprzedniego wpisu Trochę kultury!. string.Format(…) pattern Rozpoznaję taki jakby pattern przeładowanych metod dla string.Format(…). Jest wykorzystywany w wielu miejscach we Frameworku jak i poza nim. < p style=”text-align:justify;”> Istotne są pierwsze i ostatnie przeładowanie: Idea jest taka, że te pierwsze jest dobre, a…

False sharing

Jestem w trakcie czytania Patterns for Parallel Programming. Jest tam wiele anty-wzorców programowania współbieżnego, a pośród nich False sharing (nawet nie próbuję tego tłumaczyć na polski). Ze względu na wydajność, systemy zarządzania pamięcią wykorzystują cache’owane bloki pamięci najczęściej po 64 lub 128 bajty. Pobieranie…

Cachowanie wyniku metody GetStatus() a micro-optymalizacja

Mam klase SomeDBStore, która pobiera i obrabia dane z jakiegoś źródła. Najpierw chcemy poznać czy te dane są użyteczne korzystając z funkcji GetStatus() zwracającej enuma StoreStatus. W aktualnym kodzie akurat jest tak, że funkcja GetStatus() jest wywoływana kilkukrotnie na tym samym obiekcie. Pomyślałem więc,…

Dispose pattern

DG Update: Dispose, Finalization, and Resource Management Jedyny jak dla mnie artykuł, jak obchodzić się ze sprzątaniem po obiektach które korzystają z zewnętrznych zasobów (połączenia do bazy, sockety, obiekty GDI+, handlery systemu operacyjnego, pliki itp). Dzięki Hubert! Dodane: Lżejszy artykuł na ten sam temat