Warning: this post won't be about "boring" or "typical" algorithms from Computer Science which we all have learned on studies (like quick sort, merge sort, xxx sort, A*, FFT). Instead, this will be about other little-known, especially USEFUL algorithms, which people working as professional developers should know or heard of. Little-known. ID generation problems are usually overlooked. Database ID's I mean. Ask someone to name ID "types". Well, GUID, newsequentialid...
Sztuka programowania 1836 dni, 7 godzin, 47 minut temu 115 źrodło rozwiń
Słowo kluczowe yield – obecne w języku C# od dawien dawna – w prosty sposób może przyczynić się do poprawy wydajności naszego kodu. Jak działa? Gdzie go używać? Jak może przyczynić się do poprawy działania aplikacji? Przekonajmy się...
Sztuka programowania 1838 dni, 8 godzin, 58 minut temu 465 źrodło rozwiń
W internecie znaleźć można mnóstwo sposobów na zwalidowanie modelu. Najlepszym sposobem jest zastosowanie atrybutów z przestrzeni System.ComponentModel.DataAnnotations, ponieważ walidacja odbywa się automagicznie. Niestety kiedy te same atrybuty wykorzystamy do parametrów akcji, to już tak automagicznie nie jest. W tym poście zaprezentuję problem oraz pokażę jak można sobie z nim poradzić.
Sztuka programowania 1838 dni, 8 godzin, 58 minut temu 266 źrodło rozwiń
Początki nowego projektu zawsze są interesujące – można posprzeczać się na tematy możliwych do użycia technologii / wzorców / planowanej architektury. Później, gdy już projekt zastyga i klepiemy tylko kolejne widoki każda kolejna próba takiej dyskusji kończy się tekstem typu: “Ale po co o tym gadać – i tak nic nie zmienimy bo trzeba by całą aplikację przepisywać”.
Sztuka programowania 1839 dni, 8 godzin, 3 minuty temu 454 źrodło rozwiń
Wiecie jaka jest definicja wzorca projektowego, prawda? Za wikipedią: “a general repeatable solution to a commonly occurring problem in software design“. Czym zatem będzie antywzorzec? Czymś takim: “a general repeatable anti-solution to a commonly occurring problem in software design“. Czyli: recepta na napytanie sobie biedy. Czerwony pijany znak z napisem: “Nie idź tą drogą”.
Sztuka programowania 1839 dni, 8 godzin, 3 minuty temu 167 źrodło rozwiń
Zostałem poproszony przez kolegów z zespołu o przybliżenie im biblioteki MediatR, która zapewnia prostą implementację mediatora który wysyła i obsługuje wiadomości w pamięci. Zaproponowałem ją jako sposób na rozwiązanie problemu zbyt ścisłych zależności pomiędzy domenami w naszej aplikacji.
Sztuka programowania 1840 dni, 20 godzin, 46 minut temu 365 źrodło rozwiń
Napisany przez paweltymura on Ponieważ mam tą przyjemność refactorować czasem naprawdę stary kod (z czasów .NET 1) to trafiam na takie fajne fragmenty “jak to się robiło kiedyś”. Kod który jest pod moją opieką staram się poprawiać, testować i upraszczać używając najnowszych sztuczek. Do kodu!
Sztuka programowania 1842 dni, 2 godziny, 4 minuty temu 435 źrodło rozwiń
Napisany przez paweltymura on Zainspirowany kolegami z pracy (ale jesteśmy inspirujący ) postanowiłem napisać o dynamic jako elemencie fajnym do napisania ładnego kodu typu Type matching. Możliwe, że jest to też niezła odpowiedź na problem Ayende.
Sztuka programowania 1842 dni, 2 godziny, 4 minuty temu 122 źrodło rozwiń
Zasady SOLID Zasady SOLID: Odwracanie zależności Kamil Jóźwiak No Comments Wszystko powinno być tak proste, jak to tylko możliwe, ale nie prostsze. Albert Einstein Co ma wspólnego kopanie rowów z zasadami SOLID? A to już zależy od podejścia. Jako programista często przenoszę zagadnienia ze świata realnego do kodu. Tym razem będzie odwrotnie, wszystko w imię zrozumienia ostatnią z zasad SOLID – zasady odwracania zależności. Poznanie wzorców projektowych wraz z całym...
Sztuka programowania 1843 dni, 21 godzin, 31 minut temu 571 źrodło rozwiń
DbUp jest prostą biblioteką, przeznaczoną do aktualizacji baz danych. Jeśli korzystamy z ORM, zwykle wtedy dany framework posiada już analogiczną funkcjonalność. Na przykład, EntityFramework wspiera migrację, która umożliwia automatyczną aktualizacje tabel i procedur. Z drugiej strony, nie zawsze jest potrzeba korzystania z tak ciężkich rozwiązań. Bardzo popularną biblioteką do odczytu danych z baz jest Dapper. Niestety nie posiada on mechanizmu podobne...
Sztuka programowania 1843 dni, 21 godzin, 31 minut temu 168 źrodło rozwiń
Jest wiele czynników, które mówią o jakości kodu, jednym z nich jest jego czytelność. W jaki sposób można, bez dużego nakładu pracy, poprawić czytelność kodu? Czy wielkość i poziom skomplikowania projektu mają wpływ na czytelność kodu? Kto jest odpowiedzialny z powstawanie nieczytelnego kodu i czy czytelność kodu mówi coś o profesjonalizmie programisty? W jaki sposób można zapobiegać a w jaki sposób leczyć zainfekowany kod? „Lepszy jest kod dobrze napisa...
Sztuka programowania 1853 dni, 7 godzin temu 527 źrodło rozwiń
Metoda Split dzieli łańcuch znaków na części w zależności od separatora, który został przekazany w parametrach. Ostatnio jednak natknąłem się na plik CSV, który oprócz tego, że jest rozdzielony przecinkami to na dodatek ma jeszcze ogranicznik pól. Parsowanie takiego pliku metodą String.Split nie będzie prawidłowe. Poniżej implementacja metody String.Split z możliwością zdefiniowania ogranicznika pól(checkSeparator)...
Sztuka programowania 1855 dni, 10 godzin, 11 minut temu 175 źrodło rozwiń
Napisany przez paweltymura on Spotkała mnie niesamowicie miła sytuacja, w której ktoś zrewidował kod podany w poprzednim artykule o pattern matchingu. Code review Blog-posta! How cool is that? Co milsze wykazał błąd w rozumowaniu i podał bardziej prawidłowe rozwiązanie. Artykuł wskazuje jak zmienić poprzednie podejście, by zrobić to lepiej!
Sztuka programowania 1859 dni, 9 godzin, 47 minut temu 155 źrodło rozwiń
Posted on by MJ Po prawie rocznym okresie przerwy od pisania – potrzebowałem tego jak ryba wody, w międzyczasie udało mi się stworzyć kilka wideo tutoriali dla wydawnictwa Edugrafia i popracować nad kilkoma zewnętrznymi projektami (polecam) – wracam z tematem bardzo ważnym dla każdego programisty, czyli mocków...
Sztuka programowania 1859 dni, 9 godzin, 47 minut temu 245 źrodło rozwiń
Pattern Matching dla biednych W językach funkcyjnych istnieje coś takiego jak pattern matching (tłumaczone na “wyrażenie dopasowania” – brzmi okropnie). Generalizując to taki switch który w zależności od jakiegoś warunku, albo typu danego wyrażenia wykona zadaną operację.
Sztuka programowania 1861 dni, 8 godzin, 32 minuty temu 309 źrodło rozwiń
Chain Of Responsibility… bo po co Ci switch. Chain of responsibility to jeden z moich ulubionych wzorców. Poznałem go w obecnej pracy dopiero i smutno mi, że tak późno, ponieważ rozświetlił i mój kod i moją twarz Wzorzec ten pozwala unikać switchów i ładnie porządkuje kod. Dodatkowo spełnia w większości wymagania Open-Close principle (o tym za chwilę). Jest bardzo fajny w użyciu w swej podstawowej wersji...
Sztuka programowania 1861 dni, 8 godzin, 32 minuty temu 426 źrodło rozwiń
Niejednokrotnie potrzebujemy podejrzeć zapytanie SQL wygenerowane przez EF. Często zdarza się, że takie zapytanie chcemy odpalić na bazie danych i zobaczyć wynik. Można wtedy podpiąć się profilerem do bazy i przechwycić je w całości. Niestety takie rozwiązanie jest bardzo czasochłonne. Można też wywołać metodę ToString() na obiekcie typu IQuarable, jednakże to rozwiązan...
Sztuka programowania 1861 dni, 8 godzin, 32 minuty temu 188 źrodło rozwiń
W tym artykule przyjrzymy się ciut bardziej zaawansowanym technikom tworzenia atrap przy pomocy Moq: argument matching, verify, callback. Wszystkie przykłady zostaną zaprezentowane przy użyciu Moq, jednak konkurencyjne frameworki w zakresie niewiele się różnią w zakresie tych technik.
Sztuka programowania 1862 dni, 20 godzin, 52 minuty temu 90 źrodło rozwiń
W tym wpisie poruszę temat tego jak bufory „bezpieczeństwa” (cudzysłów nie jest przypadkowy) w taskach wpływają na przedłużenia projektu. Opiszę również jak „kary” za nie wykonywanie zadań w terminie przez developerów przyczyniają się do opóźnień. Zrozumienie istoty problemu jest pierwszym krokiem do ich eliminacji i zwi...
Sztuka programowania 1866 dni, 9 godzin, 35 minut temu 302 źrodło rozwiń
Moq to najpopularniejszy framework do tworzenia atrap w .NET. W tej części kursu poznamy jego składnię i podstawowe możliwości.
Sztuka programowania 1869 dni, 22 godziny, 34 minuty temu 137 źrodło rozwiń