dotnetomaniak.pl

dotnetomaniak.pl - Najnowsze artykuły o .NET w dziale Sztuka programowania - Strona 26

Dzisiaj wracamy do tematu TPL Dataflows. W ostatniej części zajęliśmy się m.in. BroadcastBlock, który jest jednym z bloków buforujących. Dla przypomnienia przykład:class Program { privatestaticvoid Main(string[] args) { BroadcastBlock

Dziel się z innymi:
Piotr Zieliński » TPL Dataflows – część III (bloki buforujące)

Sztuka programowania 1284 dni, 3 godziny, 44 minuty temu pzielinski 76 rozwiń

Informatyka z racji swojego sformalizowania kocha się w regułach. Nie można się praktycznie ruszyć, by w jakąś nie wdepnąć. Zaczynam się powoli zastanawiać, czy nie mamy tutaj do czynienia ze zjawiskiem podobnym do eksplozji klas – eksplozją reguł. Bezsprzecznie do tego stanu rzeczy przyczyniają się także blogi. Widywałem na blogach wpisy, w których ...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Owszem, reguły trzeba stosować, ale nie dajmy się im zwariować.

Sztuka programowania 1285 dni, 22 godziny, 17 minut temu PaSkol 218 rozwiń

ReaderWriterLockSlim jest klasą, która ma zastąpić ReadWriterLock, znanego ze starych wersji framework’a. Ale zacznijmy od początku… Dlaczego zwykły lock nie zawsze jest wystarczający? ReaderWriterLockSlim pracuje w trzech trybach:mutual lock – inaczej writer lock. Wyłącznie jedna taka blokada może zostać nadana. Jest to typowy lock i należy z niego korzystać, gdy modyfikujemy dane. shared (reader) lock – wiele wątków może mieć dostęp do tych samych danych. Można nadać wiele shared lock, pod warunkiem, ...

Piotr Zieliński » ReaderWriterLockSlim – synchronizacja danych

Sztuka programowania 1287 dni, 4 godziny, 40 minut temu pzielinski 75 rozwiń

Komentarze z reguły są złe, zamiast nich należy pisać czytelny kod (czyli kod, który czytany wyjaśnia swoje działanie). Są złe bo się dewaluują, tj. po jakimś czasie nie korespondują z kodem, opisują go w nieprawdziwy sposób, bo kod się zmienił. Jest to prawda, której obecnie nie trzeba chyba już nikomu tłumaczyć, przynajmniej tym, którzy trzymają rękę na programistycznym pulsie. Czy zatem rezygnując z komentarzy oraz pisząc czytelny kod pozbyliśmy się całego ich zła? Niekoniecznie, ono czeka cierpliwie...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Chociaż pozbyłeś się komentarzy ich zło się w kodzie wciąż może zdarzyć.

Sztuka programowania 1287 dni, 16 godzin, 39 minut temu PaSkol 199 rozwiń

Klasa Monitor to chyba najpopularniejszy, najłatwiejszy i często najlepszy sposób synchronizacji danych w .NET. Większość programistów używa słowa kluczowego lock zamiast bezpośrednio Monitor.Enter. W większości przypadków jest to poprawne i zdecydowanie najbardziej przejrzyste. Dzisiaj chciałbym przyjrzeć się kilku sposobom konstrukcji Monitor.Enter\MonitorExit. Pierwszy, zdecydowanie najgorszy to:Monitor.Enter(_sync); // sekcja krytyczna tutaj Monitor.Exit(_sync); W powyższym kodzie brakuje obsługi...

Piotr Zieliński » Code Review: Monitor.Enter – kilka wzorców

Sztuka programowania 1290 dni, 4 godziny, 25 minut temu pzielinski 142 rozwiń

Jakiś czas temu zapowiadałem drugą część artykułu o GC. Tym razem będzie o różnych trybach GC i kiedy z jakiego należy korzystać, tak, aby aplikacja zachowywała się płynnie oraz sprawiała wrażenie, że działa w czasie rzeczywistym. Zapraszam do lektury!

Dziel się z innymi:
Piotr Zieliński » Artykuł– Garbage Collector, cz. I

Sztuka programowania 1293 dni, 5 godzin, 25 minut temu pzielinski 109 rozwiń

Pewnie każdy na swojej ścieżce programistycznej spotkał się z klasą abstrakcyjną. Wrzucamy tam kod, który zdaje się być domyślną implementacją pewnej grupy klas i szkoda nam kopiować tego zachowania do każdej z nich osobna. Skoro wszystkie zachowują się podobny sposób, czasem tylko dodając coś od siebie, to warto wykorzystać dziedziczenie i napisać mniej (DRY).

Dziel się z innymi:
jstadnicki: Testowanie klas abstrakcyjnych

Sztuka programowania 1296 dni, 4 godziny, 4 minuty temu http://pawlos.blogspot.com/ 223 rozwiń

Biblioteka TPL istnieje już od jakiegoś czasu i raczej jest znana dla większości programistów. W .NET 4.5 Microsoft poszedł jednak o kilka kroków do przodu i dostarczył tzw. TPL DataFlows. Jest on oparty oczywiście na bibliotece TPL, dostarcza jednak kilka bardzo ciekawych klas, przydatnych do modelowania współbieżnego. Czasami algorytmy składają się z kilku “bloków”, które należy ze sobą synchronizować. TPL DataFlows służy do modelowania przepływu między różnymi wątkami. We wczesnych wersjach .NET byliś...

Dziel się z innymi:
Piotr Zieliński » TPL Dataflows–wprowadzenie (część I)

Sztuka programowania 1298 dni, 19 godzin, 50 minut temu pzielinski 164 rozwiń

Pisząc testy jednostkowe dość często spodziewamy się identycznego zachowania w różnych testowanych scenariuszach. “Gdy zajdzie X, ma wydarzyć się A, B i C”. Z kolei “gdy zajdzie Y, ma wydarzyć się A, B i D”. W takich przypadkach, wykorzystując standardowe biblioteki do unit testów, mamy do wyboru kilka rozwiązań: wspólna klasa bazowa współdzielone metody “asercji” w ramach jednej klasy copy/paste testów pomiędzy klasami … pewnie jeszcze coś i...

Dziel się z innymi:
"Test reuse" w MSpec | Maciej Aniserowicz o programowaniu

Sztuka programowania 1300 dni, 1 godzinę, 42 minuty temu http://pawlos.blogspot.com/ 100 rozwiń

Serialziacja jest dobrze znanym tematem. Jakiś czas temu pisałem, jak oddelegować serializację jednego obiektu do drugiego. Pokazałem to na przykładzie wzorca singleton – w tamtym przypadku chcieliśmy oddelegować serializację do IObjectReference, który zwracał po prostu zawsze tą samą instancję. Dziś trochę inny scenariusz. Załóżmy, że w plikach, zawsze chcemy trzymać czas w UTC a nie w konkretnej strefie. Ponadto nie mamy dostępu ani do kodu źródłowego DateTime ani nie chcemy korzystać z DateTimeOffset...

Tagi: serializacja
Dziel się z innymi:
Piotr Zieliński » Serializacja–typy Surrogate

Sztuka programowania 1302 dni, 5 godzin, 40 minut temu pzielinski 147 rozwiń

Kilka wpisów wcześniej pisałem, dlaczego należy unikać funkcji Suspend. Dzisiaj przyszła kolej na metodę Abort, która również jest sygnałem, że zaprojektowana architektura jest po prostu zła. Aby zrozumieć, dlaczego Abort jest tak niebezpieczny, należy poznać najpierw zasadę jego działania. Wywołując Abort, wyrzucany jest tzw. asynchroniczny wyjątek ThreadAbortException. Dlaczego asynchroniczny? Ponieważ może on zostać wstrzyknięty w “dowolne” miejsce w kodzie. Istnieją pewne zasady, kiedy dokładnie może...

Tagi: Thread.Abort
Dziel się z innymi:
Piotr Zieliński » Code Review: Dlaczego nie należy korzystać z Thread.Abort

Sztuka programowania 1304 dni, 22 godziny, 55 minut temu pzielinski 134 rozwiń

W Visual Studio wersji Ultimate są narzędzia do analizowania architektury. Jednak są ludzie, którzy zamiast wydawać pieniądze na ultimate-a wolą iść do salonu i kupić sobie auto albo dwa. Jak jednak poradzić sobie bez diagramu warstw? Wystarczy pooglądać usingi. Single Responsibility Principle mówi, że klasa powinna robić jedną rzecz, mieć jedną odpowiedzialność. Jeśli ma jedną odpowiedzialność to nie powinna raczej grzebać we wszystkich warstwach. Wątpliwe jest aby klasa, która ma jedną ...

Źródło: www.benedykt.net
Dziel się z innymi:
using - papierek lakmusowy Twojej architektury | arek online | Arkadiusz Benedykt

Sztuka programowania 1308 dni, 5 godzin, 11 minut temu http://pawlos.blogspot.com/ 272 rozwiń

Na wstępnie od razu chciałbym dodać, że dla większości aplikacji, dalsze rozważania w tym poście nie mają sensu i należy to traktować jako ciekawostkę. Dla części systemów może to jednak być ważne a mianowicie dla oprogramowania działającego w “czasie rzeczywistym”, wymagającego low-latency. Dzisiejszy wpis może powstał trochę zbyt wcześnie ale wkrótce powinna pojawić się druga część mojego artykułu o GC, który będzie dotyczył różnych trybów kolekcji. Jednym z tych trybów jest wykonywanie kolekcji w spo...

Dziel się z innymi:
Piotr Zieliński » Powiadomienia o kolekcjach GC.

Sztuka programowania 1308 dni, 5 godzin, 11 minut temu pzielinski 128 rozwiń

W poprzednim poście poruszyłem temat mojego side-projectu (który BTW nie powinien zająć więcej niż 2-3 dni, ale lubię dawkować przyjemności więc pewnie jeszcze trochę to potrwa;) ) i MSpec. Teraz zobaczymy jak można w bardzo ciekawy sposób przetestować WebAPI emulując dosłownie całego requesta z kodu, co miło przejedzie przez kompletny stack i sprawdzi nie tylko logikę, ale również m.in. konfigurację routingu… a docelowo tak...

Dziel się z innymi:
Testowanie infrastruktury WebAPI z MSpec | Maciej Aniserowicz o programowaniu

Sztuka programowania 1308 dni, 21 godzin, 51 minut temu http://pawlos.blogspot.com/ 113 rozwiń

Dzisiaj znów trochę od strony teoretycznej postaram wyjaśnić jak działają priorytety wątków w systemach Windows. Każdy chyba słyszał o tym, że wątkowi można nadać priorytet. Nie każdy natomiast wie, jaki jest zakres oraz jak wygląda dokładnie ich interpretacja. Przede wszystkim mamy do czynienia z dwoma typami priorytetów, które składają się na końcową wartość używaną przez task scheduler. Pierwszy komponent dotyczy procesu i jest to tzw. klasa priorytetu. W Windows możemy wyróżnić następujące klasy:  ...

Dziel się z innymi:
Piotr Zieliński » Wielowątkowość i priorytety

Sztuka programowania 1311 dni, 11 godzin, 9 minut temu pzielinski 120 rozwiń

Każdy wątek posiada metodę Suspend, która wstrzymuje jego wykonywanie. Ktoś mógłby napisać  takiego “potworka”:class Program { staticvoid Main(string[] args) { Thread thread=new Thread(Run); thread.Start(); Thread.Sleep(1000); thread.Suspend(); Thread.Sleep(5000); thread.Resume(); } staticprivatevoid Run() { while(true) { Console.WriteLine("Running..."); } } } Używanie Suspend jest bardzo złą praktyką i może ...

Dziel się z innymi:
Piotr Zieliński » Code Review: Thread.Suspend

Sztuka programowania 1313 dni, 18 godzin, 25 minut temu pzielinski 138 rozwiń

O tym, czym jest redundacja wie chyba każdy programista. Każdy z nas wie również, że jest to zjawisko nieporządane i w większości wypadków lepiej mu zapobiegać. Ten post przeznaczę na opis przykładowego zjawiska powtórzeń w zapytaniach LINQ spotykanego w sytuacjach codziennych oraz prostym i czytelnym ich rozwiązaniu, o którym nieraz zapominamy.

Dziel się z innymi:
Simple Solutions: O redundancji w wyrażeniach LINQ

Sztuka programowania 1314 dni, 21 godzin, 42 minuty temu http://horusiath.blogspot.com/ 245 rozwiń

Pierwszy wpis na moim blogu i pierwsza część cyklu o TDD. Wprowadzenie do TDD, opis Red/Green/Refactor, wady i zalety.

Tagi: TDD
Dziel się z innymi:
Kurs TDD część 1: Wstęp | DariuszWozniak.NET

Sztuka programowania 1317 dni, 5 godzin, 16 minut temu dariuszwozniak 344 rozwiń

W .NET istnieje kilka klas, które odpowiadają mniej więcej za to samo. Przyczyna dlaczego nie ma po prostu jednej klasy a kilka, wynika z faktu, że cześć z nich była zaprojektowana z myślą o konkretnej technologii jak np. WinForms. Nie zmienia to faktu, że dla części programistów nie jest to jasne, kiedy używać konkretnego timer’a. OK, to zaczynamy. W .NET mamy następujące timer’y:System.Threading.Timer – używamy, gdy chcemy aby nasza operacja była wykonywana w osobnym wątku (z puli). Dlatego, ten timer...

Tagi: timer
Dziel się z innymi:
Piotr Zieliński » Porównanie timer’ów w .NET

Sztuka programowania 1317 dni, 5 godzin, 16 minut temu pzielinski 215 rozwiń

Krótko o tym jak i kiedy korzystać z Creation methods.

Dziel się z innymi:
Notatki programisty: Creation method, czyli słów kilka jak pozbyć się konstruktorów

Sztuka programowania 1323 dni, 5 godzin, 19 minut temu lukaszgasior 377 rozwiń

1 2... 24 25 26 27 28 29... 34 35
Accenture
Szkolenia SecurITum
Zobacz wszystkie

.NET Developer Days 2015

W tym roku ponownie jak w poprzednim jesteśmy jednym z patronów medialnych konferencji .NET Developer Days. W tym roku jednym z prelegentów będzie Scott Hanselman.  czytaj więcej
2015-07-22

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 383,4)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,87)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 383,52)

8

Damian (9 011,08)

9

danielplawgo (7 235,99)

10

arek (6 642,77)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 408,06)

15

http://jakub-flor... (3 224,66)

16

CaMeL (2 954,87)

17

jedmac (2 714,34)

18

mnikolajuk (2 596,93)

19

lkurzyniec (2 466,02)

20

FutureProcessing (2 460,11)