CsharpKażde wywołanie Substring(), array.Skip(1).Take(3) czy string.Split() tworzy w pamięci nową kopię danych. W kodzie, który parsuje raz plik konfiguracyjny, to nieistotne. W kodzie, który parsuje tysiące wierszy na sekundę — te…
Czytaj więcej →
CsharpZaczynasz naukę C# i już na starcie trafiasz na ścianę nazw: .NET Framework, .NET Core, .NET 5, .NET 6, .NET 8, .NET 9… W dodatku ktoś…
Czytaj więcej →
CsharpWszystkie trzy frameworki robią to samo: uruchamiają metody testowe i sprawdzają, czy wynik jest zgodny z oczekiwaniem. Różnią się atrybutami, sposobem parametryzacji i tym, jak bardzo…
Czytaj więcej →
CsharpJeśli czytałeś o Span<T> w C#, znasz już problem: kopiowanie danych przy każdym Substring() czy wycinku tablicy kosztuje pamięć i czas GC. Span<T> to rozwiązuje — ale ma jedno poważne ograniczenie: jako ref…
Czytaj więcej →
Csharp · ProgramowaniePisanie zapytań LINQ w C# wygląda na proste… dopóki kod nie zacznie żyć własnym życiem. Jedna długa linia, kilka Where, Select, OrderBy i nagle czytelność znika,…
Czytaj więcej →
CsharpKolejny wzorzec z serii opartej na Anatomii wzorca — 8 elementach opisu GoF. Tym razem Command — wzorzec, bez którego trudno wyobrazić sobie funkcję “Cofnij” w jakimkolwiek edytorze. 1.…
Czytaj więcej →
CsharpTDD w praktyce w C# .NET – Unit Testy, które projektują kod Test-Driven Development (TDD) w C# .NET to jedno z najbardziej niedocenianych narzędzi profesjonalnego programisty.…
Czytaj więcej →
CsharpUnit testy w Infrastructure .NET – jak testować File.ReadAllText zgodnie z Clean Architecture Dlaczego Infrastructure psuje testy? Testowanie warstwy Infrastructure w .NET to temat, który regularnie…
Czytaj więcej →
Csharp“Jakie rodzaje polimorfizmu są w C#?” to pytanie, na które większość kandydatów odpowiada tylko połową prawdy — mówią o override, zapominając, że przeciążanie metod (ObliczPole(int) i ObliczPole(double)) to też polimorfizm, tylko…
Czytaj więcej →
CsharpReprezentowanie skończonego zbioru opcji jako stringa albo liczby to zaproszenie do błędów: kompilator nie sprawdzi literówki w "Wysłąne", IntelliSense nie podpowie dostępnych wartości, a porównanie status == "wysłane" po…
Czytaj więcej →
Csharp · Programowanie w C#Unit Testing Application Layer w .NET – Mockowanie zależności z Moq Testowanie Application Layer w .NET (Unit Testing) to moment, w którym wielu programistów zaczyna improwizować.…
Czytaj więcej →
CsharpUnit Testy w C# z xUnit i FluentAssertions – Testowanie BattleService w Clean Architecture Piszesz kod w C#, ale boisz się, że po refaktoryzacji coś się…
Czytaj więcej →
CsharpPubliczne pole nie daje żadnej kontroli nad tym, co się do niego wstawia — ani teraz, ani w przyszłości, gdy zechcesz dodać walidację. Właściwości (properties) rozwiązują…
Czytaj więcej →