- Artykuły z tagiem design patterns

Zaczynając swoją przygodę z ASP.NET MVC (oraz w ogóle z programowaniem) miałem sporo problemów z utrzymaniem porządku w moich akcjach na kontrolerach. Bardzo często pojawiało się tam mnóstwo warunków i niepotrzebnej logiki. Ten problem trzeba było sensownie rozwiązać, więc z kolegami wypracowaliśmy sobie pewną konwencję, której twardo się trzymaliśmy...

Dziel się z innymi:
ASP.NET MVC: Method chaining w kontrolerach | Łukasz Marcinek

Web 81 dni, 7 godzin, 12 minut temu Łukasz Marcinek 426 rozwiń

Which one of us doesn’t like to give commands? It’s the natural way to ask (in a polite way) for a specific task that needs to be completed. Therefore, it shouldn’t be surprising that the command pattern can be also easily implemented within our software, which might provide some serious benefits in terms of loose coupling the existing code.

Dziel się z innymi:
I command you (pattern) | Piotr Gankiewicz

Sztuka programowania 84 dni, 3 godziny, 12 minut temu spetz 215 rozwiń

Do you ever feel like (well, you should) these huge switch + case statements or too many ifs seem to be wrong? What if I told you, there’s one simple trick that will change your life, by getting rid of them? Ok, seriously – I have nothing against switch or if as the way of controlling the flow (I use them quite often) however, there are certain occasions at which the things could be done better. And let me show you another way to achieve the same goal which is much cleaner in terms of code readability a...

Dziel się z innymi:
Get rid of switch/case/if | Piotr Gankiewicz

Sztuka programowania 104 dni, 2 godziny, 40 minut temu spetz 352 rozwiń

In this post I will try to introduce the concept of validation using the Chain of Responsibility pattern (CoR), which I use successfull for years

[EN] Chain of Responsibility – an elegant way to handle complex validation

Sztuka programowania 151 dni, 4 godziny, 53 minuty temu pluksza 207 rozwiń

Immutability is a quite old concept that is mostly related to the functional programming, however, it’s also (maybe not so widely) used in the object oriented programming. An immutable variable/object can not be mutated, which means that once it’s been initialized it will never change it’s original value/reference (unless it’s deallocated). This approach results in some great benefits such as out of the box thread safety, yet in the OOP world, it does seem to be quite often abused or even not used at al...

[EN] A word about immutability | Piotr Gankiewicz

Sztuka programowania 201 dni, 4 godziny, 9 minut temu spetz 68 rozwiń

Recently I’ve had this idea that came into my mind while working on the Sentry – let the users of my library (if there will be any) to configure not only the set of rules, connection strings, urls etc. but also the underlying providers that do all of the heavy lifting (e.g. the HttpClient responsible for communicating with the API). It means that as long as you’re not satisfied with the default solution, please feel free to provide your own engine that will for example talk to the database and perform a ...

[EN] Mocking the “unmockable” | Piotr Gankiewicz

Sztuka programowania 210 dni, 4 godziny, 26 minut temu spetz 80 rozwiń

CQS stands for the command query separation. There’s a chance that you may have not heard about it, but on the other hand the CQRS might ring a bell. Even though these 2 patterns have very much in common, there is a significant difference (definitely a bigger one than the additional “R” character within the CQRS acronym) in how do they apply to the architecture of our system. In this post I’ll focus on the CQS – the older brother of the CQRS – that will help you understand how to design the software that...

Dziel się z innymi:
[EN] CQS – an easy, yet powerful pattern | Piotr Gankiewicz

Sztuka programowania 221 dni, 21 minut temu spetz 146 rozwiń

In one of my previous posts I’ve told about my feelings for the repository pattern. Complaining about something is one thing (please, don’t even try to tell me, that you have never seen some piece of code, that made you cry like a baby), however, if we want to (pretend to) be professionalists, it is very important to come up with some ideas in order to solve the given problem (at least partially). In this post, I’ll present to you one of my solutions to the commonly misused repository pattern.

[EN] Extension methods to the rescue (from repository) | Piotr Gankiewicz

Architektura 228 dni, 14 godzin, 55 minut temu spetz 128 rozwiń

Many of the programmers falls into the trap of creating too many unnecessary abstractions in code, that may introduce even more chaos and maintenance issues, instead of simplifying overall project structure and providing some real benefit. One of such abstractions, that have been discussed countless number of times, is the (one and only) repository pattern.

Dziel się z innymi:
[EN] Repository, so we meet again. | Piotr Gankiewicz

Architektura 230 dni, 13 godzin, 41 minut temu spetz 218 rozwiń

Today I want to introduce a Circuit Breaker – one of the reactive design patterns, especially useful in areas such as web services interop. They main role is to act as a decorator around your code to ensure, that you can quickly respond on any reliability problems.

Dziel się z innymi:
[EN] Design patterns: Circuit Breaker - Simple Solutions

Sztuka programowania 586 dni, 23 godziny temu Horusiath 140 rozwiń

Today I want to present a different point of view on C# applications design. If you are programming in that language most of the time, it’s probably not what you’re used to see. However I found it interesting, because it allows to achieve a few important goals...

