dotnetomaniak.pl

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

ScreenCast pokzuje podstawowe techniki refaktoryzacji kodu na przykładzie małego programu. Ten odcinek jest jednym z serii pt. "Przykladowa Refaktoryzcja Kodu". W tym ScreenCasie poruszyłem nast. zagadnienia: 1. Narzedzie NCrunch (http://www.ncruchn.net/) 2. Termin Cyclomatic Complexity (http://en.wikipedia.org/wiki/Cyclomat...) 3. Refaktoryzacja Link do kodu zrodlowego refaktoryzowanego w ScreenCascie: https://github.com/pawelklimczyk/ScreenCasts

Przykladowa Refaktoryzacja Kodu - ScreenCast cz.2

Sztuka programowania 1075 dni, 11 godzin, 39 minut temu klm_ 47 rozwiń

W dzisiejszym poście pokażę kilka błędów popełnianych podczas próby oszacowania efektów optymalizacji a raczej mikro-optymaliacji. Częściowo popełniałem te błędy na moim blogu, ale zawsze wykonywałem pomiary w pętli, co niwelowało te drobne różnice.

Piotr Zieliński » Testy wydajnościowe: Zwalnianie pamięci oraz JIT

Sztuka programowania 1084 dni, 3 godziny, 36 minut temu http://pawlos.blogspot.com/ 158 rozwiń

Until now we had many excuses for not writing integration tests:we prefer unit tests over integration testsour business logic (aka services) is separated and thoroughly testedwe keep our ontrollers on a dietUI consists mostly of standard elements (aka widgets) which are tested on their ownwe are lazy But there was still too much space for error. From time to time a seemingly innocent change in Razor view (or HTML helper, or filter, or “something completely irrelevant”) unexpectedly broke one of the page...

Dziel się z innymi:
[EN] How To Put Your Toe Into ASP.NET MVC Integration Testing | Just A Programmer

Sztuka programowania 1084 dni, 3 godziny, 36 minut temu http://pawlos.blogspot.com/ 100 rozwiń

List jest bardzo popularną kolekcją danych, niestety często źle używaną. Kiedyś pisałem, że jeśli ma się jakiekolwiek informację o rozmiarze kolekcji, warto w konstruktorze przekazać początkowy rozmiar. Temat jednak będzie dotyczył porównania List

Tagi: LinkedList, List
Dziel się z innymi:
Piotr Zieliński » Code Review: Jak to jest z List i LinkedList?

Sztuka programowania 1087 dni, 3 godziny, 30 minut temu http://pawlos.blogspot.com/ 228 rozwiń

W ostatnich wpisach, pokazałem dwa różne podejścia wykonywania pętli równolegle. Każda z nich wciąż ma wady, głównie związane z sytuacją gdzie część logiki blokuje wątki. W tym poście, pokażę bardziej dynamiczne podejście. Żaden z wątków nie będzie miał z góry przydzielonych elementów na których musi pracować. Zacznijmy po prostu od kodu:privatestaticvoid For(Action

Piotr Zieliński » Pętla wykonywana równolegle–część III

Sztuka programowania 1091 dni, 3 godziny, 10 minut temu http://pawlos.blogspot.com/ 120 rozwiń

Zwyczajny, często widziany kod który parsuje stringa na inta. int Foo(string value) { var pageId = string.IsNullOrEmpty(value) ? 0 : int.Parse(value); return pageId; } W zależności od tego czy jesteśmy pewni, że przekazany string ładnie się sparsuje, powyższa funkcja może wystarczyć lub nie. Fakt, że dostajemy string już mówi, że coś może pójść nie tak. Gdybyśmy mogli przekazać int...

Tagi: Parse, try
Dziel się z innymi:
Bezpieczniej z TryParse() | Show me the code

Sztuka programowania 1093 dni, 9 godzin, 35 minut temu trismegista 248 rozwiń

The dynamic key­word has been part of the C# lan­guage for quite a while now. I thought I know it well, yet I stum­bled upon an inter­est­ing case that sur­prised me.The code that works Here's a piece of code that I started with. This code works like you would expect.

Tagi: C#, dynamic
Źródło: kozmic.net
Dziel się z innymi:
[EN] On C# dynamic and calling base type’s methods | Krzysztof Koźmic on software

Sztuka programowania 1093 dni, 9 godzin, 35 minut temu trismegista 113 rozwiń

Zrównoleglenie danego algorytmu to jeszcze nie koniec wyzwań. Pytanie jakie należy postawić, to jak wiele stworzyć wątków? Musimy wziąć pod uwagę synchronizacje i problemy z tym związane. Jeśli mamy tylko 4 procesory, wtedy tworzenie więcej niż 4 wątków nie przyśpieszy obliczeń, jeśli wszystkie one zawsze będą zajęte. Tworzenie większej liczy wątków niż CPU, ma sens wyłącznie jak część z nich musi czekać na jakieś dane i tym samym, nie wykorzystują one w pełni cykli CPU. Liczba wątków, zależy od tego j...

Piotr Zieliński » Jak dobrać stopień zrównoleglenia?

Sztuka programowania 1093 dni, 9 godzin, 35 minut temu trismegista 91 rozwiń

Po ponad miesiącu od ostatniego wpisu (niestety, mimo chęci, nie mogłem znaleźć chwili wolnego czasu) poruszę dzisiaj temat jednego z najczęściej używanych wzorców projektowych – Factory Method. Przy użyciu tego wzorca, możemy w prosty sposób zaimplementować funkcjonalność związaną z wytwarzaniem konkretnych “produktów” przez konkretne “fabryki”.

Dziel się z innymi:
Wzorzec Factory Method

Sztuka programowania 1095 dni, 23 godziny, 57 minut temu jedmac 383 rozwiń

Niedawno w projekcie pisałem małą apkę która wykonywała pewne działanie, które muszą być uruchamiane cyklicznie. W celu uzyskania dostępu do katalogu aplikacji użyłem zmiennej  System.Environment.CurrentDirectory  . Wszystko działało podczas debugowania. Jakies było moje zdziwienie, gdy okazało się, że zmienna ta wskazuje na katalog C:\Windows\System32\  podczas uruchamiania procesu przez Task Scheluder, zamiast katalogu aplikacji. Po długich lecz owocnych :) poszukiwaniach udało mi się znaleźć rozwi...

Dziel się z innymi:
Jedyny i niezawodny sposób na otrzymanie bieżącego katalogu ~ Programowanie i okolice

Sztuka programowania 1096 dni, 10 godzin, 29 minut temu ozgrozo 325 rozwiń

W poprzednim poście pisałem  o statycznej dekompozycji tablicy na kilka wątków. Główną wadą podejścia było przypuszczenie, że wszystkie iteracje są tak samo skomplikowane. W niektórych algorytmach należy znaleźć element spełniający podane wymagania. Wyobraźmy sobie, że mamy 100 elementową tablicę i dzielimy ją na 10 wątków. Ponadto element szukany znajduje się pod indeksem 9. Wniosek taki, że NIC nie zyskamy ze zrównoleglenia. Dziewięć wątków będzie szukało w złym miejscu, a pierwszy z nich będzie wyko...

Dziel się z innymi:
Piotr Zieliński » Pętla wykonywana równolegle–część II

Kiedyś przeczytałem o antypaternie jakim jest tworzenie nowego typu wyjątku, który jest per aktualny projekt, czyli np. GitHubException, ktory dziedziczy z System.Exception i nie dodaje własnych pól ani zachowania. Tworzymy go ponieważ wszystko co już jest nie pasuje nam, a wiadomo, że rzucanie Exception też jest złem. Taki wyjątek nic nie wnosi. Łatwo powiedzi...

Rzucanie własnych wyjątków specyficznych dla aplikacji | Show me the code

Pokazany sposób tworzenia prostego kontenera IoC w C#.

Tagi: C#, DI, IoC
Źródło: www.mmweb.pl
Dziel się z innymi:
C# – piszemy prosty kontener IoC

Sztuka programowania 1102 dni, 8 godzin, 48 minut temu matti 679 rozwiń

Chciałem przypomnieć prezentację Pawła Łukasika zatytułowaną Kurs programowania w C# – 24. Wzorce projektowe, która została nagrana 1,5 roku temu na VirtualStudy. Dużo się z niej nauczyłem zwłaszcza o antyzworcach. Ostatecznie pytanie o wzorce na pewno pojawi się na rozmowie o pracę, jeśli ktoś ma wątpliwości czy warto. Chociaż fakt lepszego zrozumienia jednego z najważniejszych pojęć powinien wystarczyć. Poniższy ry...

Wzorce i antywzorce projektowe w C# | Show me the code

Sztuka programowania 1102 dni, 8 godzin, 48 minut temu http://pawlos.blogspot.com/ 614 rozwiń

Czasy kiedy wszystkie komunikaty błędów wyrzucaliśmy z kodu przez okno modalne alert mam nadzieje, że już dawno minęły. Dzisiaj mamy narzędzia dla programistów, które w mniej inwazyjny sposób potrafią zaadresować potrzebę sprawdzenia co w programie się dzieje na bieżąco.

Źródło: marcinborecki.pl
Dziel się z innymi:
IE 11 DEV–informacje, błędy, ostrzeżenia w konsoli | Marcin Borecki - Making a difference everyday

Sztuka programowania 1102 dni, 23 godziny, 52 minuty temu mborecki 93 rozwiń

KLOC (ang. Kilo Lines Of Code) to bardzo stara miara złożoności programów na podstawie liczby linii kodu. Z pewnością ma wiele wad, bo jak porównywać kod w C/C++ z kodem w Java czy C#. Czy jako linie kody powinno liczyć się komentarze lub importy przestrzeni nazw, co z kodem generowanym automatycznie itd. Wszystko to prawda, ale osobiście uważam, że ta miara jednak coś mówi. Ostatnio natknąłem się na bardzo ciekawe dane dotyczące liczby błędów/KLOC.

Tagi: błędy, kloc, metryki
Dziel się z innymi:
Michał Komorowski: Liczba błędów/KLOC

Sztuka programowania 1103 dni, 22 godziny, 14 minut temu http://pawlos.blogspot.com/ 139 rozwiń

W tej części opisane zostaną dobre i złe praktyki stosowane przy pisaniu testów jednostkowych. Co ciekawe, praktyki te odbiegają niekiedy od ogólnie przyjętych założeń i standardów kodowania. Przykładem może być zasada DRY—Don’t Repeat Yourself. W TDD kopiuj-wklej to niemal chleb powszedni; w TDD możemy stosować zasadę zgoła odwrotną—Do Repeat Yourself! Taka odrębność wynika z tego, że w kodzie testowym musimy zminimalizować prawdopodobieństwo pojawienia się błędu. Kod tes...

Tagi: TDD
Dziel się z innymi:
Kurs TDD część 6: Dobre i złe praktyki testów jednostkowych | DariuszWozniak.NET

Sztuka programowania 1105 dni, 20 godzin, 58 minut temu dariuszwozniak 399 rozwiń

W .NET istnieje metoda do wykonywania pętli równolegle. Pisałem ogólne o niej kilka miesięcy temu. Temat jest jednak dużo bardziej skomplikowany i z pewnością należy zrozumieć różne podejścia do problemu. Przed zrównolegleniem pętli, należy zastanowić się czy na prawdę przyniesie to pozytywne efekty. Złe rozpoznanie przypadku spowoduje znaczącą degradację wydajności. Zastanówmy się na co należy zwracać uwagę:Czy poszczególne elementy tablicy można przetwarzać w sposób bezpieczny (thread-safe). Jeśli nie...

Dziel się z innymi:
Piotr Zieliński » Pętla wykonywana równolegle–statyczne przydzielanie wątków

Sztuka programowania 1105 dni, 20 godzin, 58 minut temu http://pawlos.blogspot.com/ 163 rozwiń

W .NET można anulować wątki za pomocą tokena. Oczywiście nie należy używać metody Abort czy Cancel, ale o tym już wiele razy pisałem – w skrócie nie wiadomo kiedy taki wątek zostanie przerwany. Użycie tokena jest proste tzn. (przykład MSDN):class Program { staticvoid Main() { var tokenSource2 =new CancellationTokenSource(); CancellationToken ct = tokenSource2.Token; var task = Task.Factory.StartNew(() => { // Were we already canceled? ct.T...

Dziel się z innymi:
Piotr Zieliński » Anulowanie wątków a synchronizacja

Sztuka programowania 1108 dni, 10 godzin, 27 minut temu http://pawlos.blogspot.com/ 117 rozwiń

Nie wszystko co kwacze to kaczka Czasem rzeczy są podobne ale jest to przypadkowe podobieństwo. To są w rzeczywistości różne rzeczy Przykład z życia, akurat bardzo niskopoziomowy. Potrzebowałem posklejać takie jakby “ścieżki”, separatorem był underscore (najlepsze polskie tłumaczenie to podłoga) “”. Przykładowo contentcolors_red. Rzuciło mi się, że mamy już napisany kod metody System.IO.Path.Combine(). Mo...

Dziel się z innymi:
Nie przesadzić z DRY | Show me the code

Sztuka programowania 1110 dni, 21 godzin, 19 minut temu http://pawlos.blogspot.com/ 292 rozwiń

1 2... 19 20 21 22 23 24... 34 35
Accenture
Szkolenia SecurITum

grudzień

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 381,47)

8

Damian (9 011,08)

9

danielplawgo (7 235,99)

10

arek (6 642,76)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 398,06)

15

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

16

CaMeL (2 954,87)

17

jedmac (2 659,34)

18

mnikolajuk (2 596,93)

19

lkurzyniec (2 466,02)

20

FutureProcessing (2 455,11)