Przestawienie się na Test Driven Development z pisania metodą tradycyjną nie jest łatwym zadaniem. Szczególnie na początku musimy walczyć ze starymi nawykami, a kiedy napotykamy trudności, naturalnym rozwiązaniem jest stosowanie metod, które znamy i rozumiemy. Poza tym początkowo TDD może nam się wydawać nieintuicyjne, a wkład pracy wydaje się większy. Jak to zwykle bywa w takich przypadkach, kluczem jest wytrwałość. Każda umiejętność wymaga czasu, aby ją dobrze opanować. Kiedy już nam się to uda, zauważ...
Sztuka programowania 2663 dni, 20 godzin, 39 minut temu 93 źrodło rozwiń
W poprzedniej części cyklu o TDD opisałem dlaczego sposób wytwarzania oprogramowania, który praktykowałem na początku się nie sprawdzał i co mnie skłoniło do zainteresowania się Test Driven Development. Dzisiaj opiszę jak wygląda praca zgodnie z TDD. Jak to często bywa w przypadku praktyk zwinnych zasady teoretyczne są dosyć proste, a kluczem do sukcesu jest dyscyplina. Na początku musimy sobie wyjaśnić jedną bardzo ważną kwestię. TDD to nie synonim do pisania testów jednostkowych. Owszem, unit testy ...
Sztuka programowania 2670 dni, 22 godziny, 35 minut temu 144 źrodło rozwiń
Some guidance how you can introduce CQRS to your project, step by step.
Sztuka programowania 2673 dni, 21 godzin, 17 minut temu 271 źrodło rozwiń
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 2674 dni, 20 godzin, 4 minuty temu 234 źrodło rozwiń
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 2674 dni, 20 godzin, 4 minuty temu 198 źrodło rozwiń
Recently, I was tricked by Roslyn, today by Json.NET. My bloody luck ;) Let's look at the following two very simple classes. Class A has one readonly property and I had to define a special constructor to allow Json.NET to set this property. B is also simple. It has one property, this time of type A with some default value...
Sztuka programowania 2676 dni, 21 godzin, 23 minuty temu 108 ź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 2676 dni, 21 godzin, 23 minuty temu 68 źrodło rozwiń
Piszą i mówią o Scrumie wszyscy, od lat wydaje się być nieprzemijającą modą. Zanim zaczęłam pracować w jakiejkolwiek metodologii Agile, byłam wielką entuzjastką;) Po jakimś czasie okazało się, że nie jest jednak tak kolorowo...
Sztuka programowania 2682 dni, 12 godzin, 2 minuty temu 232 ź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 2682 dni, 12 godzin, 2 minuty temu 129 źrodło rozwiń
A while ago 2 of my SpecFlow tests started failing on the build server. At the same time, on a few local machines no problems were observed. I also didn't find any exceptions in the log, so I decided to log into the server and debug a problem there. Quite soon I figured out that the problem is in the algorithm that uses Roslyn to analyse and understand the code...
Sztuka programowania 2685 dni, 17 godzin, 16 minut temu 48 źrodło rozwiń
Sztuka programowania 2694 dni, 12 godzin, 32 minuty temu 313 źrodło rozwiń
Siemanko Wykorzystując generyczne możliwości C# oraz bibliotekę AutoMapper do mapowania modeli na podstawie konwencji, można zaimplementować np. operacje CRUDowe dla wielu modeli bez potrzeby powtarzania kodu konkretnej implementacji dla konkretnego modelu. Ostatnio, implementując coś w rodzaju kolejki eventów oraz ich obs...
Sztuka programowania 2694 dni, 12 godzin, 32 minuty temu 172 źrodło rozwiń
Recently, I was struggling with the SSO authentication. At first I did pick up JSON Web Token which of course is a legitimate option, however, I was forced to share the secret key between different parties, as I decided to use HMAC. Not so long ago I decided to switch to the RSA instead and I’d like to present you both solutions using ASP.NET Core.
Sztuka programowania 2700 dni, 4 godziny, 31 minut temu 142 źrodło rozwiń
Od ponad roku rozwijam framework do automatyzacji testów. Przez ten czas miałem okazję pracować przy kilku projektach związanych z automatyzacją, gdzie poznałem wspaniałych ludzi i za każdym razem miałem okazję spojrzeć na testowanie automatyczne z innej perspektywy. Widziałem kod doskonały (tak, istnieją takie! :)) oraz taki, o którym chciałbym jak najszybciej zapomnieć. Dzisiaj skupię się na tym drugim i przedstawię wam 3 sprawdzone sposoby na to, jak zepsuć testy automatyczne...
Sztuka programowania 2704 dni, 7 godzin, 53 minuty temu 214 źrodło rozwiń
To uczucie, gdy kończymy feature, przeklikujemy ostatni raz aplikację, zatrzymujemy się na chwilę, aby nacieszyć się zakończoną pracą, a tu bach! W innej części aplikacji zauważamy bug’a. Co więcej, kojarzymy ten problem, bo już go poprawialiśmy. Pierwsza myśl? Ktoś (bo przecież nie my) znowu to zepsuł!
Sztuka programowania 2714 dni, 16 godzin temu 124 źrodło rozwiń
Serwis RSS Allegro posiada kilka pól, po których możemy wyszukiwać. Niestety nie została udostępniona żadna dokumentacja. Skupmy się na pozostałych możliwościach, poza wyszukiwaniem po tytule. Niestety serwis RSS nie daje możliwości implementacji innych metod niż Where. Nie została udostępniona opcja sortowania, omijania rekordów, czy wybierania niektórych kolumn. Nic nie stoi na przeszkodzie, żeby je zaimplementować, jeśli w przyszłości zostaną dodane!PayU PayU jest polem ...
Sztuka programowania 2714 dni, 16 godzin temu 42 źrodło rozwiń
Świetny artykuł ukazujący to, jak w prosty sposób uczynić kod bardziej czytelnym.
Sztuka programowania 2721 dni, 9 godzin, 6 minut temu 353 źrodło rozwiń
Jak wybrać odpowiednią technologię, narzędzia, czy framework? Trafiłem ostatnio na nowy portal w sieci, który zmusił mnie do pewnej refleksji. Mianowicie myślę, że jedną z najcięższych decyzji przed jakimi możemy zostać postawieni to decyzja związana z wyborem odpowiedniej technologii, narzędzi, czy frameworków, przy użyciu których będziemy realizować dany projekt.
Sztuka programowania 2726 dni, 5 godzin, 22 minuty temu 229 źrodło rozwiń
Internet of Things happens to be a buzz-word that is often overused by marketing guys to boost profits by branding their product with labels such as ‘smart’ or ‘intelligent’, but what it really is. Why is IoT so popular? Let’s take a look at the technical aspects of that phenomenon.
Sztuka programowania 2726 dni, 5 godzin, 22 minuty temu 78 źrodło rozwiń
Kto mi powie co robi poniższy kod. W słowniku znajdują się mniej więcej takie wartości Słownik przetwarzany jest przez taką metodę Zwróćcie uwagę na nazwę metody. A teraz na ciało metody. Teraz jeszcze raz na nazwę. Na pierwszy rzut oka coś tu jest nie tak. I nie, nie chodzi o to, że bool to string. Przecież jeśli stan kontrolki (zgodnie z nazwą zmiennej) to „true” to powinna być włączona, prawda? Więc czemu szukamy czy tylko jedna kontrolka jest włączona, skoro wszystk...
Sztuka programowania 2728 dni, 8 godzin, 3 minuty temu 256 źrodło rozwiń