Przemysław Walkowski. Przez przypadek dokładając swoją cegiełkę do dyskusji o tym, czy wzorzec singielton jest dobry czy zły, doszukałem się dość ciekawej klasy w .NET 4.0, mianowicie klasy Lazy
Strona głównaUżytkownik
rroszczyk | użytkownik
Sztuka programowania 3499 dni, 20 godzin, 7 minut temu 465 źrodło rozwiń
Każdy z nas jest choć trochę leniwy. Jedni troszkę mniej, inni troszkę bardziej. Ja na ten przykład czasem się rozpędzam i piszę kod, który potrzebuje. Potem o nim opowiadam, a potem ktoś pyta czemu nie skorzystałem z jakiejś tam gotowej biblioteki. Wiem, że każdy z nas należy do mensy i wie, że ten wpis nie wziął się z powietrza.
I have started to think, what is the reason that people see it as hard and complex at the beginning? I have a theory: it has rules! Entering the world with rules is always uncomfortable, we need to adjust to rules. In this post I’d like to prove that in this case those rules are quite digestible.On the way to CQRS… Basically, we can say that CQRS is an implementation of Command Query Separation principle to the architecture of software. What I noticed during my work in this approach is that there is a c...
Architektura 3499 dni, 20 godzin, 7 minut temu 304 źrodło rozwiń
Kilka wpisów wcześniej zacząłem tematykę micro-serwisów oraz wzorca bramki. Jednym z wyzwań podczas rozłupywania monolitu jest zbyt wysoka liczba zapytań do innych serwisów, co powoduje utratę wydajności. Jeśli w monolicie była klasa np. CustomersRepository to teraz będzie to kompletnie nowa usługa. Wysłanie wiadomości do takiej usługo odbywa się przez jakiś protokół – w przypadku REST zwykle jest to HTTP. W monolicie nie było ważne to, że wywołaliśmy np. GetCustomerById(1), potem GetCustomerById(2) i...
Architektura 3501 dni, 8 godzin, 19 minut temu 165 źrodło rozwiń
Odcinek 14 jest kolejnym odcinkiem wyjątkowym. Po pierwsze: bo to pierwszy odcinek po angielsku! A po drugie: bo mój gość to szanowany na całym świecie, znany wszem i wobec, niewymagający przedstawienia: the one and only Udi Dahan! Gdyby pół roku temu ktoś powiedział mi, że DevTalk wyjdzie poza granice Polski, i to od razu z Gościem tego kalibru, to bym się tylko w czoło popukał. A tu proszę…
Sztuka programowania 3501 dni, 8 godzin, 19 minut temu 132 źrodło rozwiń
Na tą książkę zwróciłem uwagę, dzięki pytaniu K.Cebuli na naszej grupie na portalu www.facebook.com. To był chyba grudzień 2014r. i akurat amazon.com miał promocję na tą książkę. Recenzje miała dobre, wydawcę również (Microsoft), a tytuł brzmiał zachęcająco. Kupiłem więc tą książkę w formie ebooka, załadowałem na mojego kindla i w wolnym czasie ją sobie "trawiłem".
Już od jakiegoś czasu dość aktywnie (choć z przerwami) udzielam się na StackOverflow wokół tagów .NET/C#. Pomyślałem, że przekroczenie okrągłych 10k punktów jest dobrą okazją do spisania swoich różnorakich przemyśleń na temat tego serwisu.
Ostatnio uruchamiając synchronizację na jednym z agentów otrzymałem następujący błąd dotyczący własnego rozszerzenia: The management agent failed on run profile. The run step stopped because a required rules extension „Demo.FIM.ActiveDirectory.dll” could not be loaded. Po upewnieniu się, że wspomniana biblioteka znajduje się w katalogu Extensions zajrzałem do loga systemowego. Tam opis błędu był znacznie bardziej rozbudowany i wyglądał tak:
Sztuka programowania 3503 dni, 8 godzin, 34 minuty temu 100 źrodło rozwiń
W dzisiejszym poście pokażę bibliotekę Noda Time. Generalnie jest ona stworzona, aby zastąpić DateTime, który często powoduje problemy. Dzisiaj jednak, chciałbym pokazać Noda Time na przykładzie testów jednostkowym, bo to jest miejsce, gdzie DateTime po prostu nie nadaje się do użycia (przynajmniej bezpośrednio).
Sztuka programowania 3503 dni, 8 godzin, 34 minuty temu 148 źrodło rozwiń
ASP.NET MVC 6 supports both regular controllers (inheriting from Controller base type) and POCO controllers. Let’s have a look at how the discovery of them happens in ASP.NET MVC 6. Note that the code and mechanisms discussed in this article were introduced after ASP.NET 5 beta3 was released, so it is not yet available if you use the version of ASP.NET 5 bundled with Visual Studio 2015 CTP6.
Architektura 3507 dni, 18 godzin, 21 minut temu 185 źrodło rozwiń
Największa zaleta mikro-serwisów, a mianowicie pojedyncza odpowiedzialność, często bywa również problemem, a raczej wyzwaniem. Załóżmy, że nasz system ma następujący mikro-usługi:CustomerService – podstawowe informacje o klientach AddressService – wyszukiwarka adresów CreditCardDetails – dane o kartach Nie chce wymieniać tutaj długiej listy, ale wyobraźmy sobie...
Sztuka programowania 3507 dni, 18 godzin, 21 minut temu 412 źrodło rozwiń
Czasami zachodzi potrzeba ponownego wykonania jakiegoś kodu, w przypadku np. wyrzucenia błędu. Można samemu zaimplementować to za pomocą np. pętli, kontynuować daną operację w kolejnych iteracjach. Problem w tym, że taki mechanizm można dość znacząco rozbudowywać. Zwykle, chcemy poczekać przed następną iteracją ponieważ szanse, że ponowna próba, natychmiast po pierwszej próbie zakończy się sukcesem jest niska. Ponadto, zdefiniowanie “niepowodzenia” też jest dość skomplikowane. Polly to mała, ale dość ...
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?
Architektura 3512 dni, 3 minuty temu 678 źrodło rozwiń
Ale o czym dzisiaj, dzisiaj o obcisłości po angielsku w programowaniu. Słowo tight będzie jednym z bohaterów wpisu. A nawet tight coupling, czyli coś mocno wiążącego. Co tak mocno wiąże w programowaniu? Moim zdanie new jest temu winny. Wiąże bowiem ono ze sobą klienta, klasę którą korzysta z new aby zaspokoić swoje potrzeby, oraz dostarczyciela usługi, czyli klasę, która jest w stanie zaspokoić tę (tą) potrzebę.
Sztuka programowania 3515 dni, 7 godzin, 50 minut temu 545 źrodło rozwiń
Od jakiegoś czasu sporo występuję na różnych eventach i feedback jaki otrzymuję powoduje rumieniec jak stąd tam. Ostatnio na WDI byłem nawet przedmiotem pierwszej w swoim życiu pamiątkowej fotki :) (chłopaki, w świetle aktualnych wydarzeń politycznych mam nadzieję, że nie jesteście z WSI). Za top-spikera się nie uważam, ale skoro się podoba to postanowiłem zebrać kilka punktów, które są dla mnie kluczowe podczas przygotowywani...
Od jakiegoś czasu, sporo się piszę o horrendalnych stawkach jakie można zarobić w branży IT oraz o ogólnym zepsuciu tego sektora. Niektórzy mówią, że wystarczy pomachać odrobinę większą gotówką przed programistą, by ten z ochotą porzucił swojego obecnego pracodawcę. W moim odczuciu jest to wielkie generalizowanie, ponieważ ludzie łasi na gotówkę są w każdej branży i nie można powiedzieć, że IT pod tym względem wyróżnia się jakoś na plus czy na minus. Dlatego też również w tym sektorze znajdziemy tzw. sko...
Od jakiegoś czasu wzorzec “microservices” jest popularny w wielu firmach. Szczegółowe informacje znajdują się na blogu Martin’a Fowler’a, aczkolwiek na blogu chciałbym naszkicować koncepcję. Pomysł nie jest nowy, jednak pewne usystematyzowanie moim zdaniem ma sens. Dla mnie osobiście, to nic innego jak przestrzeganie zasady “Single rensponsibility” na poziomie usług. Wzorzec ma zastosowanie w systemach złożonych, SOA, a nie w prostych aplikacjach klient-serwer. Skrajnie zła sytuacja, to taka, w które...
Architektura 3520 dni, 5 godzin, 56 minut temu 672 źrodło rozwiń
Dzisiaj chciałbym pokazać Swagger, doskonałe narzędzie służące do dokumentacji REST API. Swagger, korzysta z plików JSON, którymi można opisać nasze API. W przypadku RESTful api m.in. możemy określić:Nazwę zasobuTyp zwracanych danychOpis obiektówWersję APIZwracane kody statusu HTTPParametry (np. query lub HTTP body)HTTP verbs (PUT, GET, POST etc)
W .net ASP.MVC są różne mechanizmy. Są też takie, które umożliwiają zbadanie argumentów przesłanych do akcji, jak i argumentów oczekiwanych w akcji. I właśnie o nich dzisiaj. Można je wykorzystywać na dobry i zły sposób, jak każde narzędzie. Najpierw mały pokaz a potem filozofowanie...
Sztuka programowania 3521 dni, 8 godzin, 54 minuty temu 214 źrodło rozwiń
Dzisiaj będzie o ludziach. Aż sam się dziwię, że taki post spod ręki mej wychodzi… ale jednak. Czy zdajesz sobie sprawę z tego, że robiąc COKOLWIEK ponad normę, jesteś źródłem wielkiej inspiracji? Tak, TY! Czy zdajesz sobie sprawę z tego, że wokół znajdziesz niewyczerpane studnie głębinowe motywacji, tylko czekające na odkrycie? Tak, przez CIEBIE!