Z reguły naszą logikę biznesową umieszczamy w klasach serwisowych. Czasem są one większe, a czasem mniejsze. Zastanówmy się, jak mógłby wyglądać nasz kod, gdybyśmy dla każdej metody z serwisu tworzyli osobną klasę. Wykorzystamy do tego bibliotekę MediatR. Jeśli ktoś się zastanawia po co, odpowiedź jest prosta: aby zwiększyć spójność i zmniejszyć sprzężenie. Na razie nie będziemy się zagłębiać w takie pojęcia jak CQRS czy CQS. Naszym celem jest rozbicie klas na mniejsze i zmiana tego, jak je wołamy. Po ty...
Sztuka programowania 572 dni, 19 godzin, 9 minut temu 133 źrodło rozwiń
What are Probabilistic Data Structures: Bloom This video will introduce you to Probabilistic Data Structures, and we shall cover a data structure called a Bloom Filter that's used to do efficient membership testing (if X is present in set S)
Sztuka programowania 572 dni, 19 godzin, 9 minut temu 15 źrodło rozwiń
This article contains information about using Azure Active Directory credentials for login to Angular client-side with .Net core backend. This solution is based on JWT tokens (frontend and backend solutions can be on different hosts, so cookies auth methods by CORS policy is not the best choice in that case).
Sztuka programowania 574 dni, 19 godzin, 22 minuty temu 64 źrodło rozwiń
Zapraszam do historii 3 PRów, które optymalizują jednego z klientów Ethereum, Nethermind. Zaczęło się niewinnie, od profilowania, a skończyło na przepisaniu implementacji cache'a.
Sztuka programowania 580 dni, 19 godzin, 17 minut temu 56 źrodło rozwiń
Nowy artykuł, w którym chciałem pokazać nie tylko zalety pracy programisty, ale również wady - o których często zapominają osoby, które chcą pójść tą ścieżką. Zapraszam.
Sztuka programowania 586 dni, 18 godzin, 57 minut temu 122 źrodło rozwiń
Bardzo interesujący tydzień za nami! W końcu pojawił się .NET 5, a wraz z nim 3-dniowa konferencja pełna interesujących prelekcji! Kilka z nich było poświęcone projektowi Tye. Temat ten bardzo mnie zainteresował, więc postanowiłem samodzielnie spróbować użyć tego narzędzie. Efektem mojego eksperymentu jest wpis, który właśnie czytasz w Cesarstwie-Dev! Nie będę wchodził w techniczne szczegóły tego projektu, lecz pokażę kolejne efekty pierwszych kilku godzin pracy z Tye. Mam nadzieję, że jesteście równie z...
Sztuka programowania 587 dni, 19 godzin, 48 minut temu 148 źrodło rozwiń
This video will introduce you to a Data Structure called a Bit Set. While this is not a specific dotnet / C# topic it's a computer science topic and all of the animations were coded in C# :)
Sztuka programowania 591 dni, 19 godzin, 49 minut temu 34 źrodło rozwiń
Today I’d like to share with you a very interesting concept in software testing – Assert Object pattern. It makes the Assert part of a test much simpler and more readable. Let’s dive right into it 😉The Asserts Hell Let’s consider the following unit test: What’s wrong here? Given and When sections are great single-liners. We know straightaway what’s the input and the action executed. However, Then block is too complex. It’s hard to figure out, just passing quickly through this test, what is expected. T...
Sztuka programowania 594 dni, 19 godzin, 5 minut temu 57 źrodło rozwiń
Pierwszy z tej serii wpis będzie zawierał wprowadzenie do wzorców, jak i opis mojego ulubionego wzorca o wspaniałej nazwie Dekorator. Wzorce projektowe to uniwersalny sposób na rozwiązanie powtarzalnego problemu. Dekorator pozwala na dynamiczne przydzielenie danemu obiektowi nowych zachowań.
Sztuka programowania 595 dni, 19 godzin, 9 minut temu 161 źrodło rozwiń
Przeglądając kod innych ludzi można napotkać (w deklaracjach klas) na private set. Zastanawiałeś się kiedyś do czego jest to używane? Czemu należy tak wszędzie pisać? A może nie wszędzie? Czym jest enkapsulacja? Spis treściPo co?Czym jest enkapsulacja?To jak to użyć?Jak niby ma zadziałać serializacja?To utrudnia testy!A co z Automapperem?PodsumowaniePo co? To co widzisz to zastosowanie zasady enkapsulacji – hermetyzacji -kapsułkowania (to ost...
Sztuka programowania 599 dni, 19 godzin, 10 minut temu 80 źrodło rozwiń
Spojrzenie na TDD przez pryzmat własnych porażek TDD czyli Test Driven Development to bez wątpienia najbardziej znana praktyka ze zbioru XP[1]. Sama koncepcja już leciwa, a jej pomysłodawca - Kent Beck - przedstawił jej fundamenty w książce z 2002 roku[2]. W telegraficznym skrócie można by rzecz, że sprowadza się do napisania testu, kt...
Sztuka programowania 601 dni, 18 godzin, 59 minut temu 102 źrodło rozwiń
Do dzisiejszego wpisu zainspirował mnie jeden z Czytelników mojego bloga, który w artykule Jaki Język Programowania Wybrać? zasugerował, że na początek powinno się wybrać język angielski. Pomijając już fakt, że w tamtym artykule pisałem tylko o językach programowania, to zastanówmy się dzisiaj, czy faktycznie na początku powinniśmy się s...
Sztuka programowania 606 dni, 19 godzin, 36 minut temu 95 źrodło rozwiń
Handling gRPC server exceptions in .Net Core. Changing of gRPC requests HTTP status code for bad requests. Transform gRPC exception details to the client-side.
Sztuka programowania 606 dni, 19 godzin, 36 minut temu 38 źrodło rozwiń
Obserwowanie własnej pracy to nie tylko uczenie się trików. To także korygowanie szkodliwych nawyków. Sami możemy nie zauważyć, jak wiele czasu marnujemy na pewne czynności, dopóki ktoś inny nie zwróci nam uwagi, że można to zrobić lepiej, szybciej, prościej, wydajniej. Programując w parach uczymy się sprawności w działaniu, korygujemy się wzajemnie. To wielka wartość.
Sztuka programowania 614 dni, 19 godzin, 52 minuty temu 67 źrodło rozwiń
What is technical debt? The best explanation of this term, coined by Ward Cunningham, was provided by Marin Fowler. We are unable to evolve IT systems perfectly. Every added or modified functionality introduces little deficiencies in software quality. These deficiencies accumulate over time and make it harder for us to sustain the pace at which we deliver our systems to production.
Sztuka programowania 616 dni, 20 godzin, 19 minut temu 40 źrodło rozwiń
This blog post continues the series which is a guide through the code analyzers available on the market and their possibilities. I’m trying to help you answer the question: “Which analyzer package should I use and how to configure it to avoid problems related to async/await?".
Sztuka programowania 616 dni, 20 godzin, 19 minut temu 45 źrodło rozwiń
gRPC CodeFirst approach. The performance benchmark for gRPC vs REST communication in .Net core 3.1. How much does cost to open gRPC channel & why is worth to scope it like HttpClient.
Sztuka programowania 616 dni, 20 godzin, 19 minut temu 126 źrodło rozwiń
Z reguły nasze aplikacje posiadają jakąś logikę biznesową (o ile nie piszemy prostego CRUD). Chciałbym jednak zaznaczyć, że nie mam tu na myśli logiki w rozumieniu walidacji czy reguł biznesowych, np. brak możliwości zmiany wartości jakiegoś pola, gdy pewne warunki nie zostaną spełnione. Chodzi mi bardziej o logikę procesu, np. gdy klient złoży zamówienie, musimy mu wysłać wiadomość e-mail. Ta logika nie dotyczy obiektu zamówienia, ale jest z nim związana. Skoro wiemy, że będziemy musieli przechowywać g...
Sztuka programowania 621 dni, 20 godzin, 31 minut temu 128 źrodło rozwiń
In this video, we're going to put JIT Tiered compilation to the test (using C# programs) and see what's the performance difference between Tier0 vs. Tier1 vs R2R.
Sztuka programowania 621 dni, 20 godzin, 31 minut temu 15 źrodło rozwiń
Czy można być za starym na programowanie? Kiedy warto zacząć programować?
Sztuka programowania 621 dni, 20 godzin, 31 minut temu 84 źrodło rozwiń