W testach bardzo często mamy do czynienia z powtarzaniem tego samego kodu. Tak samo ma się sprawa z testowaniem null-checków (zw. inaczej jako guard clauses) w konstruktorach. Jeśli chcemy napisać test dla takiego przypadku, to zazwyczaj jest on napisany jako osobna metoda. Jak możemy sobie uprościć życie? Z pomocą przychodzi biblioteka AutoFixture.Idioms. Aby móc skorzystać z funkcji do automatycznego testowania null-checków w konstruktorach, potrzebujemy zainstalować dwa nugety:AutoFixture.Idi...
Sztuka programowania 1896 dni, 17 godzin, 9 minut temu 89 źrodło rozwiń
Introduction to docker-compose with example written in C# on .NET Core 2.2 composed with MySQL database.
This blog post continues the series "Avoid thread synchronization problems with Roslyn" and this part is about the traps related to the usage of synchronization primitives.
Potrzebowałam kiedyś w pracy dowiedzieć się, czy dllka, którą wrzucam na serwer, jest aktualna. Ale jak to zrobić? Nie można jej po prostu otworzyć i „podejrzeć”, sprawdzić, czy dana linijka kodu jest zmieniona. Co w takim razie można było zrobić? Wykorzystać specjalny program dotPeek.
Mam nadzieję, że mi wybaczycie małą autoreklamę. Możliwe, że już słyszeliście o “Poznaj Kubernetes”, który organizuję razem z Jakubem “Gutkiem” Gutkowskim i Łukaszem Kałużnym. Mam wrażenie, że sporo dotnetowców pomyślało sobie: Przecież my mamy pełny .NET Framework na IIS. Cud, że już są VM’ki zamiast serwerów. A oni mi Kubernetes chcą wcisnąć. Pogięło ich czy co? Jeżeli Ty tak nie pomyślałeś, to super. Ja jeszcze 3 lata temu na pewno bym tak pomyślał. Nawet jeżeli 3 lata temu lada dzień miałby pojawić...
W poprzednim wpisie pokazałem Ci, jak użyć Sql Server Snapshots do resetowania stanu bazy w automatycznych testach. Innym podejściem, które możemy wykorzystać podczas pracy, jest po prostu usuwanie z bazy danych, które zostały dodane podczas wykonywania testów. Tytułowa biblioteka Respawn umożliwia realizację czegoś takiego w bardzo prosty sposób, ale ma również niestety swoje wady. Zobacz, co umożliwia i gdzie może Ci się ona przydać.Respawn Respawn (https://...
Bazy danych i XML 1900 dni, 16 godzin, 59 minut temu 102 źrodło rozwiń
W 49. odcinku poruszamy temat, o którym było ostatnio głośno. Mityczny 10x developer/engineer to temat który dzieli środowisko developerskie tak dobrze jak politycy Polaków. W odcinku przechodzimy przez wszystkie 11 punktów manifestu i omawiamy je zastanawiając się czy mają one sens czy nie.
Sztuka programowania 1901 dni, 16 godzin, 29 minut temu 159 źrodło rozwiń
Wszędzie się słyszy EventStorming, EventStorming, ale jak do tego podejść? Gdzie co kleić? Co pisać? No cóż, nie ma lekko. Dlatego zapraszam do 5 kroków, jakie musisz wykonać, by osiągnąć cel, jaki sobie obierzesz na tapetę w trakcie sesji Event Stormingu. Czyli jak przeprowadzić warsztat, a dokładnie BigPicture
Architektura 1901 dni, 16 godzin, 29 minut temu 109 źrodło rozwiń
Wakacje się skończyły, więc powracamy z cyklem “Co tam Panie w dotnecie?”. Dzisiejsza edycja wybiega poza ostatni tydzień, bo wiadomości w sierpniu się nazbierało. Ale król jest jeden - musical, chociaż może data wydania pełnej wersji .NET Core 3.0 jest ważniejsza o ile jej jeszcze nie znacie :) Zaczniemy jednak od …ValueTask czyli Marc Gravell w formie Jeżeli jeszcze nie bawiliście się ValueTask, to artykuł Marca na pewno Was przekona. Bardzo dogłębna analiza kiedy używać Task, a kiedy ValueTask. Cało...
Dzisiaj kilka słów oraz demo o blokach warunkowych, pętlach oraz wykonaniach równoległych w Azure Logic Apps.
Ostatnio miałam okazję konfigurować logowanie w aplikacji. Użyłam do logowania paczki NLog. We wpisie opowiem, jak za pomocą jednego pliku skonfigurować loger.
Dzisiaj mam dla (kolejną) Ciebie lekcje DEMO mojego kursu Dokładna Wycena Projektów IT. Jest to 7 lekcja z 27, więc nie zdziw się jeśli jakiś omawiany kontekst będzie dla Ciebie nie jasny – pewnie omówiłem go w poprzednich lekcjach kursu W tej lekcji mówię o tym co trzeba zrobić, żeby programista wycenił dokładniej swoje zadanie. Zazwyczaj otrzymywałeś wycenę w jednym wymiarze – czasu, czyli pracochłonności. Polecam dodanie ...
Azure Functions są świetne mówili. Azure Functions są dobre. Azure Functions są tanie. I są :-) W artykule prezentuję case-study mojego sklepu internetowego, który napisałem łącząc kilka komponentów właśnie przy użyciu Azure Functions. Ile komponentów i jak je połączyłem? Co faktycznie było uruchamiane jako funkcja, a co nie? O tym wszystkim w artykule.
Programista 10x to osoba, której wydajność jest dziesięciokrotnie większa od przeciętnego inżyniera oprogramowania. Niektórzy nie wierzą, że jest to możliwe, inni twierdzą, że sami są programistami 10, a nawet 100x. Czy programista 10x istnieje? Jak zostać programistą 10x?
Sztuka programowania 1903 dni, 15 godzin, 58 minut temu 213 źrodło rozwiń
Podzielę się swoimi przemyśleniami i zdradzę “sekrety” tworzenia kursu, jego sprzedaży i samej pracy koncepcyjnej – jak opracowywałem materiały 🙂 Myślę, że przyda się każdemu kto chociaż przez moment pomyślał o stworzeniu własnego kursu. Przed obejrzeniem wideo polecam Ci rzucić okiem na stronę domową kursu – WycenaProjektow.pl. Pomoże Ci to lepiej rozumieć konteksty, które omawiam 🙂W Case Study O: ✅ Jak badałem pomysł i zainteresowanie? ...
Reading time ~7 minutes This article is Part 3 in a 3-Part Series. Part 1 - Refactoring to Data Driven TestsPart 2 - How to get data for Data-Driven Tests?Part 3 - This Article As promised here and here, this will be tips, tricks, and good practices for data-driven tests. If You want to know more about data-driven testing see my previousposts on this topic. Here we go. I will be converting this series into an ebook with additional source code and examples. If You want to get it please subscribe:G...
Sztuka programowania 1906 dni, 16 godzin, 37 minut temu 53 źrodło rozwiń
W kilku ostatnich wpisach na blogu zająłem się tematem testowania WebApi z wykorzystaniem testów w Postmanie. Ostatnio mogłeś zobaczyć, w jaki sposób wykonywać automatycznie testy w Azure DevOps. Użyty w tamtym wpisie przykład był bardzo prosty i tak naprawdę nie do końca był namiastką realnej aplikacji. Nie używał on bazy danych, a dane generował dzięki bibliotece NBuilder i przechowywał je w pamięci. Przez to powrót do znanego stanu przed uruchomieniem testów...
W jaki sposób mockować (za pomocą Moq) metody ze słowem kluczowym out? Przyjrzyjmy się bliżej problemowi…
Sztuka programowania 1907 dni, 17 godzin, 8 minut temu 85 źrodło rozwiń
Do napisania tego posta zainspirowało mnie zmiana statusu na GA Azure Functions Deployment Slots, oraz próba jego użycia w aplikacji którą się zajmuję. W skrócie do czego można wykorzystać „Deployment Slots”? Możemy je użyć do separacji środowisk pre-prod/prod lub też do testów jakiś wybranych funkcjonalności. Są one mocno powiązane z koncepcją Canary Releases lub też Blue-Green Deployment. O co chodzi z obiema koncepcjami zapraszam...
Many people at the beginning of the project ask themselves - what architecture to choose? Would you not even think about it when starting your first serious project? I bet you would. In this post, I will try to answer this question from my perspective because I have always thought about it myself… until one day.
Sztuka programowania 1909 dni, 17 godzin, 15 minut temu 111 źrodło rozwiń