Dzisiaj, bez oficjalnej definicji. Jedynie wspomnę o tym, o czym – w kontekście Interface Segregation Principle – należy wspomnieć. Zasadniczo ISP mówi o „rozczłonkowaniu” dużych, wielozadaniowych kontraktów i interfejsów na mniejsze, posiadające jedną konkretną odpowiedzialność. Dzięki czemu, każdy element który konsumuje taki interfejs, ma dostęp tylko do określonej funkcjonalnośći. Intencją ISP jest utrzymanie systemu luźnych powiązań między obiektami, ułatwienie konserwacji systemu, testowania, czy ...
Sztuka programowania 1268 dni, 8 godzin, 36 minut temu 137 źrodło rozwiń
Sztuka programowania 1269 dni, 8 godzin, 16 minut temu 152 źrodło rozwiń
Operacje na zbiorach matematycznie i Linq Pisząc o Joinach chciałam dodać teorię zbiorów do całości obrazu. Jednak okazało się, że patrzyłam na to troszkę źle. Relacje pokazywane na rysunkach zbiorów nie odnoszą się do samych JOIN'ów, a jedynie do elementu/zmiennej/zbioru zmiennych które łączą dwie kolekcje. Użyjemy tego samego przykładu co poprzednio. Teoria zbiorów ma zastasowanie tylko do TypeId ponieważ to był zawsze element łączący w Joinach. Jeśli jednak porzucimy myślenie sqlami ...
Sztuka programowania 1271 dni, 6 godzin, 42 minuty temu 149 źrodło rozwiń
Feature Toggle (Feature Switch, Feature Flag) to technika umożliwiająca modyfikowanie zachowania systemu w środowisku testowym lub produkcyjnym. W powyższym wpisie w ramach koncepcji feature toggles dzielę na dwie kategorie release toggles i bussines toggles.
Sztuka programowania 1274 dni, 8 godzin, 10 minut temu 222 źrodło rozwiń
REST API Data validation using FluentValidation and Pipeline Pattern. Implementing Problem Details standard.
Sztuka programowania 1274 dni, 8 godzin, 10 minut temu 183 źrodło rozwiń
Sztuka programowania 1275 dni, 8 godzin, 7 minut temu 177 źrodło rozwiń
In this article we will design internal architecture of non-trivial microservice that is responsible for both managing its data state and exposing it to the external world. Basically our microservice will be responsible for creation and various modifications of its data and also will expose API that will allow other services and applications to query for this data.
Sztuka programowania 1275 dni, 8 godzin, 7 minut temu 228 źrodło rozwiń
In this article we are going to focus on service discovery, which is one of the fundamental concepts of microservice based architecture. Service discovery is a mechanism that allows services to find each others network location. There are many possible implementations of this pattern, but in this article we will focus on implementation that consist of Service Registry component and Service Registry Clients.
Sztuka programowania 1275 dni, 8 godzin, 7 minut temu 238 źrodło rozwiń
Dziś krótki i nieplanowany wpis z cyklu „ku przestrodze”, a będzie o… polu statycznym, które skutecznie zmieniło moje plany dotyczące ubiegłego wieczoru (ok 2h debugowania). Nie ma jednak tego złego, prawda? Ja mam nauczkę, a Ty drogi czytelniku być może też wyniesiesz z tego coś dobrego. Zacznijmy od tego, aby odpowiedzieć sobie po co i kiedy stosować słowo kluczowe static? Myślę, że każdy, czy to w szkole, na uczelni, na kursie czy w p...
Sztuka programowania 1278 dni, 8 godzin, 32 minuty temu 257 źrodło rozwiń
Tym razem jednak skupiliśmy się na definicji kilku dobrych praktyk wspomagających tworzenie testów jednostkowych. Takich testów, które dobrze weryfikują implementacje, zapewniają jakość oraz łatwo jest je utrzymywać. Jakie dobre praktyki warto stosować podczas pisania testów jednostkowych? Wśród popularnych aspektów jak zasady FIRST czy grupowanie implementacji testu w trzy grupy – Given, When, Then pojawiły się także inne warte uwagi techniki. Jesteś ciekawy jakie? To serdecznie zapraszam Cię do odsłu...
Sztuka programowania 1278 dni, 8 godzin, 32 minuty temu 108 źrodło rozwiń
Want to see an example of implementing IEquatable and usage of protobuf? Jump in! :)
Sztuka programowania 1278 dni, 8 godzin, 32 minuty temu 46 źrodło rozwiń
Luźne przemyślenie o sagach - na podstawie tweetu Udiego Dahana i prezentacji Adama Ralpha.
Sztuka programowania 1281 dni, 7 godzin, 7 minut temu 183 źrodło rozwiń
DDD - Domain Model Encapsulation and Persistence Ignorance with Entity Framework 2.2
Sztuka programowania 1282 dni, 7 godzin, 2 minuty temu 158 źrodło rozwiń
C# 8.0 brings us another nice feature called slicing. In order to make it possible, two new concepts are introduced: Indexes and Ranges. Let’s see how this tiny feature is supposed to make our life easier 🙂
Sztuka programowania 1282 dni, 7 godzin, 2 minuty temu 108 źrodło rozwiń
O dwóch sposobach tworzenia oprogramowania na przykładzie programu na antyczny komputer PDP-8 opowiada Wujek Bob Martin.
Sztuka programowania 1284 dni, 6 godzin, 35 minut temu 129 źrodło rozwiń
Krótko i na temat, czyli jak uruchomić polecenie powłoki systemowej bash w .NET Core na Ubuntu
Sztuka programowania 1284 dni, 6 godzin, 35 minut temu 60 źrodło rozwiń
Używając FluentAssertion musimy zwracać uwagę w którym miejscu użyjemy Should(). W zależności od położenia Should() błędy zwracane z asercji mogą być lepszej lub gorszej jakości.
Sztuka programowania 1285 dni, 6 godzin, 48 minut temu 124 źrodło rozwiń
Dzięki artykułowi dowiesz się wszystkiego co trzeba wiedzieć o poziomach testów w projekcie. Jakie mamy poziomy oraz jakie cele spełniają.
Sztuka programowania 1289 dni, 6 godzin, 31 minut temu 160 źrodło rozwiń
If you're interested in C# 8.0 new features, come and read about nullable reference types :) We'll continue exploring next interesting features of C#8 in the weeks to come.
Sztuka programowania 1289 dni, 6 godzin, 31 minut temu 107 źrodło rozwiń
Często pracując z Typescriptem przychodzi moment, w którym należy sobie zadać pytanie – chcę użyć null czy undefined? Czasami może nam się wydawać, że jest to obojętne – ale jednak różnica jest.
Sztuka programowania 1291 dni, 7 godzin, 53 minuty temu 97 źrodło rozwiń