Artykuły dla tagu Wzorce

freeimages.com
kwi 17 2015
0

Polimorficzne tworzenie obiektów - usuwamy switcha

Sporo w ostatnim czasie pisałem o wzorcach projektowych. Starałem się w miarę dokładnie zgłębić ten temat i po stworzeniu kilku tekstów z tego cyklu, naszło mnie na małą refleksję - wzorce projektowe są nierozerwalnie związane z polimorfizmem.

Jeśli spojrzymy na poszczególne przypadki (zwłaszcza te z grupy konstrukcyjnych wzorców projektowych), to szybko przekonamy się, że elementem spójnym jest wspólny interfejs. Pojawia się on naprawdę w wielu wzorcach.

W wielu przypadkach jest on kluczem do sukcesu. Dzięki interfejsom możemy stworzyć kilka różnych klas, które będą zachowywać się inaczej, ale sumarycznie będzie można z nich korzystać w taki sam, uniwersalny sposób. I nie byłoby w tym nic złego, gdyby nie fakt, że tak utworzone byty trzeba jakoś wywoływać.. Niestety bardzo często robi się to za pomocą rozwiniętej logiki warunkowej. A przecież takich właśnie elementów chcieliśmy się pozbyć - prawda:)?

Na szczęście logikę warunkową można stosunkowo prosto wyrzucić, a za przykład posłuży nam kod opisywany w tekście poświęconym metodzie wytwórczej.

freeimages.com
kwi 02 2015
0

Wzorzec adapter - przykładowa implementacja w C#

Wiele mówi się o dobrych praktykach tworzenia kodu, używaniu wzorców projektowych i innych zmyślnych rozwiązań. W praktyce nie jest jednak tak kolorowo. Często terminy gonią, w kodzie pojawiają się klasy, których liczba linii liczona jest w setkach, a pośród nich znaleźć można wiele bezmyślnych powtórzeń oraz niepraktycznych interfejsów. Ale przecież obiecaliśmy sobie, że kiedyś to zmienimy, prawda?

Takie sytuacje lubią się mścić. Bardzo często musimy rozszerzać pewne istniejące rozwiązania. Pół biedy jeśli mamy dużo czasu na refaktoring. Gorzej jeśli go nam brakuje, bądź też rozpatrywany kod został już użyty w wielu różnych miejscach i jakiekolwiek zmiany w jego interfejsach nie wchodzę w ogóle w rachubę. Co zrobić w takiej sytuacji?

Wciąż możemy sięgnąć po wzorce projektowe, np. po tytułowy Adapter, który w pewnym sensie pozwoli na reużycie istniejącego rozwiązania.

freeimages.com
mar 11 2015
0

Wzorzec template method - przykładowa implementacja w C#

Dobry programista zawsze będzie się starał pisać czytelny kod. Kluczem do sukcesu jest w tym przypadku ciągła refaktoryzacja wsparta wzorcami projektowymi. Wzorce projektowe w wielu przypadkach pozwalają na zapewnienie elastycznych i skalowalnych rozwiązań, a ponadto sprzyjają w tworzeniu unikalnego kodu. Oczywiście nieodpowiednio użyte mogą również zaszkodzić - tak jak inne rzeczy w naszym codziennym życiu;-)

Dlaczego o tym wszystkim piszę? Przyczyna jest bardzo prosta - chciałbym w dzisiejszym wpisie przedstawić kolejny wzorzec typu must have, czy może w tym przypadku bardziej must use.

Template method (po polsku - metoda szablonowa) jest wzorcem niezwykle prostym w użyciu i jednocześnie bardzo użytecznym zarazem, ponieważ pozwala zredukować duplikowany kod do minimum, a czasem nawet do zera. Najwyższa więc pora na krótką prezentację;-)

freeimages.com
mar 06 2015
0

Wzorzec strategia - przykładowa implementacja w C#

Jeśli ktoś spytałby mnie o element który kojarzy mi się z programowaniem niezależnie od zastosowanego języka, to odpowiedziałbym prosto - instrukcje warunkowe. Wszelkiej maści IFy i switche pojawiają się w praktycznie każdym szanującym się języku programowania i tak naprawdę trudno sobie wyobrazić jakąkolwiek sensowną aplikację, która by z nich nie korzystała. I choć w teorii dają one wiele dobrego, to w praktyce, przy nieodpowiednim użyciu, mogą w sposób znaczący obniżyć czytelność tworzonego kodu.

