Każdy początkujący programista prędzej czy później napotyka na pozornie magiczny błąd: w wielu językach programowania wynik 0,1 + 0,2 nie jest równy 0,3. Z matematycznego punktu widzenia to niedorzeczne – przecież od dziecka uczono nas, że 0,1 + 0,2 = 0,3. A jednak w świecie programowania często zobaczymy rezultat w postaci czegoś w stylu 0,30000000000000004. Dlaczego tak się dzieje? Spokojnie – to nie bug, lecz cecha sposobu, w jaki [...]
Każdy, kto zaczyna przygodę z programowaniem, szybko przekonuje się, że napisanie działającego kodu to dopiero połowa sukcesu. Druga połowa to napisanie kodu czytelnego, łatwego w utrzymaniu i rozszerzalnego w przyszłości. Doświadczeni programiści kierują się pewnymi uniwersalnymi zasadami, które pozwalają unikać chaosu w projekcie i błędów trudnych do wykrycia. W tym artykule przedstawię Ci 10 najważniejszych zasad, jakimi [...]
Na drodze każdego początkującego programisty .NET pojawiają się typowe pułapki, które mogą prowadzić do błędów i nieefektywnego kodu. W tym artykule przedstawię Ci kilka najczęstszych problemów, z którymi spotykają się twórcy aplikacji w C#, oraz podpowiem, jak ich unikać. Mylenie typów wartości i referencji. W C# trudno czasem odróżnić, kiedy zmienna trzyma wartość (value type, np. int, struct) a kiedy referencję do obiektu (reference type [...]
Domain-Driven Design (DDD) to dominujące podejście do tworzenia oprogramowania, które koncentruje się na definiowaniu elementów systemu (obiektów, komponentów) w taki sposób, aby jak najwierniej odzwierciedlały one rzeczywistość biznesową. Pojęcie to wprowadził Eric Evans, autor przełomowej książki "Domain-Driven Design", a DDD można opisać jako zbiór wzorców i zasad pomagających tworzyć "eleganckie" systemy obiektowe. Poprawne [...]
Wielu programistów marzy o tym, by pewnego dnia ich własna aplikacja zaczęła przynosić dochód. Dobra wiadomość jest taka, że w dobie nowoczesnych technologii .NET – takich jak Blazor czy ASP.NET Core – zbudowanie aplikacji webowej i monetyzacja jej jako produktu są bardziej osiągalne niż kiedykolwiek. Wymaga to jednak nie tylko umiejętności programistycznych, ale też pomysłu na rozwiązanie realnego problemu oraz przemyślanego [...]
Czy można tworzyć nowoczesne, interaktywne aplikacje webowe w C# i .NET bez użycia JavaScriptu? Microsoft udowadnia, że tak – za sprawą technologii Blazor. To stosunkowo młody framework, który zdobywa coraz większą popularność wśród programistów .NET, oferując podejście zmieniające zasady gry. W tym artykule wyjaśnię, czym jest Blazor, dlaczego wiele osób nazywa go game changerem, oraz pokażemy proste przykłady jego działania [...]
SOLID to zestaw pięciu zasad projektowania obiektowego, które pomagają tworzyć kod bardziej zrozumiały, elastyczny i łatwy w utrzymaniu. Zasady te zostały spopularyzowane przez Roberta C. Martina (znanego jako Uncle Bob) i dziś stanowią fundament nowoczesnych praktyk programistycznych. W skrócie chodzi o to, by kod był modułowy, łatwy do rozszerzania oraz odporny na zmiany – dzięki czemu jest mniej podatny na błędy i łatwiejszy w [...]
LINQ (Language Integrated Query) to potężne narzędzie dostępne w języku C#, które znacznie ułatwia operowanie na danych. Jednak, jak każde narzędzie, warto znać dobre praktyki, aby pisać czysty, czytelny i efektywny kod. W tym artykule przedstawię Ci najważniejsze praktyki związane z LINQ. 1. Unikaj skomplikowanych zapytań LINQ. Długie i złożone zapytania LINQ mogą być trudne do czytania i debugowania. Lepiej: Podziel je na mniejsze [...]
Siedem lat temu opublikowałem pierwszy wpis na blogu ModestProgrammer, nie przypuszczając, dokąd zaprowadzi mnie ta przygoda. Zaczynałem od dzielenia się wiedzą i pasją do programowania, a z czasem blog przerodził się w coś znacznie większego. Widząc, jak moje artykuły pomagają innym, postanowiłem pójść o krok dalej – tak narodziły się pierwsze szkolenia online. Dziś, po 7 latach, z dumą patrzę na społeczność, którą zbudowałem: pomogłem [...]
Pisanie wydajnego kodu to umiejętność, która wyróżnia świetnych programistów. W tym artykule przedstawię Ci 10 konkretnych wskazówek, które pozwolą Ci pisać szybszy i bardziej efektywny kod w C#. 1. Używaj typów wartościowych zamiast referencyjnych, gdzie to możliwe. Typy wartościowe (struct, enum) są szybsze niż typy referencyjne (class), ponieważ nie powodują dodatkowego obciążenia związanego z zarządzaniem pamięcią [...]