piątek, 30 sierpnia 2024
npm error LRUCache is not a constructor
poniedziałek, 19 sierpnia 2024
Fine Code Coverage
Bawiąc się moim testowym projektem WinFormsCrud w pewnym momencie postanowiłem sprawdzić sobie jakie mam pokrycie kodu testami jednostkowymi. O ile wiedziałem, że dla samego projektu WinForms będzie zero (bo do tego projektu jeszcze nie dołożyłem testów) o tyle dla pozostałych projektów byłem zainteresowany ile % wyjdzie.
Samo visual studio 2022 nie ma tego feature w standardzie, o tyle z pomocą przyszedł mi stackoverflow.com który poinformował mi, że dla Visual Studio 2022 Community istnieje darmowy tool pozwalający to sprawdzić, czyli FineCodeCoverage2022
Sprawdzilem sobie ten tool i on faktycznie działa.
Wiadomo, zawsze mogło być lepiej, natomiast w tym momencie najważniejsze że tool jest darmowy i działa.
poniedziałek, 12 sierpnia 2024
Flurl oraz Flurl.Http
Do napisania tego postu zainspirowały mnie dwie rzeczy. Pierwszą był post Cezarego Walenciuka na jego blogu odnośnie problemów z klasą HttpClent https://cezarywalenciuk.pl/blog/programing/ihttpclientfactory-na-problem-z-httpclient
Cezary omawia tam problem braku zwalniania socketów przez klasę HttpClient. Jako pierwsze rozwiązanie pada "użyj Flur", który opakowuje HttpClienta i dzięki temu działa to dużo bezpieczniej. Później Cezary omawia problem czystego HttpClienta i na koniec podaje rozwiązanie docelowe dla aplikacji .NET CORE MVC czyli HttpClientFactrory wpiętego w pipeliy (sorry, middleware) ASP MVC CORE. Wszystko pięknie, tyle że ja aktualnie pisałem sobie apkę na zadanie rekrutacyjne i tam było w wymaganiach podane aby to była aplikacja Windows Forms. Chwilę popatrzyłem, nie bardzo wiedziałem jak się wpiąć w pipeliny (middleware) WinFormsów więc użyłem Flur.Http i jestem szczęśliwy.
Dziękuje Cezary.
Linki:
https://www.nuget.org/packages/Flurl.Http
piątek, 9 sierpnia 2024
FluentAssertions
Polly - paczka NuGet do obsługi RetryPolicy
Czasami pisząc różne zapytania http, np. zapytania REST potrzebujemy wprowadzić politykę ponowienia zapytania. Serwer mógł dostać czkawkę, mógł się pojawić jakiś problem sieciowy lub deadlock na bazie danych po stronie aplikacji serwerowej. Dlatego dobrze jest mieć jakiś sprawdzony sposób na wykonanie powtórnych zapytań. Jest to szczególnie ważne w kodzie współbierznym..
W tym momencie, zgodnie z teorią "not invented here" (nie wynaleziono tutaj) wchodzi paczka nuget o nazwie Polly która jest odpowiedzialna za ogarnięcie polityki ponownego wysyłania zapytania. Można napisać ile razy chcemy wysłać zapytanie (ile porażek akceptujemy), z jaką częstotliwością robić ponowienie, które wyjątki oraz w jaki sposób chcemy je przechwycić.
https://www.nuget.org/packages/polly/