Tag: c#

Czy warto korzystać z float zamiast double (oszczędność pamięci)

TLDR: Nie, nie warto. Wszędzie double Wszędzie gdzie potrzebna jest wartość zmienno-przecinkowa używam double, ponieważ: nie chce mi się rozkminiać, które wartości mogą być mniej dokładne (idąć dalej, co to znaczy mniej dokładne i kto o tym decyduje) – szkoda czasu. gdyby system miał…

Dzielenie z resztą bez rzutowania na float

Aby dzielenie odbyło się z resztą operacja musi się odbyć na typach double a nie na int, czyli żeby wynik nie był zaokrąglony do inta. W praktyce dzielenie na intach: Kiedyś rzutowałem w ten sposób: A od dziś dzięki Grzesiowi będę zmieniał drugą liczbę…

Zalogowanie ustawień podczas startu applikacji

Zawsze przychodzi ten moment gdy trzeba rozwiązać buga na produkcji i jedyne co mamy to logi aplikacji. Okazuje się oczywiście, że nie ma wszystkich informacji w tych logach. Nie ma nawet całkiem podstawowych informacji. Gdy nic nie widzisz Spotkałem się z sytuacją gdzie był…

Static – dobry, zły i brzydki

Prywatne pola static – są bardzo NIE OK. Metody static – są OK. I o ile jest generalnie zgoda, że nie powinno się używać static w polach to chciałem pokazać, że metody będące statyczne są dobre. Czy powinny być statyczne to zależy od kontekstu….

TypeLITE: generator C# => TypeScript

W projekcie Webowym z bogatą logiką FrontEndową zawsze w pewnym momencie stajemy przed problemem synchronizacji klas, które mamy w C# z tymi po stronie FE. Jednym z ułatwień jest korzystanie z TypeScript, który udostępnia silne typowanie po stronie FE. Ciągle jednak może być tak,…

AppDomain przydaje się gdy coś się gryzie z cudzym kodem

Duży system, kilka technologii. W tym coś napisanego w Javie. Okazało się, że jedna z klas Javy ma nazwę XmlSerializer. I właśnie ta klasa sprawia, że dziwnymi wyjątkami rzuca .NETowy XmlSerializer. Inna technologia, inne namespace’y – istna magia 🙂 Okazało się jeszcze, że gdy…

C#, Linq – Wybieranie najlepszego z kolekcji.

Jest kolekcja obiektów i należy wybrać ten, który ma coś najlepszego. W tym przypadku wybieramy sałatę, którą najbardziej się najemy. Kod zazwyczaj wygląda tak: Dzisiaj zauważyłem, że można zrobić to trochę mniej optymalnie, ale jednak kod się uprości. Będziemy tutaj musieli przebiec po pętli…

xUnit – nowy lepszy framework dla Unit Testów

Po co mi jakiś inny framework do testowania? Wszystko co mam, wystarcza mi – ktoś może powiedzieć. Gdybym miał kogoś przekonać do xUnit to odpowiednim powiedzeniem byłoby Lepsze jest wrogiem dobrego. NUnit ma wady NUnit rozpoczął żywot ponad 10 lat temu (wczesne 2002). .NET…

Wielokrotne zabezpieczanie się przed nullem

Powiedzmy, że potrzebujemy wyciągnąć PostCode użytkownika (a po drodze mamy jeszcze Address): Nie mamy pewności czy person nie jest nullem, a następnie czy person.Address nie jest nullem, a następnie person.Address.PostCode … . Aby się zabezpieczyć przed NullReferenceException musimy napisać trochę dodatkowego kodu, jak np:…

Single Exit Point

Najprościej definiując problem: Czy mamy tylko jeden return z metody, czy też mamy ich kilka w różnych miejscach. Mówię też o metodach, które nie zwracają wartości. Metodę void też można skończyć wcześniej: Najpierw usłyszałem, że to dobre podejście Pamiętam z podstaw programowania w jakimś…

DateTimeOffset zamiast DateTime

W poprzednim wpisie Czas UTC a DateTime.Kind byłem zbyt mało stanowczy lub nie wyczerpałem tematu 😉 Maciek w komentarzu podzielił się linkiem i skomentował krótko – DateTime.Now praktycznie nigdy nie ma sensu Autor podlikowanego posta (The case against DateTime.Now) proponuje aby DateTime.Now i DateTimeKind.Local…

Czas UTC a DateTime.Kind

Ostatnio pierwszy raz w życiu miałem okazję ustawiać nagłówki HTTP odnośnie cachowania. Pogłębiłem trochę temat i okazało się, że trzeba myśleć nie w kategoriach czasu lokalnego, tylko czasu uniwersalnego. Na nasze: zamiast DateTime.Now trzeba używać DateTime.UtcNow. Wstęp: Przechowujesz datę i czas? Może warto w…