Dziel się z innymi:
[C#] A different look at service design - Simple Solutions

Sztuka programowania 600 dni, 3 godziny, 31 minut temu Horusiath 297 rozwiń

Agile Principles, Patterns, and Practices in C# by Uncle Bob is the best book about modern Software Development I have ever read. First section (chapters 1-6) is an Overview of Agile, Extreme Programming (XP), and TDD. Very good introduction to modern software development. Chapter 6. shows all these techniques by example, by creating “The Bowling Game” application...

Dziel się z innymi:
[EN] Agile Principles, Patterns, and Practices in C# - Jakub Jedryszek

Sztuka programowania 628 dni, 22 godziny, 47 minut temu jj09 242 rozwiń

Nieraz zdarza się, że musimy samodzielnie napisać jakąś klasę implementującą interfejs IDisposable. Wszyscy na pewno znają wzorzec implementowania Dispose. Osobiście proponuję inną implementację.

Dziel się z innymi:
Implementowanie IDisposable | Robert Pająk – Blog

Inne 749 dni, 5 godzin, 8 minut temu Robert Pająk 491 rozwiń

Jednym z częściej opisywanych zagadnień na blogach programistycznych są wzorce projektowe. Często jednak ich opisy są bardzo krótkie, bez przykładów konkretnego zastosowania w prawdziwym kodzie, a czasem nawet niepoprawne. Dzisiaj przedstawię jak wykorzystanie wzorców projektowych może przyczynić się do ograniczenia powtórzeń w kodzie testów. Nie będzie to wprowadzenie do tych wzorców (opisanych setki razy w innych miejscach), ale opis moim zdaniem nietypowego ich zastosowania.

Wzorce projektowe w testach jednostkowych | Piotr Perak

Sztuka programowania 881 dni, 14 godzin, 35 minut temu trzyPe 236 rozwiń

Kiedyś przeczytałem o antypaternie jakim jest tworzenie nowego typu wyjątku, który jest per aktualny projekt, czyli np. GitHubException, ktory dziedziczy z System.Exception i nie dodaje własnych pól ani zachowania. Tworzymy go ponieważ wszystko co już jest nie pasuje nam, a wiadomo, że rzucanie Exception też jest złem. Taki wyjątek nic nie wnosi. Łatwo powiedzi...

Rzucanie własnych wyjątków specyficznych dla aplikacji | Show me the code

Sztuka programowania 1057 dni, 18 godzin, 16 minut temu 264 rozwiń

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ś ma wątpliwości czy warto. Chociaż fakt lepszego zrozumienia jednego z najważniejszych pojęć powinien wystarczyć. Poniższy ry...

Wzorce i antywzorce projektowe w C# | Show me the code

Sztuka programowania 1060 dni, 2 godziny, 57 minut temu 613 rozwiń

by MJ Decorator is a design pattern used to dynamically ”decorate” (e.g. add new actions) another classes. Let’s say that you have class which describes Window. It can be opened or closed. Then, you decide to decorate it with curtains or to clean it – you  will do it yourself or hire somebody, who will be a decorator. Let’s create a simple project: 1) First of all, you need to add “Decorator” folder. Inside of this folder please create Window.cs class which will describe our window in the real world...

[EN] World of IT | Design Patterns – Decorator

Architektura 1102 dni, 22 godziny, 34 minuty temu jedmac 156 rozwiń

by MJ Prototype design pattern. You should use it whenever you need to clone model classes. A simple example is when you have 1000 clients and you need to provide them invoices. Then, you only need to change e,g, names, surnames and total amount – you don’t need to create another invoice from the beginning. Again, the same situation is when your class is a parent for other classes – in this situation, it is not easy to create new – you should clone existing instance and then try to modify it. Here is a...


Architektura 1103 dni, 5 godzin, 23 minuty temu jedmac 117 rozwiń

by MJ Facade is one of design patterns which are used most frequently. To explain what it is and how to use it, we can compare it to a black box. In black box test, tester is only allowed to create the input and get the output. He doesn’t know anything about processing inside of the system. You will meet similar situation in Facade – you don’t want to show out the whole functionality, you need to create some kind of interface which enables user to use the functonality, but he  cannot look into the syste...

[EN] World of IT | Design Patterns – Facade

Architektura 1107 dni, 18 godzin, 6 minut temu jedmac 175 rozwiń

Posted by slanto on Zastosowanie wzorca Decorator na przykładzie produktu i ofert specjalnych. Wzorzec ten pozwala nam na dynamiczną zmianę/rozszerzanie zachowania istniejących klas.

Dziel się z innymi:
Decorator Pattern | Zapiski programisty .net

Architektura 1618 dni, 6 godzin, 10 minut temu 255 rozwiń

1 2
Szkolenia SecurITum


Zobacz wszystkie

.NET Developer Days 2015

W tym roku ponownie jak w poprzednim jesteśmy jednym z patronów medialnych konferencji .NET Developer Days. W tym roku jednym z prelegentów będzie Scott Hanselman.  czytaj więcej



macko (32 816,53)


http://pawlos.blo... (31 239,27)


pzielinski (27 178,29)


gordon_shumway (21 178,87)


paduda (20 336,33)


psz750 (13 018,14)


rroszczyk (10 253,15)


Damian (9 011,08)


danielplawgo (7 235,99)


arek (6 642,71)


burczu (6 214,22)


PaSkol (5 393,84)


lukaszgasior (4 097,38)


jj09 (3 353,06)


http://jakub-flor... (3 224,66)


CaMeL (2 954,87)


mnikolajuk (2 596,93)


jedmac (2 574,3)


FutureProcessing (2 395,11)


lkurzyniec (2 332,84)