Pewnym rozwiązaniem tego problemu są wzorce projektowe, które pokazują jak łatwo można uprościć instrukcje warunkowe, a czasem nawet całkowicie je wyeliminować. Tytułowy wzorzec strategii zalicza się do tego zaszczytnego grona wzorców, które walczą z tego rodzajami problemów. W praktyce jest on bardzo popularny, dlatego też wypadałoby by mieć przynajmniej jakiekolwiek pojęcie o nim. Pora najwyższa na usystematyzowanie swoich wiadomości:-)

freeimages.com
wrz 05 2014
0

ViewModel a ASP.NET MVC

MVC był dotychczas moim ulubionym wzorcem architektonicznym, a aplikacje wykorzystujące ten właśnie wzorzec, mają kilka niezaprzeczalnych zalet. Przede wszystkim mamy tutaj podział na trzy części:

  • Kontroler
  • Model
  • Widok

I choć wszystkie powyższe elementy są od siebie zależne, to w praktyce w tym przypadku dużo łatwiej jest napisać złożone aplikacje, w którym widokom jest bliżej do statycznego HTMLu, a konkretny kod C#/VB znajduje się wewnątrz modeli i kontrolerów. Niestety im dłużej pracuję z MVC, tym bardziej zaczynam dostrzegać pewne braki w tym rozwiązaniu. Można by powiedzieć dostałem palec, a chciałbym całą rękę... Na szczęście mój problem, jest stosunkowo łatwy do rozwiązania;-)

telerik.com
maj 18 2014
0

Płatne kontrolki - czyli jak zaoszczędzić sporo czasu i pieniędzy

Nie raz już pisałem na blogu, że nie warto wymyślać koła od nowa. Zawsze dobrze jest poszukać czy ktoś czegoś podobnego już nie zrobił wcześniej. Ta zasada świetnie sprawdza się praktycznie w każdym aspekcie życia - również w programowaniu. Mogę nawet śmiało stwierdzić, że tutaj nabiera ona zupełnie nowego wymiaru.

O prawdziwości tego stwierdzenia przekonałem się w ostatnich dniach osobiście dzięki promocji zorganizowanej przez Telerik przy okazji TechEd. Okazało się bowiem, że niepotrzebnie kilka miesięcy temu zmarnowałem kilkanaście godzin mojego prywatnego czasu, na zrobienie czegoś, co ktoś już inny zrobił lepiej i sprzedaje niewielkim kosztem...

sxc.hu
mar 13 2014
0

Routing na bazie atrybutów w ASP.NET MVC 5

W czystym HTMLu, czy nawet PHP, można stworzyć pojedynczą stronę wykorzystując tylko jeden dokument (odpowiednio HTML, PHP). Podobnie sprawa wygląda również w ASP.NET Web Forms. W tym przypadku mamy co prawda plik aspx oraz odpowiadający mu dokument code-behind, ale są one na tyle silnie ze sobą związane, że funkcjonują jako jeden byt. Stronę ASP.NET Web Forms uruchomimy więc podając po prostu nazwę wybranego pliku aspx.

Zupełnie inaczej sprawy mają się w przypadku ASP.NET MVC, gdzie na jeden pojedynczy link z reguły składa się kilka elementów składowych - kontroler, klasy odpowiedzialne za logikę oraz strona widoku. Takie podejście wymusiło wprowadzenie wirtualnych ścieżek, którymi zarządza system routingu.

Twórcy ASP.NET MVC całkiem sprytnie to wymyślili i jeśli tylko trzymamy się standardowych reguł, to nie powinno być większych problemów z ogarnięciem tego tematu. Życie bywa jednak przewrotne, a aplikacje skomplikowane. Wszystko to powoduje, że reguły routingu w klasycznej postaci szybko stają się zawiłe i nieczytelne.

Jeśli stanąłeś kiedykolwiek przed takim właśnie problemem, to mam dla Ciebie dobrą nowinę, a jest nią routing oparty o atrybuty, wprowadzony w ASP.NET MVC 5.

sxc.hu
mar 12 2014
0

