Dzielenie się wiedzą w zespołach programistycznych jest bardzo ważną sprawą. Nie wszystko co wiesz na temat projektu jest znane pozostałym członkom zespołu. Działa to także w drugą stronę – nie zawsze wszystko wiesz, a i też nie wszystkie zakamarki aplikacji musiałeś prześledzić. Budowanie silosu wiedzy, dotyczącego czy to aspektów biznesowych czy też technicznych nie wpływa korzystnie na utrzymanie projektu. Wyobraź sobie dłuższą nieobecność osoby odpowiadającej za funkcjonalność X, której nikt poza ni...
Sztuka programowania 152 dni, 4 godziny, 51 minut temu 83 źrodło rozwiń
Polityka to Building Block z DDD, który pozwala otwierać model na rozbudowę w tych miejscach, w których biznes może tego faktycznie potrzebować. Pojedyncze Polityki zwykle są stosunkowo proste, ich kompozycja może jednak modelować bardzo złożone wymagania biznesowe. Jak zaimplementować je w C#, żeby maksymalnie zwiększy czytelność?
Sztuka programowania 154 dni, 4 godziny temu 226 źrodło rozwiń
Pierwsze przymiarki do C# w ersji ósmej. Wyamgania i kilka najfajniejszych moim zdaniem zmian.
Sztuka programowania 156 dni, 4 godziny, 51 minut temu 251 źrodło rozwiń
Ostatnimi czasy coraz bardziej popularne są tak zwane bootcampy programistyczne. Są to szkolenia, które w szerokim zakresie obiecują nauczenie kursanta sztuki kodowania w określonym języku. Najczęściej trwają one kilka tygodni lub miesięcy i mogą odbywać się zarówno w weekendy, ale także w przeciągu tygodnia. Ilość wiedzy jaką przekazują bootcampy jest naprawdę spora, ale z drugiej strony nie są to tanie kursy. Ceny wachą się od 2-3 tysięcy złotych do nawet 15 tysięcy i więcej za najbardziej obszerne i o...
Sztuka programowania 160 dni, 4 godziny, 48 minut temu 117 źrodło rozwiń
Over a year ago I wrote a blog post about designing exceptions. I found this article very useful by myself and I used it as a reference a few times during code review. However, it’s almost impossible to expect that, after reading the recommended resource, anybody would start to apply described rules immediately and remember about them all the time.
Sztuka programowania 163 dni, 4 godziny, 22 minuty temu 84 źrodło rozwiń
How to handle Domain Events in complicated cases.
Sztuka programowania 175 dni, 4 godziny, 21 minut temu 130 źrodło rozwiń
Przemysław Walkowski Zapraszam na recenzję.Szybka recenzja Książka jest słaba. Ma charakter bardzo długiego 500 stronicowego postu na blogu opisującego jak stworzyć aplikację od zera z użyciem ASP.NET Cora 2 i Angulara 5. Tak jak to jest z postami na blogach tego typu, książka część rzeczy wyjaśnia, co się dzieje w kodzie a bardzo trudne rzeczy pomija lub w najlepszym razie daje długie, ciężko kopiujące się linki do stro...
Sztuka programowania 180 dni, 4 godziny, 49 minut temu 161 źrodło rozwiń
Value Object to bardzo użyteczny Building Block z DDD. Jego użycie znacznie zwiększa ekspresywność kodu i redukuje ilość defensywnej logiki. Jak składnia C# wpiera implementację Value Objectów? Których konstrukcji językowych używać, żeby maksymalnie zwiększyć czytelność? Na szczęście C# ma w tym obszarze sporo do zaproponowania, więc kod może być naprawdę elegancki.
Sztuka programowania 180 dni, 4 godziny, 49 minut temu 261 źrodło rozwiń
W ubiegłym roku pisałem o bezpiecznym null-checku w C# przy użyciu słowa kluczowego is, który według mnie powinien być stosowany wszędzie gdzie jest to możliwe. Dziś dla odmiany konstrukcja, która jest bardziej ciekawostką językową niż czymś (co ja osobiście) chciałbym znaleźć w kodzie. Problemem jest przede wszystkim ograniczona funkcjonalność, ale także czytelność i interpretacja konstrukcji szczegol...
Sztuka programowania 184 dni, 4 godziny, 59 minut temu 256 źrodło rozwiń
Async-await to nie tylko rewolucja jeśli chodzi o IO czy wykonanie długich operacji. To także niesamowite możliwości jeśli chodzi o kontrolę przepływu w Twoim kodzie. Jak to zrobić? Zapraszam do artykułu
Sztuka programowania 184 dni, 4 godziny, 59 minut temu 233 źrodło rozwiń
W DDD najważniejsze jest oczywiście poznanie naszej domeny, zbudowanie Ubiquitous Language i Modelu wiernie odzwierciedlającego biznes. Na koniec dnia trzeba jednak ubrać to w kod. Ten projekt jest ilustracją różnych podejść do implementacji wzorców znanych z DDD i nie tylko.
Sztuka programowania 187 dni, 4 godziny, 57 minut temu 190 źrodło rozwiń
Today I will write about the way variance influences type checking in C#. Yes, the fact that one type can be passed to a generic method that requires another type, depends on these 2 small keywords we write before ‘T’ (or whatever 😉) in interface header.
Sztuka programowania 190 dni, 5 godzin, 16 minut temu 89 źrodło rozwiń
Have you ever seen these mysterious ‘in’ and ‘out’ keywords in generic interfaces’ definitions? If so, you’ve probably already checked what it means, but if not… You better read this and the next post. So today we will talk about the basics of variance in our own generic interfaces.
Sztuka programowania 196 dni, 5 godzin, 7 minut temu 116 źrodło rozwiń
Kolejny post z serii o Bounded Contextach - przykład w jaki sposób narzędzia BI potrafią zaburzać pracę kontekstów i jak sobie z nimi radzić. A także nieco o socjotechnicznych aspektach BC 😊
Sztuka programowania 197 dni, 2 godziny, 24 minuty temu 96 źrodło rozwiń
C# 8.0 został niedawno opublikowany, jednak w dzisiejszym poście chcę napisać o funkcjonalności z C# 2.0. Wtedy to właśnie firma Microsoft wprowadziła typy generyczne. Każdy wie, każdy używa, ale cz próbowałeś kiedykolwiek napisać coś takiego...
Sztuka programowania 201 dni, 4 godziny, 34 minuty temu 419 źrodło rozwiń
Jako programista .NET bardzo cieszę się z tego, że Microsoft obok rozwoju całej platformy .NET dodaje również nowe rzeczy do samego języka C#. Wszystko po to, aby nam, programistom, pracowało się jeszcze łatwiej i efektywniej – choć nie zawsze wprowadzone mechanizmy wydają się fajne i się je wykorzystuje. Przykładowo pattern matching dodany do switch w C# 7 (jeśli nie wiesz, co to, to w dalszej części wpisu pokażę, czym to jest) jakoś nie przypadł mi do gustu ...
Sztuka programowania 202 dni, 4 godziny, 55 minut temu 401 źrodło rozwiń
W tym tygodniu było trochę problemów z kodowaniem(Angular 7, ASP .NET Core) i trochę nauki z narzędziami(KeePass)Hosting bez obsługi DELETE
Sztuka programowania 212 dni, 4 godziny, 44 minuty temu 151 źrodło rozwiń
Projekty i namespace’y to niedoceniane elementy, które mogą znacząco poprawić czytelność naszego kodu. Warto stosować je w sposób przemyślany, a nie „jakkolwiek, bo to przecież nieistotne”. Kod czyta się co najmniej 10 razy częściej, niż się go modyfikuje. Warto więc zainwestować w jego czytelność i wymusić na poziomie kompilacji tak wiele sprawdzeń jak to tylko możliwe.
Sztuka programowania 215 dni, 4 godziny, 43 minuty temu 272 źrodło rozwiń
W jaki sposób prezentować błędy aplikacji w środowisku produkcyjnym? W jaki sposób podejść do komunikowania nt. błędów aplikacji oraz co robić z nimi dalej?
Sztuka programowania 215 dni, 4 godziny, 43 minuty temu 106 źrodło rozwiń
AsNoTracking()is a powerful method from DbExtensions class. And for sure – the method you should know and use 😉.Why should I use it? In short – when we call AsNoTracking(), less data is cached and tracked (we will talk about it later). And of course, the more records we retrieve from the database, the more RAM we spare.
Sztuka programowania 218 dni, 4 godziny, 54 minuty temu 163 źrodło rozwiń