Są rzeczy ważne, ważniejsze i testy jednostkowe. No i może kakałko wypadałoby umieścić na końcu listy, przynajmniej zimą. Wracając jednak do testów, uważam je za podstawowe narzędzie do poprawy jakości kodu. Pozwalają nam szybko przetestować, czy nasza twórczość działa poprawnie i (jeśli testy są prawidłowo napisane) zgodnie z założeniami biznesowymi. W dzisiejszym, dość krótkim, artykule chciałbym Wam przedstawić narzędzie Coverlet służące do obliczania pokrycia kodu przez testy jednostkowe. Jest to kró...
Używając FluentAssertion musimy zwracać uwagę w którym miejscu użyjemy Should(). W zależności od położenia Should() błędy zwracane z asercji mogą być lepszej lub gorszej jakości.
Sztuka programowania 1508 dni, 1 godzinę, 5 minut temu 124 źrodło rozwiń
Git flow, o którym wspominałam już wcześniej, to fajna rzecz. Trzeba jednak pamiętać, że odpowiednio nazywać branche (w skrócie: feature/featurename i bugfix/bugname). Czasami zdarza się jednak, że zapomnimy o tej konwencji, a już wyślemy zmiany na serwer. Co wtedy?
Kontynujemy dział o dependency innjection, w tym artykule rektoryzujemy kod z poprzedniej części, który jeszcze będzie później dostosowywany do dependency injection.
Architektura 1508 dni, 1 godzinę, 5 minut temu 106 źrodło rozwiń
Ostatnio w pracy, został poruszony temat ogólnoświatowej recesji wieszczonej od jakiegoś czasu i jej wpływu na naszą, stricte IT, branżę. Sprawa zainteresowała mnie na tyle, że postanowiłem napisać coś w tym temacie. Jak wiadomo, ogólnoświatowa gospodarka, od czasu do czasu przeżywa „załamanie”. Okres od jednego spadku do drugiego nie zawsze jest taki sam, ale wiemy już (jako ludzkość) że dzieje się to, mniej więcej, w okresach 30-to letnich, a najbliższa nam następna zapaść ekonomiczna (dla średniej dł...
Rozwijanie usługi systemowej stworzonej z domyślnego szablonu w Visual Studio nie jest prostym zajęciem. Szczególnie debugowanie takiej aplikacji sprawia sporo problemów. Nie można z poziomu IDE uruchomić usługi i jej debugować. Trzeba podpinać się pod działający proces. W przypadku gdy chcemy zdebugować start usługi, musimy posiłkować się różnymi dziwnymi konstrukcjami, które zatrzymają start usługi do momentu podpięcia się debugera. W dzisiejszym wpisie będę...
Dzięki artykułowi dowiesz się wszystkiego co trzeba wiedzieć o poziomach testów w projekcie. Jakie mamy poziomy oraz jakie cele spełniają.
Sztuka programowania 1512 dni, 48 minut temu 160 źrodło rozwiń
If you're interested in C# 8.0 new features, come and read about nullable reference types :) We'll continue exploring next interesting features of C#8 in the weeks to come.
Sztuka programowania 1512 dni, 48 minut temu 107 źrodło rozwiń
Simple .NET Core REST API CQRS implementation with raw SQL and DDD - Kamil Grzybek
Architektura 1512 dni, 48 minut temu 211 źrodło rozwiń
As part of my talk about real-time technologies in ASP.NET Core I mention that Web Push can be scaled with Azure Functions. In this post I'm showing how.
Często pracując z Typescriptem przychodzi moment, w którym należy sobie zadać pytanie – chcę użyć null czy undefined? Czasami może nam się wydawać, że jest to obojętne – ale jednak różnica jest.
Sztuka programowania 1514 dni, 2 godziny, 10 minut temu 97 źrodło rozwiń
Ostatni w pracy koleżanka spytała się mnie jak może cofnąć zmiany ze złego merge commita. Zorientowała się, że jest błąd tuż po wrzuceniu kodu na serwer. Zobaczmy jak to można naprawić używając polecenia git revert.
Co tu tak brzydko pachnie? A może to mój kod? O niepokojącym braku wrażliwości na brzydkie zapaszki w kodzie pisze Wujek Bob Martin:
Sztuka programowania 1514 dni, 2 godziny, 10 minut temu 111 źrodło rozwiń
“Ref structs were introduced in C# 7.2, and this is not the place to reiterate their usefulness, but in return they come with some severe limitations, such as not being able to implement interfaces. Ref structs can now be...
Sztuka programowania 1517 dni, 14 godzin, 45 minut temu 144 źrodło rozwiń
Podczas pracy nad rozwojem oprogramowania dostrzegamy pewne rozwiązania, które są jasnym sygnałem do podjęcia się refaktoryzacji danego fragmentu kodu. Kenta Beck zdefiniował termin Code Smells – to cechy kodu, które świadczą o złej implementacji, utrudniającej utrzymanie oraz rozwój kodu. W tym odcinku podcastu skupiamy się na Code Smells, które z naszej perspektywy pojawiają się najczęściej i nad którymi warto popracować.
Sztuka programowania 1517 dni, 14 godzin, 45 minut temu 98 źrodło rozwiń
Ósmy odcinek kursu „Distributed .NET Core” jest już na YouTube więc do dobry moment, aby kontynuować kolejne zagadnienia związane z naszą implementacją mikroserwisów. W poprzednich wpisach omówiłem kolejno zapis i odczyt danych z systemu bazującego na wzorcu CQRS tym samym „zamykając” temat komunikacji użytkownik-system. Istnieje jednak jeszcze jedna, istotna forma komunikacji, niewidoczna dla zewnętrznych podmiotów. Mowa o wewnętrznej wymianie informacji między konkretnymi usługami. Po co usługi komun...
Architektura 1518 dni, 17 godzin, 6 minut temu 257 źrodło rozwiń
Przez ostatnie kilka miesięcy moją uwagę, w wolnym czasie, zabierał mi Domain Driven Design. Wieczory umilała mi lektura Evansa, Vernon-a, Folwer-a. Pogłębianie wiedzy dało mi do myślenia. Zacząłem się zastanawiać jak wygląda domena mojego projektu i w jaki sposób mogę ją zamodelować przy pomocy kodu. W tym artykule chciałby Ci, mój drogi czytelniku, przedstawić trzy sposoby modelowania encji jakie towarzyszyły mi podczas mojej kariery programisty. Na wstępie zaznaczę, że nie jest to kolejny wstęp do DD...
Sztuka programowania 1518 dni, 17 godzin, 6 minut temu 196 źrodło rozwiń
Logowanie działania aplikacji jest bardzo przydatne podczas późniejszej analizy tego, co się stało. Na ogół prawie każda aplikacja loguje jakieś informacje. Niestety zauważyłem, że równie często nie do końca dobrze logujemy wiadomości. Jest to szczególnie widoczne w aplikacjach webowych (na przykład w ASP.NET MVC). Przy dużej liczbie użytkowników wiadomości z poszczególnych żądań są wymieszane między sobą, przez co ich późniejsza analiza jest bardzo utrudniona ...
Dzisiaj post o czymś, o czym zwykle nie myślimy, nie zwracamy na to uwagi. O nagłówku strony. Okazuje się, że jego konfiguracja jest bardzo ważna, w momencie gdy chcemy dzielić się linkiem do strony np. na fb/tt.
Przyczyn powstawania brzydkiego kodu jest cała masa. Nie sposób wymienić wszystkich. Stworzyłem tę listę bazując na własnych obserwacjach. Są to elementy powtarzalne. Spotykane w różnych projektach dla różnych klientów. Dziele się nimi z Tobą. Bierz i korzystaj! Oto przyczyny złego kodu specjalnie dla Ciebie!
Sztuka programowania 1520 dni, 17 godzin, 19 minut temu 263 źrodło rozwiń