About two months ago I worked on the microservice for my company’s new product. The whole thing was based on the CQRS pattern which is basically about splitting the application into reads (queries) and writes (commands). I came to the point when I wanted to validate a command object received from RabbitMQ. Without thinking, I started coding another if statements which after a while became my „domain logic”. I’m not going to present the example code because I’m ...
Strona głównaUżytkownik
paw3lx | użytkownik
Sztuka programowania 2555 dni, 21 godzin, 42 minuty temu 135 źrodło rozwiń
Tworząc aplikacje webowe, często zastanawiamy się, czy tworzony przez nas kod nie pogorszy czasów odpowiedzi całej aplikacji. W jaki sposób możemy kontrolować te czasy, tak by kontrola była jednym z elementów całego procesu CI w naszym projekcie. Jednocześnie zapewniając losowość danych, o które odputujemy sprawdzaną aplikację. Właśnie o tym jest ten artykuł, zapraszam do lektury :)
Sztuka programowania 2644 dni, 3 godziny, 10 minut temu 68 źrodło rozwiń
/ mkurpinski Ostatnio w projekcie tworzonym podczas praktyk spotkaliśmy się z wymaganiem, aby po trzech nieudanych próbach logowania pojawiała się reCaptcha, której poprawne wypełnienie umożliwia przeprowadzenie kolejnej próby. Po krótkim research’u na temat sposobu rozpoznawania użytkownika wybór padł na przypisywaniu do IP ilości niepoprawnych prób logowania. Z kilku możliwych sposobów przechowywania takiej informacji, postanowiliśmy wybrać in-memory caching. In-memory caching jest najprostszą we...
Do budowy Modelu Dziedziny (ang. Domain Model), wykorzystujemy kilka bazowych składowych powiązanych ze sobą relacjami.Asocjacje (ang. associations) Asocjacja to swoista abstrakcja stanowiąca o związku pomiędzy bytami wchodzącymi w skład Modelu Dziedziny (ang. Domain Model), jaką twórca uznał za odpowiednią. O czym należy pamiętać tworząc asocjacje:elim...
Architektura 2644 dni, 3 godziny, 10 minut temu 235 źrodło rozwiń
Problem which needs to be fixed: Project has two main directories with a lot files. Some of files are almost the same. Some changes to those files should be transfered to other main directory.
Różnice między klasą a strukturą w C#, szczególnie na początku przygody z programowaniem, mogą wydawać się niewielkie i nieistotne, jednak pytania o nie często pojawiają się na rozmowach kwalifikacyjnych dla junior developerów, a ich znajomość jest dodatkowo kluczowa ze względów wydajnościowych, Jeżeli programowałeś w C++ pamiętasz zapewne, że różnica między klasą a strukturą polega tam jedynie na tym, że class ma pola domyślnie prywatne, a struct publiczne, natomiast w pamięci reprezentowane są w taki ...
Sztuka programowania 2642 dni, 1 godzinę, 51 minut temu 234 źrodło rozwiń
Ostatnie dwa posty wyszły nieco dłuższe niż zakładałem, więc dzisiaj będzie krócej. Stworzymy Azure Web App, na który następnie wrzucimy kod naszej aplikacji ASP.Net Core. Pominę część teoretyczną, ponieważ można ją znaleźć choćby tutaj i przejdę od razu to przykładu:Azure Web App Na potrzeby artykułu zakładam, że każdy posiada już konto na Azure oraz co najmniej subskrypcję Microsoft Imagine dla studentów, która pozwala na tworzenie Azure Web App. Aby utworzyć naszą aplikac...
This is the third article in the series of the last Microsoft releases and this time I will focus on Visual Studio update – labeled ‘15.3’. I am usually easily pleased with most of the Microsoft IDE features so forgive me all of my ‘ohhh’ but I really love all this changes 😉. No more ‘Add -> Existing Item’! ‘Drag & Drop’ will make the world a better place! You know the struggle when you want to add a file to your project and you have to first copy it (physically) to the appropriate location and the...
Kiedy uczyłem się programować, pisałem metodą code and fix. Czyli najpierw pisałem jakiś fragment kodu – mogła to być jedna funkcja, moduł albo nawet cały program. Następnie uruchamiałem go i ręcznie sprawdzałem czy działa, przechodziłem kod debuggerem sprawdzając wartości zmiennych i przepływ sterowania. Następnie poprawiałem znalezione błędy, dodawałem funkcjonalności i znowu sprawdzałem. Na pewno każdy programista zaczynał w ten sposób. W miarę jak moje umiejętności rosły i pisałem trudniejsze progra...
Sztuka programowania 2642 dni, 1 godzinę, 51 minut temu 198 źrodło rozwiń
Starting from .NET Core 2.0 coupling between Garbage Collector and the Execution Engine itself have been loosened. Prior to this version, the Garbage Collector code was pretty much tangled with the rest of the CoreCLR code. However, Local GC initiative in version 2.0 is already mature enough to start using it.
To kolejny wpis z serii #spowiedź, w którym opisuję błędy, które popełniłem podczas nauki zarządzania projektami – wszystko po to żebyście mogli uczyć się na moich błędach (zamiast na swoich). W tym wpisie poruszam kwestię zarządzania zespołem i przydzielania zadań do programistów. W poprzednim wpisie poruszałem kwestię nadgorliwości, w tym kolei na zarządzanie zespołem. Zarządzanie ludźmi uważam, za trudny temat.
Pora na już drugą cześć cyklu o projektowaniu bezpiecznych aplikacji ASP.NET Core. Dzisiaj opowiem o ataku XSS, czym jest i co zrobić żeby nasza witryna była na niego odporna. Czym jest XSS? Najkrócej mówiąc jest atakiem na webaplikacje, polegającym na wstrzyknięciu do przeglądarki złośliwego kodu, najczęściej javascript.
Daj się poznać 2017 2735 dni, 16 godzin, 49 minut temu 104 źrodło rozwiń
Każdy kto jest w branży IT jakiś czas na pewno dostaje zapytania na tzw „proste stronki/aplikacje”. Autor takiego zlecenia zapewnia o prostocie pomysłu i o tym, że da się ją zrealizować małym nakładem prac – programista wyrobi się w kilkadziesiąt minut, przecież jest zdolny 😉 Pewnie każdy z was miał co najmniej kilka tego rodzaju zapytań w swojej karierze.
Gdy zaczynałem przygodę z aplikacjami webowymi, nie sądziłem, że istnieje aż tyle zagrożeń, na które trzeba zwrócić uwagę. Współczesne frameworki dają same w sobie wiele zabezpieczeń i o niektóre rzeczy nie musimy się już troszczyć. Jestem jednak pewny, że bardzo ważna jest świadomość niebezpieczeństwa na jakie są wystawione nasze aplikacje, a co dalej idzie nasi klienci. Tutaj narodził się pomysł serii „Bezpieczna aplikacja ASP.NET Core”. W każdej z części chciałbym opisać zagrożenie oraz sposób w jaki...
Daj się poznać 2017 2749 dni, 55 minut temu 201 źrodło rozwiń
Większość pytań, które od was dostaję skupiają się na tym jak zacząć zarządzanie projektami – jaką pierwszą poznać metodologię, jakie przeczytać książki? W tym filmie odpowiadam na te pytania. Zapraszam do obejrzenia.
Kiedy programujemy w C#, w większości przypadków jesteśmy skazani na Visual Studio. Czy słyszał ktoś kiedy o alternatywie? Jakiś czas temu, całkiem przypadkiem, natrafiłem na Rider – nowe IDE dla .NET od JetBrains. Jest on wciąż w trakcie powstawania, jednak stwierdziłem, że warto sprawdzić czy jest na co czekać. Testowany przeze mnie build to: EAP build 20. Narzędzie jest multiplatformowe, więc testowałem na Windowsie i macOS...
Daj się poznać 2017 2765 dni, 20 godzin, 51 minut temu 229 źrodło rozwiń
Kolejnym krokiem rozwoju biblioteki StegoCore jest implementacja algorytmu ukrywania danych, który będzie odporny na kompresję JPEG. Aby lepiej zrozumieć zasadę jego działania, należy zacząć od przedstawienia samego formatu JPEG. Jak wygląda kodowanie i dekodowanie pliku graficznego w kompresji JPEG? W jaki sposób zmienić plik jpeg, aby umieścić w nim sekretne dane? Odpowiedzi na te inne pytania w poniższym poście.
Daj się poznać 2017 2777 dni, 2 godziny, 16 minut temu 42 źrodło rozwiń
Długo nosiłem się z wyborem biblioteki do edycji plików graficznych. Wymagania, które musi spełniać to: szybkość, dostępność na .NET Core dla Windows, Linux i macOS oraz bezpieczeństwo. Ostatecznie zdecydowałem się na ImageSharp. Aktualnie jest ona jeszcze w fazie alpha, ale bardzo szybko się rozwija i do tego posiada już funkcjonalności, które są mi potrzebne.
Daj się poznać 2017 2799 dni, 11 godzin, 42 minuty temu 79 źrodło rozwiń
Każda analiza projektowa powinna składać się również z dokładnie wykonanego etapu syntezy. Rozumienie i rozróżnianie pojęć analizy i syntezy jest istotne w tworzeniu lepszych jakościowo dokumentów analitycznych. Żebyś w pełni zrozumiał treść tego wpisu, niezbędne będzie zapoznanie się z dwoma kluczowymi pojęciami – analizy i syntezy. Potocznie mówiąc analiza jest rozkładaniem pro...
Do przechowywania sekretnych danych w .NET Core Microsoft zaimplementował specjalne narzędzie. Dzisiaj na szybko pokażę, jak ich używać.
Mobile development 2809 dni, 16 godzin, 4 minuty temu 191 źrodło rozwiń