In the previous article, we started analyzing asynchronous programming in .NET world. There we made concerns about how this concept is somewhat misunderstood even though it has been around for more than six years, ie. since .NET 4.5. Using this programming style it is easier to write responsive applications that do asynchronous, non-blocking I/O operations. This is done by using async/await operators. However, this concept is often misused. In this article, we will go through s...
Sztuka programowania 936 dni, 21 godzin, 28 minut temu 114 źrodło rozwiń
Posted on by krystiankolad W trakcie pracy nad naszymi aplikacjami często musimy sprawdzić, czy na przykład dane wysłane do nas w formularzu lub do naszego api spełniają pewne kryteria. Kryteriami tymi mogą być długość numeru pesel, prawidłowy adres email oraz wiele, wiele więcej. Dziś pokażę, jak skonfigurować taką walidację przy użyciu biblioteki FluentValidation w ASP.Net Core Web Api. Zapraszam. Aby zainstalować bibliotekę w naszym projekcie używamy dwóch komend:dotnet add package FluentValidation ...
Sztuka programowania 936 dni, 21 godzin, 28 minut temu 51 źrodło rozwiń
We wpisie pokazuję przykład walidacji po stronie serwera z wykorzystaniem pakietu FluentValidation. Na początek pokazuję proste użycie pakietu, w kolejnych wpisach - refactoring i testy.
Sztuka programowania 937 dni, 21 godzin, 47 minut temu 56 źrodło rozwiń
Zdaję sobie sprawę, że temat dzisiejszego wpisu zdecydowanie nie wygląda „PRO” i wydawać by się mogło, że przeznaczony jest dla absolutnych laików programowania. Myślę jednak, że wielu programistów zaczynających swoją przygodę z mikroserwisami zadaje sobie w duchu pytanie, w jaki sposób ustrukturyzować wszystkie projekty i pliki, aby miało to ręce i nogi. Cóż… ja przynajmniej tak miałem i po kilku próbach + dyskusjach z innymi programistami wypracowałem własny „przepis”, który uwaga – dla mnie działa. Ni...
Sztuka programowania 937 dni, 21 godzin, 47 minut temu 199 źrodło rozwiń
Reducing memory allocations from 7.5GB to 32KB Contents Context of the problem Establishing a baseline Easy win 1 Easy win 2 Splits are never cool Lists are not always nice Pooling byte arrays Goodbye StringBuilder Skipping commas The war between classes and structs Goodbye StreamReader TLDR - give me a table
Sztuka programowania 937 dni, 21 godzin, 47 minut temu 45 źrodło rozwiń
Czy testy są potrzebne? Jaką wartość przynosi nam testowanie aplikacji? Jak testować oprogramowanie? W artykule m.in. o 7 zasadach testowania, które powinien znać programista w kontekście wykrywania błędów.
Sztuka programowania 938 dni, 9 godzin, 44 minuty temu 131 źrodło rozwiń
This is a usage guide for asynchronous programming in F# using the Async type. The content should be helpful to existing F# Async users or those approaching F# concurrency from another programming language, and is complementary to existing material such as Asynchronous Programming by Scott Wlaschin, Async in C# and F# by Tomas Petricek and Async Programming in F# on MSDN.Table of ContentsDefinition— th...
Sztuka programowania 942 dni, 22 godziny, 56 minut temu 26 źrodło rozwiń
Ostatnio opisywałam po co i jak piszemy przypadki testowe. Dzisiaj chciałabym odpowiedzieć na pytanie - co jest nam potrzebne aby przetestować aplikację. Natychmiast przychodzi nam do głowy, środowisko, odpowiednie narzędzia, dane testowe itd.. I na tym ostatnim dzisiaj chciałabym się skupić. Dane testowe są jednym z kluczowych elementów dobrze przeprowadzonego testu. Dlaczego tak uważam?
Sztuka programowania 942 dni, 22 godziny, 56 minut temu 39 źrodło rozwiń
Dziś w pracy mój kolega zwrócił uwagę na dość kuriozalny i wydawać by się mogło, banalny problem. Otóż posiadając wtyczkę OmniSharp (C#) w Visual Studio Code mamy dostęp do kilku snippetów ułatwiających nam pracę z kodem C#. Jednym z nich jest dobrze znane z Visual Studio generowanie konstruktora klasy. Jedyne co trzeba zrobić to w kodzie napisać ctor i nacisnąć tabulator. Wszystko super, jest jednak małe ALE. W Visual Studio taka kombinacja skutkuje wygenerowaniem semantycznie poprawnego konstruktora tj...
Sztuka programowania 942 dni, 22 godziny, 56 minut temu 45 źrodło rozwiń
O code review napisano już całkiem sporo. W internecie można znaleźć dokładne opisy jak powinny wyglądać, jakie dają efekty, czy ile kodu sprawdzać na raz. Dlatego nie będę dokładnie analizować tych aspektów. Zamiast tego krótko opiszę najważniejsze korzyści i kilka przydatnych technik na podstawie własnych doświadczeń. Z code review korzystałem już w wielu projektach i zawsze miało to pozytywny wpływ na jakość kodu. Moim zdaniem code review powinno być elementem każdego poważnego projektu. Jakie są n...
Sztuka programowania 944 dni, 16 godzin, 53 minuty temu 124 źrodło rozwiń
Umiejętność pisania czystego, przemyślanego, zrozumiałego dla innych kodu to jedna z podstawowych cech dobrego programisty. Warto jednak pamiętać o tym, że w niektórych sytuacjach trzymanie się najwyższych standardów kodowania nie powinno być dla nas priorytetem. Co więcej - za wiedzę o tym, kiedy odpuścić, możemy być uznawani za jeszcze lepszych programistów.
Sztuka programowania 946 dni, 21 godzin, 17 minut temu 101 źrodło rozwiń
Słuchajcie mnie wszyscy bo jakoby ja, ten co wiedzę niesie, powołanie poczułem i głosił będę. Jak mówi jedna ze świetnych zasadach testów jednostkowych, każda klasa i metoda powinna być testowana w całkowitej izolacji. W szczególności, co pamiętać trzeba, bez wywoływania oprogramowania zewnętrznego, jak na przykład baz danych. Żarty żartami, ale zasada jest w 100% poważna. No i nie powstała bez powodu. No dobra, ale jak mamy ją zastosować, kiedy w naszej aplikacji wykorzystujemy bibliotekę .NET Core Ide...
Sztuka programowania 950 dni, 13 godzin temu 73 źrodło rozwiń
Podział odpowiedzialności w zespołach często bywa bardzo jasno określony. Zdarzają się jednak sytuacje kiedy wymagania względem wykonywanej pracy nie mają za dużo wspólnego z faktyczną rolą projektową np. wtedy gdy do końca iteracji brakuje nam rąk do testowania... Zastanawiamy się, czemu programiści nie chcą testować?
Sztuka programowania 950 dni, 13 godzin temu 64 źrodło rozwiń
Egoless Programming czyli definicja 10 przykazań programowania bez ego. Przykazań które pomagają oddzielić nasze przywiązanie do kodu oraz wiarę w swoje nadzwyczajne umiejętności tworzenia najlepszego kodu w zespole, firmie czy cholera wie gdzie jeszcze.
Sztuka programowania 953 dni, 15 godzin, 23 minuty temu 64 źrodło rozwiń
Czasami async/await w lambda nie jest potrzebne
Sztuka programowania 953 dni, 15 godzin, 23 minuty temu 130 źrodło rozwiń
Budując systemy informatyczne za pomocą obiektowych języków oprogramowania wcześniej czy później natkniemy się na pojęcie „reużywalności” kodu . W najprostszych słowach – polega ono na nieumieszczaniu w kodzie źródłowym tworzonego rozwiązania wielu klas, metod lub komponentów implementujących identyczne funkcjonalności lub zadania (metoda DRY – Don’t Repeat Yourself) Niestety, źle rozumiane podejście DRY (które w z...
Sztuka programowania 956 dni, 16 godzin, 23 minuty temu 195 źrodło rozwiń
Zachęcam do zapoznania się z artykułem opisującym jak prosto jest wdrożyć CQRS do waszego projektu.
Sztuka programowania 956 dni, 16 godzin, 23 minuty temu 139 źrodło rozwiń
Wstrzykiwanie zależności z wykorzystaniem kontenerów jest bardzo wygodne, ale też niesie z sobą trochę problemów. Jednym z tych problemów jest ilość oraz moment tworzenia obiektów. W tym wpisie pokaże ten problem oraz zaproponuje swoje rozwiązanie z wykorzystaniem obiektów Lazy. Poniżej jest przedstawiona dość standardowy kawałek kodu aplikacji ASP.NET MVC, w której jest wykorzystane wstrzykiwanie zależności przez konstruktor w formie interfejsów. Jak widać na kodzie pow...
Sztuka programowania 978 dni, 22 godziny, 37 minut temu 111 źrodło rozwiń
Jeżeli każda metoda w twoim kodzie zaczyna się od Get to ten tekst jest dla Ciebie
Sztuka programowania 978 dni, 22 godziny, 37 minut temu 199 źrodło rozwiń
Coding Dojo to spotkanie podczas którego programiści razem pracują nad wybranym zagadnieniem/zadaniem. Cel jest prosty - doskonalenie umiejętności programistycznych. Na śląsku powstała inicjatywa Coding Dojo Silesia aby wspólnie się uczyć i programować!
Sztuka programowania 978 dni, 22 godziny, 37 minut temu 79 źrodło rozwiń