W artykule chciałem przedstawić sposób na alternatywne propagowanie błędów (nie polegające na wyjątkach) w GraphQL-Dotnet. Miłej lektury :)
Strona głównaUżytkownik
mnie | użytkownik
Sztuka programowania 2278 dni, 2 godziny, 10 minut temu 30 źrodło rozwiń
W artykule chciałem pokazać sposób na testowanie query GraphQL'owych za pomocą biblioteki FsCheck co pozwoli na wyłapanie błędów, które byłyby trudne do znalezienia przy manualnym testowaniu, bądź przy testach jednostkowych. Zapraszam do lektury :)
Sztuka programowania 2379 dni, 19 godzin, 3 minuty temu 47 źrodło rozwiń
Krótki post o tym jakie problemy może przysporzyć update Visual Studio do najnowszej wersji. Na przykładzie VS 15.6.0 i solucji zawierającej projekty C/F# w nowym i starym formacie plików projektu.
Mamy 2017 rok, Visual Studio 2017, .net core 2.0 i .net standard 2.0, jest więc to znakomity moment by przejść ze starego formatu plików cs/fsproj w naszych solucjach na nowy. Post opisuje plusy, minusy i problemy wynikające z takiej migracji. Zachęcam do lektury :)
Sztuka programowania 2520 dni, 1 godzinę, 22 minuty temu 170 źrodło rozwiń
Często w przypadku testów automatycznych napotykamy problem związany z badaniem zawartości plików w formacie csv generowanych podczas tychże testów. W jaki sposób możemy parsować ich zawartość? Z pomocą przychodzi nam biblioteka FSharp.Data i udostępniana w jej ramach klasa CsvFile. Zachęcam do lektury :)
Sztuka programowania 2561 dni, 1 godzinę, 58 minut temu 41 ź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, 27 minut temu 68 źrodło rozwiń
Często tworząc oprogramowanie nie widzimy zawiłości w kodzie, która później powoduje problemy związane z jego utrzymaniem. Ten artykuł opisuje jak wykorzystać Code Metrics w Visual Studio i F# by w miarę automatyczny sposób wyłuskać fragmenty kodu (metody), które wymagają naszej uwagi. Zachęcam do lektury :)
Sztuka programowania 2649 dni, 18 godzin, 6 minut temu 129 źrodło rozwiń
Tworzyłeś kiedyś mikroserwis w C# przy pomocy NancyFx/Quart.Net? Zastanawiałeś się, jak to może wyglądać w F#? Zapraszam do lektury :)
Ile razy widziałeś już kata dotyczące TDD? Z pewnością wiele. Za każdym razem przy użyciu NUnita, XUnita, MSpeca.. ale czemu nie spróbować tego samego przy użyciu FsChecka, który wymusza trochę inne myślenie o/podejście do implementacji testowanej metody? Właśnie o tym jest artykuł, krótkie Kata przy użyciu FsCheck i C#/F#. Zachęcam do lektury :)
Sztuka programowania 2940 dni, 23 godziny, 31 minut temu 145 źrodło rozwiń
Chciałbyś zaznajomić się z F#? Nie masz pomysłu co mógłbyś w nim zrobić? Czemu nie zacząć od testów? Post pokazuje jak w prosty sposób można przepisać istniejące testy z C# na F#. Zapraszam do lektury :)
Sztuka programowania 2940 dni, 23 godziny, 31 minut temu 43 źrodło rozwiń
Masz potrzebę stworzenia prostego endpointu, który będzie Ci zwracał dane, a nie chcesz do tego tworzyć aplikacji webowej? Chcesz stworzyć joba, który będzie się wykonywał wtedy gdy coś wpadnie do Twojej kolejki? Użuj azure functions! Właśnie o azure functions w połączniu z F# jest ten post. Zachęcam do lektury :)
Many of us, and I’m not speaking just about folks within the IT industry, sometimes have this feeling about the missed opportunity. It might be related to the job, some project or anything else that somehow we didn’t manage to accomplish due to some specific reasons (maybe just a bad luck or even the laziness). However, sometimes missing a particular opportunity doesn’t mean that the world has come to an end, actually, it might turn into something even better and unexpected.
Do you know the trees used in Cassandra, Git, Bitcoin or Lucene? Check this post to find interesting trees, usually not covered on Computer Science lectures.
Sztuka programowania 3007 dni, 2 godziny, 15 minut temu 116 źrodło rozwiń
Dziś będzie bardzo nietypowo jak na mnie, bo o tym co jest ważne w życiu. My Informatycy, tak wiem że to takie ogólne sformułowanie, lubimy zwięzłość. Kod zero-jedynkowy to to co do nas najlepiej przemawia. Czasami jednak stajemy przed problemem gdzie cała nasza wiedza technologiczna czy umiejętność zarządzania projektami (itp) stają się bezużyteczne…
Na swoich stronach często udostępniamy możliwość dodawania komentarzy, bo chcielibyśmy by nasza aplikacja/witryna jak najlepiej spełniała oczekiwania naszych użytkowników. W jaki sposób możemy wyłapać komentarze o dobrym/złym wydźwięku by wiedzieć jak modyfikować naszą aplikację? Przecież nie będziemy czytali wszystkich komentarzy, jeżeli ich liczba idzie w setki/tysiące.. właśnie o tym jest tenże post. Zachęcam do lektury :)
Klasa (immutable) Tuple istniała aż od .NET Framework 4.0. W C# 7.0 mamy jednak wsparcie dla tuple od strony języka. Jednym z problemów klasy Tuple było, że każda właściwość nazywała się kolejno Item1, Item2 itp. W tym wpisie dowiemy się jak to rozwiązano w C# 7.0
Sztuka programowania 3023 dni, 2 godziny, 21 minut temu 398 źrodło rozwiń
Reading time ~2 minutes In the previous post I’ve wrote about why I think the ability to schedule tasks for later execution is a fundamental technical feature, but also a must have from a business point of view. We are passed the whys, so lets get to the hows. The answer is simple - Hangfire. I’ve wrote about it here, here and here, so yeah, I like it. Hangfire is an amazing library. It has proved itself in my pet project (cookit.pl) and in a huge ERP system that we are building at work, where we repla...
Architektura 3016 dni, 2 godziny, 14 minut temu 153 źrodło rozwiń
Behavior Driven Development – dosyć niedawno nawet słyszałem, że to Test Driven Development Done Right 🙂 Co, jak, czemu i po co? Czytaj by się dowiedzieć jak ja to widzę :)
Sztuka programowania 3016 dni, 2 godziny, 14 minut temu 222 źrodło rozwiń