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… Continue Reading „Singleton – czyli jak sobie strzelić w stopę …”

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.… Continue Reading „Null References: The Billion Dollar Mistake”

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… Continue Reading „Bezpieczniej z TryParse()”

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ś… Continue Reading „Wzorce i antywzorce projektowe w C#”

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… Continue Reading „Marker Interface”

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).… Continue Reading „Rzutowanie na Enum z niepewnego źródła”

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ś… Continue Reading „Moje Unit Testy”

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… Continue Reading „Trochę więcej kultury”

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… Continue Reading „False sharing”