Immutability is a quite old concept that is mostly related to the functional programming, however, it’s also (maybe not so widely) used in the object oriented programming. An immutable variable/object can not be mutated, which means that once it’s been initialized it will never change it’s original value/reference (unless it’s deallocated). This approach results in some great benefits such as out of the box thread safety, yet in the OOP world, it does seem to be quite often abused or even not used at al...
Sztuka programowania 1833 dni, 18 godzin, 51 minut temu 68 źrodło rozwiń
Solution how to mock Entity Framework context in code first approach
Sztuka programowania 1836 dni, 19 godzin, 32 minuty temu 99 źrodło rozwiń
Jedną z największych trudności dla osoby zaczynającej przygodę z testami jednostkowymi są: Metody i klasy static. Niederministyczne lub/i niepowtarzalne zależności.
Sztuka programowania 1836 dni, 19 godzin, 32 minuty temu 133 źrodło rozwiń
Example how to validate dynamic model with Fluent Validation.
Sztuka programowania 1838 dni, 9 godzin, 49 minut temu 76 źrodło rozwiń
Nomenklatura w świecie TDD, a w szczególności ta dotycząca tworzenia atrap, jest źródłem wielu niejasności. Powodem takiego stanu jest fakt, że definicje różnią się w zależności od źródła, tj. książki, lub frameworka. W poprzednich częściach poznaliśmy trzy najbardziej popularne frameworki do tworzenia atrap dla .NET, dla których...
Sztuka programowania 1842 dni, 4 godziny, 8 minut temu 136 źrodło rozwiń
Czytakpisanyblogbyłbyczytelnydlawas? CzyMożeTakBędzieCzytelniej? AMożeCzęśćZWasPreferujeTaki_Zapis? MgSZłŻITkLpjBdzZCztlnscNzTrz. (Aktualnie już nie pamiętam co tutaj napisałem) Dlaczego gdy piszemy do ludzi potrafimy używać pełnych wyrazów, pełnych zdań, samogłosek i spółgłosek i nie skracamy. Natomiast gdy tylko siada jeden z drugim (ja nie jestem święty), piszemy P=ObsłużW(1,false, new Coś()); NIE MA SZANSY ŻE KTOŚ TO ZROZUMIE. NIE-MA. Czy to ...
Sztuka programowania 1842 dni, 4 godziny, 8 minut temu 285 źrodło rozwiń
Recently I’ve had this idea that came into my mind while working on the Sentry – let the users of my library (if there will be any) to configure not only the set of rules, connection strings, urls etc. but also the underlying providers that do all of the heavy lifting (e.g. the HttpClient responsible for communicating with the API). It means that as long as you’re not satisfied with the default solution, please feel free to provide your own engine that will for example talk to the database and perform a ...
Sztuka programowania 1842 dni, 19 godzin, 9 minut temu 83 źrodło rozwiń
Dzisiaj chciałbym pokazać BenchmarkDotNet. Dzięki niemu w łatwy sposób można przetestować wydajność konkretnych metod w c#. Na blogu temat wydajności poruszałem już wiele razy i wiemy, nie jest łatwe prawidłowe zmierzenie czasu wykonania kodu. Pamiętajmy, że kod wykonany pierwszy raz zawsze musi zostać przetłumaczony do kodu maszynowego (JIT). W momencie wywołania pierwszy raz jakiejkolwiek metody, CLR sprawdzi czy dana metoda ma już kod maszynowy. Jeśli jakaś me...
Sztuka programowania 1843 dni, 20 godzin, 10 minut temu 101 źrodło rozwiń
Last year I had a pleasure to attend and speak at awesome Thunder Plains conference in Oklahoma City. I presented Aurelia Framework: video code slides I really liked this conference. Especially, because instead of having more talks that I could count, there was only 15 sessions (selected out of over 300) divided into 3 tracks. Moreover, all speakers were passionate developers, and you could feel this during their presentations.
Sztuka programowania 1847 dni, 17 godzin, 23 minuty temu 51 źrodło rozwiń
How many timers are in the .NET Framework? What assumptions do they have? Which timer would you use for implementing Speculative query execution?
Sztuka programowania 1848 dni, 6 godzin, 29 minut temu 72 źrodło rozwiń
Behavior-driven development (BDD) is a process of developing the software that has evolved from the TDD (test-driven development). We can think of a BDD such as the feature driven approach to the TDD. The main advantage of the BDD over the TDD is the way the tests are being written, in a form of the story that can be understood both by the developers and the customers. In short, we can simply state that the BDD is the TDD done right – it makes use of the so called ubiquitous language which is the core pa...
Sztuka programowania 1848 dni, 6 godzin, 29 minut temu 62 źrodło rozwiń
In this talk, I will present techniques for efficient incremental processing of complex analytical queries, ranging from classical SQL queries to linear algebra programs. Our system, called DBToaster, compiles declarative database queries into high-performance stream processing engines that keep query results (views) fresh at very high update rates. DBToaster uses a recursive query compilation algorithm that materializes a supporting set of higher-order delta views to achieve a substantially lower view m...
Sztuka programowania 1848 dni, 6 godzin, 29 minut temu 25 źrodło rozwiń
CQS stands for the command query separation. There’s a chance that you may have not heard about it, but on the other hand the CQRS might ring a bell. Even though these 2 patterns have very much in common, there is a significant difference (definitely a bigger one than the additional “R” character within the CQRS acronym) in how do they apply to the architecture of our system. In this post I’ll focus on the CQS – the older brother of the CQRS – that will help you understand how to design the software that...
Sztuka programowania 1853 dni, 15 godzin, 4 minuty temu 171 źrodło rozwiń
Wszyscy wiedzą, że odpowiednia komunikacja w zespole projektowym jest bardzo ważna. Według statystyk „zła komunikacja” jest wymieniana jako jedna z głównych przyczyn opóźnień projektów. Doszło do tego, że pojęcie „dobra komunikacja” stała się frazesem i dla wielu wymówką w przypadku niepowodzeń z projektami. Nie jest to z pewnością trudność obiektywna, na którą nie mamy wpływu,...
Sztuka programowania 1853 dni, 18 godzin, 25 minut temu 194 źrodło rozwiń
Zwykle programiści korzystają z podstawowych typów dostarczonych przez C#, takich jak String, Int32 czy Double. W świecie programowania obiektowego można jednak pójść o krok dalej i budować własne typy danych. Przeważnie programiści korzystają z nich wyłącznie, gdy do zaimplementowania jest jakaś logika. Dlaczego nie tworzyć ich nawet w sytuacjach, gdy mają one przechowywać wyłącznie dane? Problem z podstawowymi typami takimi jak String Czy Int32 t...
Sztuka programowania 1856 dni, 20 godzin, 14 minut temu 214 źrodło rozwiń
Przedstawienie podstaw FluentValidation - 1 część cyklu.
Sztuka programowania 1857 dni, 10 godzin, 47 minut temu 144 źrodło rozwiń
Napisany przez paweltymura on Książki są bardzo ważne w moim życiu. Chodzi o to zawodowe i prywatne. Biblioteka pozycji głównie beletrystycznych idzie w setki pozycji. Jest też kilka książek dotyczących programowania, które chciałbym tu wymienić, głownie dotyczących Clean Code, Agile, Pragmatic Programmer oraz DDD.
Sztuka programowania 1857 dni, 19 godzin, 16 minut temu 294 źrodło rozwiń
~ Jarosław StadnickiBogowie Słuchając wystąpień wujka Boba czy innych wielkich mówiących o czystym kodzie, solidzie, testach, architekturze, devopsach i innych słowach kluczowych można popaść w depresję: „O żesz, mój kod nigdy taki nie będzie, lepiej nikomu go nie pokaże, sam zamknę się w piwnicy i do końca życia będę żywic się ziemniakami i robakami które będą do mnie przypełzać”. Czy naprawdę tak jest? Czy kod który piszemy musi być jak kryształ?Obrazek Słuchając różnych podcastów, usłyszałem taka ...
Sztuka programowania 1861 dni, 5 godzin, 38 minut temu 189 źrodło rozwiń
28/02/2016 ~ Jarosław Stadnicki Oskar i Kokos zebrali w swoich postach całkiem sporo materiału na temat skąd i jak można czerpać wiedzę i o tym jak się uczyć. Ich wpisy można znaleźć: Oskar: Nauka uczenia (się) Kokos: Jak się rozwijać? Ja dodam od siebie jeszcze jedną rzecz, która nie została wcześniej wymieniona, a moim zdaniem daje sporo. To podcasty. Słuchając ich nie tyle uczę się danej technologii, czy jednego słusznego rozwiązania, a raczej dowiaduje się o innych, alternatywnych do codziennej p...
Sztuka programowania 1863 dni, 4 godziny, 23 minuty temu 136 źrodło rozwiń
Są takie słowa kluczowe w języku C#, bez których można się obejść. Tylko po co się ograniczać, jeśli ich zrozumienie może zaoszczędzić nam czas, liczbę linii kodu do napisania… i wzbudzić zazdrość wśród Javowców :) Zapraszam na trzy słowa o delegate.
Sztuka programowania 1865 dni, 18 godzin, 49 minut temu 401 źrodło rozwiń