Podczas nagrywania czwartego odcinka „Distributed .NET Core” (do którego oglądania serdecznie Cię zapraszam) wspólnie z Piotrkiem poruszyliśmy przez moment kwestię zasadności użycia async/await w tzw. „one line-rach” czyli metodach, których ciało posiada jedynie jedną linie i najczęściej jest implementowane za pomocą operatora „goes to” (nie mylić z lambdami). Przykład takiej metody: public async Task
Sztuka programowania 2176 dni, 23 godziny, 44 minuty temu 311 źrodło rozwiń
Reguła Open Close Principle mówi o tym, że klasa powinna być otwarta na rozszerzenia i jednocześnie zamknięta na modyfikacje. Zgodnie z zasadą tego cyklu – „Nie SOLID-nie„, przedstawiam jak może wyglądać klasa napisana wbrew tej regule. Przykład Skoro ostatnim razem, w przypadku reguły SRP, posłużyłem się przykładową klasą MessageProcessor, tym razem posł...
Sztuka programowania 2176 dni, 23 godziny, 44 minuty temu 142 źrodło rozwiń
Imagine you are a Junior .Net Developer and you just started your development career. You got your first job and you are given a task – write unit tests! Nothing to worry about, since you got me. I’ll show you how things are done and what are the best practices to follow.
Sztuka programowania 2176 dni, 23 godziny, 44 minuty temu 76 źrodło rozwiń
Brak porannej kawy to proszenie się o błędy :) Tutaj opisuje jeden taki błąd który z braku kawy wynikał i co zrobiłem żeby w przyszłości się nie powtórzył. TLDR: IReadOnlyList
Sztuka programowania 2176 dni, 23 godziny, 44 minuty temu 127 źrodło rozwiń
Ten post to mieszkanka różnych przemyśleń na temat użycia Maybe (Option / Optional) w kodzie produkcyjnym i ogólnie programowania funkcyjnego w C#.
Sztuka programowania 2180 dni, 23 godziny, 31 minut temu 114 źrodło rozwiń
Wikipedia podaje, że SOLID to ukuty przez Roberta C. Martina mnemonik. Wystarczy jednak zapamiętać, że jest to zbiór zasad jakimi powinien się kierować programista, podczas pisania kodu. Zwłaszcza w paradygmacie programowania obiektowego. Dużo się pokazuje jak na prawdę powinien wyglądać kod spełniający kryteria zawarte w poszczególnych regułach SOLIDa, natomiast niewiele się pokazuje przypadków niepoprawnego zastosowania tych reguł, lub nie zastosowania ich w ogóle. Właśnie to będzie celem tego cyklu....
Sztuka programowania 2183 dni, 22 godziny, 3 minuty temu 186 źrodło rozwiń
Jakiś czas temu podczas rozwijania swojego projektu Open Source stanąłem przed, wydawać by się mogło prostym problemem. Otóż chciałem udostepnić użytkownikom biblioteki metodę rozszerzającą, która automatycznie zarejestrowałaby w kontenarze dependency injection wszystkie klasy implementujace konkretny interfejs. W przypadku zewnętrzynych bibliotek jak np. Autofac taki zabieg jest możliwy dzieki Assebly Scaning, który wyglada następująco: builder.RegisterAssemblyTypes(myAssembly) .Where(t => t....
Sztuka programowania 2190 dni, 19 godzin temu 157 źrodło rozwiń
The YamlDotNet is the most famous library to manage YAML format on .Net platform. This library is really stable and good solution. Many of my programs use this library, so I thought that this is prefect open source project that I can improve.
Sztuka programowania 2195 dni, 23 godziny, 43 minuty temu 122 źrodło rozwiń
Sztuka programowania 2200 dni, 23 godziny, 28 minut temu 350 źrodło rozwiń
The history of the first pull request to BenchmarkDotNet.
Sztuka programowania 2200 dni, 23 godziny, 28 minut temu 77 źrodło rozwiń
Dzisiejszy wpis jest zainspirowany kilkoma ostatnimi przypadkami, w których widziałem bardzo rozbudowane switche w aplikacji. Utrzymanie tego kodu zaczynało sprawiać programistom spore problemy. Zapewne wielokrotnie widziałeś lub widziałaś metody, w których znajdował się jeden wielki switch, gdzie każdy case zawierał następnie zupełnie inny kod niż pozostałe przypadki. Utrzymanie tego, a w szczególności dodanie nowych przypadków zaczyna być wyzwaniem i często ...
Sztuka programowania 2201 dni, 23 godziny, 36 minut temu 374 źrodło rozwiń
Sztuka programowania 2201 dni, 23 godziny, 36 minut temu 204 źrodło rozwiń
Jest piątek, wybija godzina 15:00. Pozostała zaledwie godzina do końca pracy. Do Twojego zespołu dociera informacja, że koniecznie teraz musicie wdrożyć na produkcję zmiany, które w ostatnim czasie wprowadziliście. Wdrożenia w piątek = istny koszmar? 😲 Pojawia się natychmiastowa negacja pomysłu, czy raczej z swobodą udajecie się w odpowiednie miejsce aby kliknąć w magiczny przycisk wrzucaj wszystko na proda!
Sztuka programowania 2204 dni, 23 godziny, 16 minut temu 64 źrodło rozwiń
Wracamy do postów technicznych - i to z przytupem! Słyszeliście o różnych bibliotekach do testowania? Jedną z wartych uwagi bibliotek jest FluentAssertions - w poście szczegóły, czemu akurat ją warto wybrać.
Sztuka programowania 2204 dni, 23 godziny, 16 minut temu 65 źrodło rozwiń
Ups! Właśnie do ciebie dotarło, że wraz z twoimi zmianami, do serwera powędrowało twoje hasło, zapisane gdzieś w kodzie! Natychmiastowo usuwasz hasło z plików źródłowych ❌, tworzysz nowy commit i ponownie: push.Uff… już po sprawie… Czy aby na pewno? 💣
Sztuka programowania 2207 dni, 23 godziny, 43 minuty temu 134 źrodło rozwiń
On the 5th of November 2018 I had a pleasure to attend Dotnetos Conference in Warsaw. It was a first conference oriented towards a single topic – .NET performance – I took part in. I didn’t know what to expect from this event, as it was much smaller than other conferences I used to attend and actually organized by 3 .NET geeks (more about them later 🙂 ). In today’s post I’d like to share with you my feelings about the event. I’d also like to smuggle some topics that were covered during the sessions,...
Sztuka programowania 2211 dni, 21 godzin, 22 minuty temu 40 źrodło rozwiń
Quite often the methods have multiple parameters of the same type, like multiple integers or DateTimes. Sometimes it is just a nature of data, like identifiers are usually integers (AssignDuty). In other cases this is a missing abstraction for an element being processed, like in the CalculateRate function.
Sztuka programowania 2214 dni, 23 godziny, 40 minut temu 150 źrodło rozwiń
O tym że using toleruje nulle i że czasami można to wykorzystać...
Sztuka programowania 2215 dni, 23 godziny, 16 minut temu 210 źrodło rozwiń
Kolejny post z serii o Bounded Contextach - jakie problemy niesie brak kontekstów w aplikacji. Czyli czym różni się produkt od produktu 😉
Sztuka programowania 2216 dni, 23 godziny, 44 minuty temu 179 źrodło rozwiń
Nieistniejące w słowniku języka polskiego, słowo klucz! Jakże pożądane w kręgach biznesowo-programistycznych. Czy słusznie?
Sztuka programowania 2216 dni, 23 godziny, 44 minuty temu 156 źrodło rozwiń