SOA. Koncepcje, technologie i projektowanie. Recenzja książki.

SOA to w ostatnim czasie krzykliwy temat i nie ma chyba cienia przesady w stwierdzeniu, że ogólnym szumem stara się doścignąć napompowany balon z napisem HTML 5. Trudno jednak w tym przypadku nie docenić zalet tego podejścia, które na przestrzeni lat połączyło sporo pozytywnych wzorców architektonicznych i programistycznych. Dlatego też jeśli jesteś programistą/projektantem, to Twoim solennym obowiązkiem jest wiedzieć, choćby teoretycznie o co w tym wszystkim chodzi.

Jeśli interesuje Cię ten temat, a może nawet w najbliższym czasie masz w planach zaprojektować jakiś spory system klasy enterprise, przystań na chwilę i zastanów się czy masz dostateczną wiedzę na temat tego podejścia. Akurat nadarzyła się spora okazja, by ewentualne teoretyczne braki nadrobić, ponieważ na polskim rynku pojawiła się całkiem ciekawa pozycja w tej tematyce.

SOA. Koncepcje, technologie i projektowanie to nowa na polskim rynku książka Thomasa Erla, znanego specjalisty z działki SOA. W mojej niniejszej recenzji, postaram się odpowiedzieć na pytanie czy i tym razem Thomas stanął na wysokości zadania.

sxc.hu
lut 07 2014
0

Praktyczne wykorzystanie Child Actions w ASP.NET MVC

ASP.NET MVC to w moim odczuciu świetna platforma do budowy zarówno prostych jak i zaawansowanych web-aplikacji. W stosunku do Web Forms widać tutaj ogromny postęp. Twórcy tego rozwiązania postawili na sprawdzone schematy, biblioteki oraz zapewnili szerokie możliwości konfiguracji oraz rozbudowy naszych aplikacji. Nikogo już nie dziwią mechanizmy IoC, czy testy jednostkowe będące na porządku dziennym w świecie MVC.

Dla mnie osobiście szczególną rolę odgrywają nowe możliwości w aspekcie budowy layoutu. Mamy tutaj bowiem opcję tworzenia rozbudowanych widoków korzystających z engine Razor oraz opcję wykorzystania wspólnego szablonu dla wielu różnych stron. Oczywiście rozwiązanie typu Master template dziś już nikogo nie szokuje, ale mnie osobiście bardzo ucieszyły dodatkowo możliwości dostępne w ASP.NET MVC. Do gustu szczególnie przypadły mi tytułowe Child Actions, które świetnie funkcjonują w świecie platformy Microsoftu i w prosty sposób umożliwiają włączenie do layoutu określonego widoku aktywnie korzystającego z logiki biznesowej. Dziś mam właśnie zamiar przedstawić funkcjonowanie tego mechanizmu w praktyce.

sxc.hu
gru 22 2013
0

Recenzja książki Mistrz czystego kodu

Zostać programistą (tudzież klepaczem kodu) można bardzo szybko. Wystarczy przeczytać kilka tutoriali w sieci, ściągnąć jakiegoś ebooka i przykładowe fragmenty kodu. Żeby zostać dobrym, profesjonalnym programistą potrzeba znacznie więcej. W tym podejściu czeka Was ciągła walka okupiona nieustannym samorozwojem. W tym fachu nie wystarczy odbębnić 40 godzin w tygodniu w pracy, a po południu całkowicie się wyłączyć. Programista to specyficzny stan umysłu, to zawód który wymaga ciągłej pracy i dodatkowej połówki etatu po godzinach na dalszy rozwój. Być może teraz cieszysz się 40 godzinnym tygodniem w pracy, dobrą pensją i sielanką w domu, ale odpowiedz sobie sam, czy tak będzie również za pół roku, gdy przyjdzie ktoś młodszy, zrobi to 3 razy szybciej za pomocą nowej technologii i dwa razy taniej od Ciebie?

Pytam więc - czy chcesz być zwykłym klepaczem kodu, czy profesjonalistą? Jeśli skłaniasz się ku tej drogi opcji, to warto skorzystać z pomocy. Sięgnij po literaturę fachową - np. po tytułową pozycję Mistrz czystego kodu. W niniejszej recenzji postaram się Ci powiedzieć, dlaczego warto tak uczynić.

1 2 3