This post shows how Redis can be used to solve the problem of SSE or WebSockets broadcasting for ASP.NET Core applications behind load balancer.
Strona głównaUżytkownik
Paweł Łukasik | użytkownik
Kilka już lat temu pomyślałem sobie o tym, że dobrze byłoby się dokształcać w czasie wolnym. Oprócz doświadczenia w kodzie chciałem poznać dobre praktyki, zasady które pozwolą mi być lepszym programistą. Szukałem wtedy jakie książki powinien przeczytać każdy programista. Były tam pozycje takie jak Clean Code, Clean Coder, czy Head First Design Patterns. Różne źródła podawały różne pozycje. Oprócz jednej… Pragmatyczny programista Od czeladnika do mistrza. Ta książka była wszędzie.
Sztuka programowania 2638 dni, 9 godzin temu 199 źrodło rozwiń
Since I started using SpecFlow acceptance tests, I think that they are simply great. If I had to select whether to write only unit tests or only acceptance tests, I would select the latter. Nonetheless, there is one important problem with SpecFlow...
Sztuka programowania 2638 dni, 9 godzin temu 130 źrodło rozwiń
Cześć. Dużo się ostatnio naoglądałem i naczytałem o DDD i architekturze port-adapter i tak zacząłem rozmyślać jak to osiągnąć, choćby w kontekście tooli, które piszę do swojego silnika. Z tego co zauważyłem, to w projektach z którymi przyszło mi pracować, większość klas jest publiczna. Jest to zrozumiałe, chcemy mieć testy lub nie mamy testów, ale wszyscy piszą public, więc co to za problem. No niestety problem jest, wynika on z tego, że udostę...
Sztuka programowania 2639 dni, 8 godzin, 21 minut temu 181 źrodło rozwiń
O kod trzeba dbać – z tym raczej wszyscy się zgodzimy. Wysoka jakość kodu ma nam pomóc między innymi w rozwoju i utrzymaniu projektów. Oczywiście wspomniana wysoka jakość kodu nie bierze się z niczego. Jest to efekt codziennej pracy i dbania o każdy szczegół. Na rynku istnieją narzędzia, które umożliwiają monitorowanie jakości kodu na bieżąco. Jeżeli nie chcesz wpaść w dług technologiczny na pewno warto się z nimi zapoznać!
Docker, konteneryzacja aplikacji, mikroserwisy to nie jest tylko pozamykanie jakiś małych części aplikacji w oddzielne kontenery i zdeploy-owanie ich na jakaś chmurę w celu jej uruchomienia. Sam docker to dużo bardziej skomplikowane narzędzie niż mogłoby się wydawać. Za jego pomocą możemy tworzyć całe ekosystemy zawierające wirtualne sieci, usługi typu service discovery a nawet (od niedawna) za pomocą orchiestrator-a, skalować naszą aplikację. W dzisiejszym poście chciałbym poświęcić kilka słów wirtualny...
My few thoughts about the last edition of DevConf event.
Do You ever wanted to run C# code in a scripty inline way to check if code will execute the way you want? This could be especially useful when you don’t have powerful visual studio with repl(interactive) and You are writing C# in something lightweight like vs code. I decided to write this post because installing scriptcs is cumbersom...
Mój poprzedni post dotyczył uwierzytelniania za pomocą Json Web Token w ASP.Net Core 1.1, jednak niedawno wyszedł .NET Core 2.0 i sposób użycia JWT jest już troszkę inny. Zanim przejdę do opisania tych zmian, najpierw parę słów o .NET Core 2.0. Przede wszystkim nowy .NET Core jest dużo szybszy od swojego poprzednika, teraz jest w stanie obsłużyć aż 20 tysięcy requestów na minutę. Olbrzymim plusem jest również zwiększona ilość dostępnych paczek dostępnych na nuget.org. W nowsz...
This is a presentation how to introduce CQRS pattern to an existing application, step by step, without breaking changes and holding up the development.
Sztuka programowania 2644 dni, 8 godzin, 20 minut temu 257 źrodło rozwiń
The second part of developing node.js apps using Typescript. In this video, I’d like to show you how to connect to MongoDB database from node.js. You will learn how to: add MongoDB to your node.js project and connect to it do basic operations on MongoDB’s collections like insert and querying use Robomongo in order to browse data stored in MongoDB database.
Jakiś czas temu miałem rozmowę z jednym z czytelników bloga na temat jego problemów w zarządzaniu projektem. Stwierdził, że ma drobne problemy w zarządzaniu projektami takie jak przedłużające się zadania etc – jako lek na zbiór mikro problemów chciał użyć Scrum. Skłoniło mnie to do refleksji, którą chcę się z wami podzielić.Teoria ograniczeń Na początek trochę teorii, która zmieniła moje podejście do rozw...
Od pierwszego dnia istnienia bloga PoznajProgramowanie.pl stawialiśmy na budowanie społeczności i kontakt z Wami – naszymi czytelnikami. W ostatnich kilku miesiącach grono osób które śledzą nas nie tylko na blogu, ale też na Facebooku czy Twitterze znacząco się powiększyło. Doszliśmy więc do wniosku, że to doskonały moment na wcielenie w życie pomysłu który już od dawna chodził nam po głowach. Zapraszamy was do miejsca, w którym swobodnie pogadamy o programowaniu.
Cześć. Dziś będzie trochę o narzędziach pracy. Jak wiadomo przynajmniej do niedawana, jako .NET developerzy mieliśmy jedno IDE, czyli Visual Studio ewentualnie jak ktoś chciał mógł używać MonoDevelop. Obecnie po ostatnim otwarciu się Microsoftu na świat Open Source pojawiało się masę edytorów wspierających C# i IntelliSense za pomocą OmniSharp. Dodatkowo kawałek .NET'owego tortu chce uszczknąć JetBrains za pomocą swojego IDE Rider. Jak widać w ...
Jak wyobrażasz sobie programistę który odnosi sukcesy? Czy to pasjonat który lubi to co robi, czy profesjonalista skupiony na wyniku swojej pracy? A może jedno i drugie? Dzisiaj o tym, jak pasja i profesjonalizm mogą podświadomie wpływać na nasze działania.
W ostatnim wpisie przybliżyłem zestaw dobrych praktyk w pisaniu unit testów. Dzisiaj będę kontynuować ten temat z trochę innej perspektywy i opowiem o antywzorcach. Dzięki charakterystycznym nazwom, piętnującym konkretne złe praktyki, antywzorce zostają w pamięci i mamy je przed oczami pisząc podejrzany kod. Podejście do testów Pierwsza grupa wzorców nie wiąże się z pisaniem konkretnych testów, tylko raczej z nastawieniem, jakie nam towarzyszy podczas pisania i wynikającymi z tego zachowaniami.Obywatel...
Sztuka programowania 2648 dni, 8 godzin, 44 minuty temu 293 źrodło rozwiń
Dawno już nie było wpisu o Gitlab-ie. Jeszcze dawniej nie jadłem sałatki, acz nie przesadzajmy ze skrajnościami. Zafascynowany ostatnio możliwościami jakie daje .NET core chciałbym wam krótko przedstawić sposób na wykorzystanie Gitlab CI w aplikacjach opartych tę technologię. W tym wpisie poruszę wykorzystanie:Gitlab CI Runnera do uruchamiania procesu lokalnieDocker-a i Gitlab CI do budowania obrazu na każdym commit-cieGitlab CI do uruchamiania testów Nie zaskoczę informując, że należy rozpocząć od wyg...
Ostatnio jednym z zadań, którego postanowiłem się podjąć, było wprowadzenie do projektu prostego rodzaju Continuous Integration oraz Delivery. Do wymagań należało wprowadzenie kilku środowisk, każde miało posiadać inne ustawienia, a co najważniejsze możliwość deploy’u on demand, czyli na kliknięcie przycisku, bez żadnego ręcznego kopiowania. Po 2 dniach ciężkiej pracy i czarowania z pomocą PowerShell’a udało się, wszystko zaczęło działać jak powinno. Powiodło się przy pomocy TeamCity ora...
Posted on by krystiankolad W dzisiejszym poście przedstawię czym są klasy abstrakcyjne oraz interfejsy. Post ten jest swego rodzaju pilotażowym postem w moim nowym cyklu “Od zera do .Net Juniora”. Będę w nim opisywał oraz pokazywał zagadnienia, z którymi powinna być zaznajomiona osoba starająca się o swoją pierwszą pracę jako Junior .Net Developer. Mam nadzieję że cykl się przyjmie, jeśli chcecie poczytać o jakiś zagadnieniach piszcie, z chęcią o nich napiszę, jeśli je znam, lub się ich nauczę, a potem ...
Sztuka programowania 2649 dni, 7 godzin, 44 minuty temu 114 źrodło rozwiń
A few days ago, I watched an excellent talk by Erik Meijer called „The hacker way„. In a nutshell, he presented an opposite approach to Agile called Hacker Way which is successfully used by Facebook. The idea is very simple – continuous improvement and iteration. Instead of hours of planning and discussing whether something is possible to implement, just try to prototype this because it will probably take less time than plenty different meetings. And what if you’ll fa...