.NET Core boilerplate, czyli mój projekt wzorcowy

Boilerplate to kawałek kodu, który w szybki sposób pomaga wystartować pisanie kodu. Pewnego rodzaju szablon. Zamiast startować z pustym projektem i dodawać za każdym razem od nowa te same cegiełki, możemy posłużyć się boilerplatem, który te cegiełki już zawiera.

Ostatnimi czasy kilka razy tworzyłem od początku aplikację w .NET Core, a w ramach tej aplikacji odpowiedni zestaw projektów oraz komponentów. Za każdym razem schemat postępowania był bardzo podobny – w jednym projekcie API, w kolejnym projekcie warstwa dostępu do danych oraz kawałek biznesu, następnie projekty z testami. Typ projektu determinował załączone NuGetowe paczki, konfigurację oraz klasy bazowe, które po wielokroć były identyczne. Na koniec “strażnicy” jakości kodu, oni również identyczni w każdej z nowopowstałych aplikacji. Schemat się powtarzał.
Continue reading

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