[PL] Having The Infrastructure vs having an infrastructure IIPoprzedni post dotyczący Infrastruktury wywołał całkiem sporą dyskusję w komentarzach. Właściwie to nie była dyskusja, bo wszyscy zgodzili się z moją tezą, że budowanie Infrastruktury przez duże "I" nie jest dobrą praktyką. Co jednak w sytuacji, kiedy mamy dostępną gotową bibliotekę, która spełnia wszystkie nasze aktualne i przyszłe (aż do przewidywanego kolapsu wszechświata) potrzeby? Z początku wydawało mi się, że odpowiedź jest prosta: bi...
Architektura 1013 dni, 16 godzin, 13 minut temu 17 rozwiń
Witam ponownie! Przez ostatni czas czułem pewne pohamowanie do pisania bloga, ale dziś stwierdziłem, że nadszedł w końcu czas na przełamanie tej stagnacji. A stało się tak, dlatego, że kolejny (już chyba 1000) raz napotkałem się na bezsensowne rozwiązanie w kodzie. Rozwiązanie to dotyczy przechwytywania wyjątków w celu ich zalogowania. Na pewno każdy z was się spotkał z tego typu kodem, który wygląda podobnie do t...
Architektura 1021 dni, 2 godziny, 32 minuty temu 139 rozwiń
Pod tym angielsko brzmiącym tytułem kryje się jak najbardziej polska notka. Po prostu nie udało mi się znaleźć dobrego polskiego tłumaczenia (pewnie z powodu braku article-i). Do napisania zainspirował mnie tym razem Ayende, a szczególnie jeden z diagramów zamieszczony w tym poście. Bardzo częstym błędem większości początkujących architektów (a do takich chciałbym się zaliczać) jest kładzenie nacisku na Infrastrukturę. Wciąż pokutuje myślenie iż technologia jest lekarstwem na wszelkie problemy związan...
Architektura 1021 dni, 11 godzin, 36 minut temu 26 rozwiń
Pierwszy post z cyklu przygotowania systemu do wykorzystania mocków przy testach jednostkowych.
Architektura 1029 dni, 8 godzin, 34 minuty temu 65 rozwiń
Czytając Agile: Principles, Patterns and Practices natknąłem się (dla posiadaczy książki - na stronie 252) na ciekawą tezę dotyczącą UML-owej relacji agregacji. Uncle Bob twierdzi, że relacja ta nie wnosi niczego do diagramu i odradza jej użycie. Co więcej, w sekcji dotyczącej kompozycji (następna strona) pada stwierdzenie, że definicja tej relacji (czas życia części jest ograniczony do czasu życia całości) jest bez znaczenia dla programisty C#, ponieważ istnieje garbage collector. Przyznam się szczerze...
Architektura 1035 dni, 12 godzin, 33 minuty temu 57 rozwiń
Daniel o tym jak sprawnie możemy mock'ować nasz kod opatrzony widocznością internal bez zbędnego jego upubliczniania.
Architektura 1044 dni, 50 minut temu 47 rozwiń
Jak w większości systemów budowanych w oparciu o DDD, tak i w naszym natrafiliśmy w końcu na problem poprawności obiektów modelu domeny. Na samym początku ograniczyłem się do przekazania programistom informacji, że dobry obiekt modelu powinien być zawsze poprawny. Pomyślałem, że jest to dobre pierwsze przybliżenie. Szczegółami zajmiemy się później. Szczegóły te miały, według moich przewidywań, dotyczyć walidacji zależnej od kontekstu, która sprawia, że Jeffrey Palermo nie wierzy w zasadę "always valid"....
Architektura 1049 dni, 6 godzin, 51 minut temu 38 rozwiń
Na wstępie chciałbym zaznaczyć, że w żadnym razie nie jestem ekspertem od DDD. Ja się wciąż i dopiero uczę i moje posty z serii "Mentoring DDD" są wyrazami tegoż procesu (samo)kształcenia. Dlaczego więc "mentoring"? Ano dlatego, że wspieram Domain Driven Design w mojej firmie poprzez konsultacje, pomoc duchową i cielesną. Staram się przewidywać problemyi zdobywać wiedzę na temat sposobów ich rozwiązania zanim się pojawią. Nie posiadam jednak (jeszcze) tej wiedzy w postaci przetworzonej w trwałe połączeni...
Architektura 1051 dni, 17 godzin, 21 minut temu 43 rozwiń
Wzorzec memento pozwala na przechwycenie stanu obiektu i zachowanie go gdzieś na zewnątrz tego obiektu, dzięki czemu może być on później odtworzony....
Architektura 1052 dni, 16 godzin, 34 minuty temu 127 rozwiń
Strongly-typed DisplayValue i DisplayMember / DataValueField i DataTextField Ileż to razy zmuszeni jesteśmy pisać kod temu podobny: list.ValueMember = "Id"; list.DisplayMember = "Name"; Na CodeGuru niejednokrotnie pytano o jakiś sposób na rozwiązanie tego problemu. Podawanie stringów jest ZŁE, niewygodne i bardzo podatne na błędy wszelakie. Zmiana nazwy właściwości rozwala UI, refactoring bez dodatkowych narzędzi jak Resharper potrafi napsuć sporo krwi (a i z pomocą R# wcale przyjemny nie jest...
Architektura 1056 dni, 3 godziny, 56 minut temu 38 rozwiń
Dziś pragnę się z Wami podzielić moim odkryciem. Być może dla niektórych z Was nie będzie to nowość, a jeśli nawet to nic specjalnego. U mnie jednak spowodowało sporo radości (profesjonalnej) i uczucie podziwu dla autorów NHibernate.
Architektura 1056 dni, 3 godziny, 56 minut temu 49 rozwiń
Druga notka na temat pojedynczej sesji TechEd i znów dotyczy prezentacji Juval-a Lowy. Tym razem na warsztat postanowiłem wziąć prezentację o nieco intrygującym tytule "The Zen of Architecture". W moim przekonaniu Lowy był gwiazdą tegorocznej edycji TechEd, przynajmniej jeśli chodzi o tematy mnie interesujące, czyli architektura, SOA i okolice.
Architektura 1059 dni, 11 godzin, 36 minut temu 18 rozwiń
Wydaje mi się, że była to najlepsza sesja na TechEd 2009, w jakiej miałem przyjemność brać udział, dlatego postanowiłem poświęcić jej osobną notkę. Wcześniej coś tam słyszałem o MEFie, ale na tyle mało, że chciałem dowiedzieć się więcej, szczególnie, że ta technologia znajduje się na liście moich “TODO” [ostatnio mam wrażenie, że ta lista raczej będzie się wydłużać niż skracać – przyp. autora]. O samej technologii dowiedziałem się, że jest to framework, który największy nacisk kładzie na rozszerzalność i...
Architektura 1059 dni, 11 godzin, 36 minut temu 76 rozwiń
Postanowiłem rozpocząć serię krótkich notek dotyczących Domain Drvien Design. Prosto z "pola bitwy", ponieważ mam to szczęście być architektem w projekcie, w którym wykorzystujemy DDD jako sposób projektowania poszczególnych modułów. Uparłem się na to DDD, to teraz mam.
Architektura 1062 dni, 2 godziny, 4 minuty temu 34 rozwiń
Moje pierwsze zetkniecie z Sandcastle nie było najszczęśliwsze – help file – potrzebny był ‘na wczoraj’ a tu, dostępną miałem linie poleceń i masę parametrów, których ilość nie nastrajała optymistycznie. Mówiąc krótko byłem zawiedzony. Minęło trochę czasu i znów zmuszony byłem stworzyć plik pomocy – postanowiłem ponownie spróbować Sandcastl’a. Cóż, jeśli chodzi o sam pakiet to niewiele sie w nim zmieniło – inny numerek, ale cały czas mało przyjazny dla użytkownika. To że ktoś zajmuje sie programowaniem n...
Architektura 1068 dni, 23 godziny, 57 minut temu 80 rozwiń
Po Visitorze, dla którego ciężko znaleźć jakieś praktyczne zastosowanie, w miarę prosty i bardzo często używany wzorzec: Observer. Przydaje się on wtedy, gdy jest obiekt, który zmienia swój stan i zachodzi potrzeba, aby śledzić te zmiany.
Architektura 1072 dni, 13 godzin, 11 minut temu 131 rozwiń
DO or not DO? DO jak Data Object, zwane także DTO – Data Transfer Object, VO – Value Object czy nawet Presentation Entity. Używać czy nie używać? Oczywiście nie spodziewajcie się jednoznacznej odpowiedzi, a jeśli już taka padnie to pewnie będzie dość subiektywna. Problem ten przewija się na wielu forach i stosowanie obiektów DTO ma ty...
Architektura 1081 dni, 13 godzin, 52 minuty temu 41 rozwiń
Kompozyt (Composite) pozwala na takie zgrupowanie różnych obiektów, że mogą być one traktowane przez klienta w jednakowy sposób. Przykładem może być wyliczanie zawartości katalogu na dysku. Katalog może zawierać różne elementy: pliki, inne katalogi, drukarki...
Architektura 1082 dni, 5 godzin, 7 minut temu 78 rozwiń
Aplikacje typu REPL (Read, Execute, Print, Loop) są wykorzystywane w celu udostępnienia szybkiego środowiska uruchomieniowego dla kodu pisanego w języku X. Przykładami takich „konsol” jest chociażby konsola F# interactive, czy także konsole IPY i RP udostępnione przez IronPython i IronRuby. W aplikacjach typu REPL chodzi o to, że input wprowadzony przez użytkownika (READ) jest od razu przetwarzany i wykonywany (EXECUTE) zwracając wynik użytkownikowi (PRINT) dając mu możliwość wprowadzenia następnego ...
Architektura 1083 dni, 5 godzin, 29 minut temu 24 rozwiń
Czas zająć się wreszcie kwestią istotną, ale często traktowanąprzez wielu z nas po macoszemu, mianowicie transakcjami, a w zasadzie to zarządzaniem transakcjami. Każdy zdaję sobie sprawę z tego, że jest to bardzo ważny temat, ale nie do końca poświęcamy mu odpowiednią ilość czasu. W tym artykule chciałbym przybliżyć cały mechanizm zarządzania transakcjami jaki daje nam Spring....
Architektura 1084 dni, 7 godzin, 5 minut temu 49 rozwiń
Polecamy
Ostatnio na blogu
Polacy nie gęsi i swój języ...
Najaktywniejsi



