← Język C# w całej swojej świetności ma również masę ograniczeń, oczywiście wszystko dla naszego dobra Jednym z takich ograniczeń jest dziedziczenie maksymalnie po tylko jednej klasie (ale za to po wielu interfejsach). Co czasem może okazać się nie lada wyzwaniem Zapraszam więc do lektury. Najczęstszym i najłatwiejszym rozwiązania problemu niemożności dziedziczenia po wielu klasach jest zamiana dziedziczenia na kompozycję (czy to jedn...
Sztuka programowania 3078 dni, 19 godzin, 34 minuty temu 168 źrodło rozwiń
Przy okazji ostatniego wpisu konkursowego zapowiedziałem serię wpisów poświęconą CQRS oraz event sourcing-owi. Posty oczywiście wkrótce się ukażą, ale dziś chciałbym w ramach tej tematyki omówić nowy „mechanizm”, który zagości w siódmej wersji naszego ulubionego języka Wyobraźmy sobie, że naszym zadaniem jest implementacja odtwarzania stanu obiektu ze zdarzeń, które przetrzymujemy w tzw. Event Store. Zdarzenia wyglądają następująco: public class Event { public Guid AggregateId { get; set; } }...
Sztuka programowania 3079 dni, 19 godzin, 31 minut temu 262 źrodło rozwiń
← Kurs MVVM #4 DataTemplateSelectorOpublikowano, autor:Tomasz J W tej części kursu dowiesz się jak stworzyć aplikację wielojęzyczną wykorzystując bindowanie. Jako przykład stworzymy sobie formularz mini-formularz. Zaczynamy od stworzenia plik zasobów (ang. Resources File) w dwóch wersjach, domyślna – Polska i Angielska. Aby to zrobić do projektu dodajemy nowy element typu resx jak na obrazie poniżej. Plik ten wykorzystamy jako słownik domyślnego języka. Otwieramy nowo utworzony plik i dodajemy do ni...
Sztuka programowania 3085 dni, 20 godzin, 10 minut temu 182 źrodło rozwiń
One of the main processes in cookit is dealing with extracting recipe information from raw html. I know it isn’t the most elegant solution but it is the only universal one. But to the point. Every web page goes through a process involving html parsing, stemming, parsing, and n-gram token matching. Then it’s saved to Sql Server and after transformation to Solr. So a lot of string manipulation, math calculations and from time to time mostly 0-gen GC. In the most pessimistic case this process has to be r...
Sztuka programowania 3086 dni, 20 godzin, 25 minut temu 60 źrodło rozwiń
In this post I will try to introduce the concept of validation using the Chain of Responsibility pattern (CoR), which I use successfull for years
Sztuka programowania 3089 dni, 1 godzinę, 41 minut temu 231 źrodło rozwiń
Pewnie podczas nauki programowania zastanawialiście się, jak to jest, że niektórzy piszą dobry kod, a innym wcale to nie wychodzi. A może nawet nie wiedzieliście do końca, czym jest dobry kod. A więc jak jest z tym tak naprawdę? Pisz dużo Po pierwsze: żeby pisać dobry kod, trzeba najpierw pisać kod. To stwierdzenie może wydać się mało śmiesznym żartem, ale wcale nim nie jest – najprostsze rozwiązania czasem są najlepsze. Żeby wyrobić w sobie umiejętności pro-kodera, trzeba ćwiczyć. I to całkiem sporo ć...
Sztuka programowania 3091 dni, 46 minut temu 405 źrodło rozwiń
Generic classes tests mechanism using NUnit with test cases
Sztuka programowania 3095 dni, 22 godziny, 56 minut temu 79 źrodło rozwiń
posted in Powershell on by Radek Wyjaśnienie, jak krok po kroku, z Azure Automation DSC, zamontować plik ISO.
Sztuka programowania 3095 dni, 22 godziny, 56 minut temu 22 źrodło rozwiń
Witam serdecznie zarówno starych jak i nowych czytelników bloga. Dzisiejszy dzień jest szczególny, ponieważ chciałbym podzielić się z Wami moim nowym projektem, a jest nim podcast – DevReview. Moim pierwszym gościem był Mariusz Litwin – analityk w dziale zarządzania ryzykiem nadużyć w EY. Porozmawialiśmy (a raczej Mariusz :D) m.in. o historii bezpieczeństwa, bezpieczeństwie proaktywnym, dobrych praktykach podczas implementowania systemów informatycznych oraz sposobach na „przeniknięcie” do profesjonalneg...
Sztuka programowania 3097 dni, 1 godzinę, 11 minut temu 107 źrodło rozwiń
Czołowi blogerzy .Netowi zajmują się obecnie nowościami, które można będzie spotkać w stabilnej wersji 7.0 języka C#. W praktyce jednak, nie każdy może tak łatwo brnąć do przodu i podejrzewam, że jest sporo deweloperów, którzy wciąż nawet nie spróbowali szóstki. Przyczyną tego stanu rzeczy najczęściej jest praca w firmie, która już jakiś czas funkcjonuje na rynku. W takiej sytuacji duży nacisk stawiamy na stabilność kodu, a każda nowa wersja czegokolwiek, stwarza potencjalne ryzyko błędu. Kompatybilny ws...
Sztuka programowania 3099 dni, 9 minut temu 387 źrodło rozwiń
In 2014, Internets went loud after Erik Meijer’s talk One Hacker Way. I really liked this talk, because it made me think…actually even until today I didn’t figure out everything Erik meant. Unfortunately, most of people didn’t understand this talk. In 2015, he gave the same talk again, but the rhetoric was way different. It’s more straight forward, and probably more people understood it. tl;dr This talk is about approach to software engineering...
Sztuka programowania 3100 dni, 1 godzinę, 15 minut temu 107 źrodło rozwiń
Na zewnątrz gorąco, a tu kolejna porcja ciekawych programistycznych treści pcha się wprost w dev-uszy! W 34. odcinku eksplorujemy temat aktorów. Oskary rozdane, więc się spóźniliśmy, ale oczywiście przecież i tak o innych aktorów chodzi, prawda? Chodzi o Actor Model. Aktorów komentuje dla nas Bartosz Sypytkowski. Doskonale wie, o czym mówi, ponieważ jest jednym z corowych contrybutorów frameworka AKKA.NET (jak to ładnie po polsku brzmi 😉 ). Prowadzi też bloga (http://bartoszsypytkowski.com) i czasami w...
Sztuka programowania 3103 dni, 1 godzinę, 5 minut temu 48 źrodło rozwiń
W procesie implementacji systemu informatycznego zwykle przychodzi moment, gdzie w naszym kodzie zaczynają pojawiać się informacje niezbędne np. do połączenia z bazą danych lub integracją z zewnętrznymi dostawcami wszelakich usług jak np. mailing. Strategi radzenia sobie z tą niedogodnością jest kilka. Możemy temat uznać za mało ważny, który po prostu olejemy. Nie jest to dobrym pomysłem chociażby z tego względu, że w dzisiejszych czasach reverse engineering jest wszechobecny i dla wprawionych osób dekom...
Sztuka programowania 3103 dni, 1 godzinę, 5 minut temu 175 źrodło rozwiń
A few months ago I read great article written by Erik Dietrich – How Developers Stop Learning: Rise of the Expert Beginner. After publishing this article, and receiving a lot of positive feedback, Erik has written multiple follow up articles. He also has written a book, which I decided to buy and read: The Expert Beginner ($5 for Kindle Edition!). This book is a very interesting case study, in which Erik analyzes developer’s growth, and how some peop...
Sztuka programowania 3110 dni, 1 godzinę, 51 minut temu 117 źrodło rozwiń
MVC jest królem! Z modelu, przez kontroler, do widoku! Mówili. Słuchaliśmy. Polegliśmy. Niezależnie od wykorzystywanej technologii czy frameworka: jeżeli “dziubiesz webówki” to prawdopodobnie działasz w MVC. I to “C” może reprezentować różne pojęcia. Czasami jest to Controller, czasami Module, czasami coś jeszcze innego.
Sztuka programowania 3110 dni, 1 godzinę, 51 minut temu 263 źrodło rozwiń
What is Interactive Extensions? It's a set of additional LINQ to Objects query operators based on the Reactive Extensions. This post covers all available API.
Sztuka programowania 3110 dni, 16 godzin, 53 minuty temu 90 źrodło rozwiń
Wyjaśniam, dlaczego wyrażenia są bezpieczniejsze od twierdzeń oraz jak zwiększyć czytelność wyrażeń w F#.
Sztuka programowania 3110 dni, 23 godziny, 28 minut temu 86 źrodło rozwiń
Walidacja dynamicznego modelu z Fluent Validation.
Sztuka programowania 3110 dni, 23 godziny, 28 minut temu 88 źrodło rozwiń
Większość ludzi których znam, nie lubi regexa. Wolą żmudnie wpisywać string.IndexOf niż nauczyć się przepotężnego narzędzia. Z tymi indexOf to w ogóle kupa problemów jest. Ostatnio okazało się, że jak delikatnie zmieni się struktura HTML’a to IndexOf przestaje działać. Ja, czuły na to, poniżej chciałbym pokazać jak rozwiązaliśmy pewien problem i użyć “power of regex”.
Sztuka programowania 3110 dni, 23 godziny, 28 minut temu 144 źrodło rozwiń
Czemu o tym piszę? Ostatnio czytając internety i sięgając pamięcią do moich doświadczeń doszedłem do wniosku, że czasem ktoś usprawiedliwia przez YAGNI pisanie mniej elastycznego kodu. Nawet, jeśli sam rozumie dlaczego pisanie takiego kodu jest dobre.
Sztuka programowania 3113 dni, 12 minut temu 286 źrodło rozwiń