Dyndające przecinki, czyli notacja przecinkowa

Oryginalnie Dangling Commas (lub comma-dangle) to reguła pozwalająca na pozostawienie przecinka przy ostatnim elemencie typu wyliczeniowego, tablicy, czy też obiektu (podczas inicjalizacji). W związku z tym kompilatory oraz lintery w dobrej wierze zezwalają na ten niepoprawny znak przy ostatnim elemencie umożliwiając nam:
Continue reading

ObjectHasher, czyli jak wyliczyć hash z obiektu

System nad którym obecnie pracuję wykonuje wiele zapytań do zewnętrznych systemów. Każde zapytanie generuje nie tylko opóźnienie w działaniu aplikacji, ale również dodatkowe koszty. Postanowiliśmy zaimplementować rodzaj cache’u po naszej stronie. Do tego celu potrzebowaliśmy obliczać hash z modelu który przychodził do systemu. Niniejsza notka pokazuje przykładową implementację komponentu do wyliczania hash’a z obiektu.
Continue reading

Git jest git: Rozwiązywanie konfliktów

Podczas pracy z systemem kontroli wersji czasem zdarza się, że nasz pull request ma konflikty. Konflikty powstają gdy ten sam plik został zmieniony w różny sposób w tym samym miejscu w obu scalanych ze sobą branchach. Wpis ten pokazuje jak ja radzę sobie z konfliktami w systemie Git.

TL;DR: Na końcu wpisu znajduje się skrócona instrukcja.
Continue reading

devWarsztaty: Electron

Wczoraj (tj. 28.10.2017) odbyło się kolejne spotkanie z cyklu devWarsztaty. Tym razem tematem warsztatów był Electron, framework pozwalający pisać aplikacje desktopowe na wiele platform (Windows, Linux, macOS) przy użyciu języka JavaScript. Prowadzącym był Łukasz Gąsior, kiedyś dotnet’owiec, teraz zapalony entuzjasta JavaScript.
Continue reading

LINQPad, czyli plac zabaw dla developera .NET

Z LINQPad korzystam niemalże codziennie. Wykonuje w nim dowolny kod języka C#. Zdarza się, że zastępuje mi Visual Studio. Wyparł całkowicie SQL Server Management Studio we wszystkich rodzajach zapytań SQL do bazy danych. LINQPad jest lekki i szybki (w odróżnieniu od VS i SSMS). Jeśli chcesz przekonać się jak bardzo wartościowe jest to narzędzie, to zapraszam do lektury.

English version here: link
Continue reading

Parallel debugging, czyli jak radzić sobie z wieloma wątkami

Ostatnio w projekcie zdarzyło się, że musiałem debugować skomplikowany proces wyliczania, który był zrównoleglony przy pomocy metody Parallel.ForEach(). Moja konfiguracja sprzętowa pozwoliła na uruchomienie kilku wątków naraz co sprawiło, że proces debugowania stał się dość uciążliwy. W różnych, bliżej nieokreślonych momentach, byłem przerzucany pomiędzy różnymi wątkami, a co za tym idzie pomiędzy różnymi kontekstami i miejscami w kodzie.
Continue reading