Trochę o wzorcu „pipes & filters”. Będzie dużo mięcha :).
Sztuka programowania 1891 dni, 7 godzin, 28 minut temu 148 źrodło rozwiń
MenuHomeAboutArchivesSubscribe Opinions, thoughts, solutions by Paweł Pindel on At the beginning, it is worth considering what asynchronous programming is and why it is better than synchronous. Asynchronous programming involves approaching the problem in a completely different way. The point is that the program code does not execute line by line, waiting each time for the end of the operation to move on. It allows us to speed up the program to a great extent, release the main t...
Sztuka programowania 1892 dni, 7 godzin, 13 minut temu 193 źrodło rozwiń
W 50-tym odcinku rozmawiamy na temat tego czym różnią się od siebie Junior, Middle oraz Senior. Co wymagane jest od osób na poszczególnych poziomach i szybciutko odpowiadamy na pytanie o to kiedy zostanę seniorem.
Sztuka programowania 1893 dni, 6 godzin, 46 minut temu 146 źrodło rozwiń
Reading time ~7 minutes This article is Part 4 in a 4-Part Series. Part 1 - Refactoring to Data Driven TestsPart 2 - How to get data for Data-Driven Tests?Part 3 - Tips, tricks, and good practices for Data-Driven Testing. Part 1.Part 4 - This Article This post is a continuation of a previous tips, tricks, and good practices for Data-Driven Testing entry. This one with more code. I will be converting this series into an ebook with additional source code and examples. If you want to get it, please su...
Sztuka programowania 1893 dni, 6 godzin, 46 minut temu 34 źrodło rozwiń
W testach bardzo często mamy do czynienia z powtarzaniem tego samego kodu. Tak samo ma się sprawa z testowaniem null-checków (zw. inaczej jako guard clauses) w konstruktorach. Jeśli chcemy napisać test dla takiego przypadku, to zazwyczaj jest on napisany jako osobna metoda. Jak możemy sobie uprościć życie? Z pomocą przychodzi biblioteka AutoFixture.Idioms. Aby móc skorzystać z funkcji do automatycznego testowania null-checków w konstruktorach, potrzebujemy zainstalować dwa nugety:AutoFixture.Idi...
Sztuka programowania 1894 dni, 6 godzin, 18 minut temu 89 źrodło rozwiń
W 49. odcinku poruszamy temat, o którym było ostatnio głośno. Mityczny 10x developer/engineer to temat który dzieli środowisko developerskie tak dobrze jak politycy Polaków. W odcinku przechodzimy przez wszystkie 11 punktów manifestu i omawiamy je zastanawiając się czy mają one sens czy nie.
Sztuka programowania 1899 dni, 5 godzin, 39 minut temu 159 źrodło rozwiń
Programista 10x to osoba, której wydajność jest dziesięciokrotnie większa od przeciętnego inżyniera oprogramowania. Niektórzy nie wierzą, że jest to możliwe, inni twierdzą, że sami są programistami 10, a nawet 100x. Czy programista 10x istnieje? Jak zostać programistą 10x?
Sztuka programowania 1901 dni, 5 godzin, 8 minut temu 213 źrodło rozwiń
Reading time ~7 minutes This article is Part 3 in a 3-Part Series. Part 1 - Refactoring to Data Driven TestsPart 2 - How to get data for Data-Driven Tests?Part 3 - This Article As promised here and here, this will be tips, tricks, and good practices for data-driven tests. If You want to know more about data-driven testing see my previousposts on this topic. Here we go. I will be converting this series into an ebook with additional source code and examples. If You want to get it please subscribe:G...
Sztuka programowania 1904 dni, 5 godzin, 47 minut temu 53 źrodło rozwiń
W jaki sposób mockować (za pomocą Moq) metody ze słowem kluczowym out? Przyjrzyjmy się bliżej problemowi…
Sztuka programowania 1905 dni, 6 godzin, 17 minut temu 85 źrodło rozwiń
Many people at the beginning of the project ask themselves - what architecture to choose? Would you not even think about it when starting your first serious project? I bet you would. In this post, I will try to answer this question from my perspective because I have always thought about it myself… until one day.
Sztuka programowania 1907 dni, 6 godzin, 25 minut temu 111 źrodło rozwiń
Reading time ~6 minutes This article is Part 2 in a 2-Part Series. Part 1 - Refactoring to Data Driven TestsPart 2 - This Article The previous post was meant to be an encouragement and a warmup to data-driven testing. This post describes why I love this way of testing. Understanding a simple fact about testing moved me from “Oh, I should write tests” to “I want it all! And I want it now!” and Data-Driven Testing. And the simple truth is: Anyone who is a bit interested in machine learning heard sta...
Sztuka programowania 1908 dni, 6 godzin, 29 minut temu 59 źrodło rozwiń
O tym, jak dodać analizatory do projektu, pisałam całkiem niedawno. Dzisiaj czas na opisanie, jak takie analizatory skonfigurować. Wystarczy jeden prosty plik ruleset.
Sztuka programowania 1908 dni, 6 godzin, 29 minut temu 50 źrodło rozwiń
Warsztaty hands-on z programowania RabbitMQ w C#. Pomoc dla wszystkich którzy zainstalowali serwer i teraz chcieliby szybko i sprawnie opanować wykorzystanie tego narzędzia w swoich projektach.
Sztuka programowania 1915 dni, 5 godzin, 35 minut temu 200 źrodło rozwiń
Reading time ~7 minutes I am not a big fan of writing tests. I like having them, but I find writing them to be boring. That said, retesting manually is even more annoying, so I write tests. The thought that there has to be a better way, never passed. I tried a few approaches. After some experimentation, I think I have the answer - DDT (Data Driven Testing) Before we dig into what Data Driven Tests are, let’s look at some standard, non-DDT tests.What we will be testing? There is a fragile line for cod...
Sztuka programowania 1915 dni, 5 godzin, 35 minut temu 41 źrodło rozwiń
I've decided to create a series of blog posts where I will present what I've recently learned about the traps related to the multithreading in C#. I will also show you my proposition of Roslyn analyzers that can possibly help to avoid those issues right at the stage of writing the code. This part is about choosing a suitable object for locking.
Sztuka programowania 1922 dni, 5 godzin, 16 minut temu 65 źrodło rozwiń
In this article we are going to show you how you can combine SignalR and RabbitMQ to build real time server-client communication. We will extend our insurance sales portal with chat service. This chat will let insurance agents communicate with each other. We also will use this chat service to send users information about certain business events like new product availability, successful sale or insurance product or tariff changes.
Sztuka programowania 1922 dni, 5 godzin, 16 minut temu 138 źrodło rozwiń
Reading time ~3 minutes I’ve seen multiple people struggling with trying to mock the ILogger calls. This post will hopefully save some people from wandering this path. Here it goes:Please stop trying to mock the ILogger methods from .net core. Here is why: Most ILogger methods that we use for logging are extension methods - static methods. While mocking them is possible using Prig, or Microsoft Fakes it is not easy or pleasant. Mocking a static method boils down to replacing the code at runtime using...
Sztuka programowania 1932 dni, 6 godzin, 26 minut temu 128 źrodło rozwiń
Generalized async return types — it is a new C#7 feature that allows using not only Task as a return type of async methods but also other types (classes or structures) that satisfy some specific requirements. At the same time, async/await is a way to call a set of "continuation" functions inside some context which is an essence of another design pattern — Monad. So,...
Sztuka programowania 1943 dni, 5 godzin, 46 minut temu 182 źrodło rozwiń
Nie da się pisać czystego kodu nie znając dobrze angielskiego. Dominacja technologiczna krajów anglosaskich sprawiła, że zarówno w komunikacji morskiej, jak i lotniczej językiem oficjalnym stał się angielski. To samo wydarzyło się z technologią informacyjną. Wszystkie omal języki programowania składają się z słów kluczowych wyrażonych w języku Shakespeare’a. Komendy, które wpisujemy w konsoli to również słowa angielskie. Chcemy tego, czy nie – językiem branży IT jest język angielski...
Sztuka programowania 1943 dni, 5 godzin, 46 minut temu 151 źrodło rozwiń
Wybór kierunków swojego programistycznego rozwoju nie jest łatwy. W gąszczu technologii, metodyk, bibliotek łatwo się zagubić i główkować co będzie dla nas lepsze. Wielokrotnie przechodziliśmy z Bartkiem przez dokładnie ten sam problem. Lepiej, będziemy do niego wracać co jakiś czas, ponieważ zawsze możemy usprawnić swoje działania, efektywniej wykonywać co dzienną pracę. Co nam pomogło w staniu się lepszym programistą? Podczas podcastu staraliśmy się odpowiedzieć na powyższe pytanie, definiując najważ...
Sztuka programowania 1953 dni, 6 godzin, 3 minuty temu 157 źrodło rozwiń