dotnetomaniak.pl

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

Kilka tygodni temu, w jednym z wpisów, porównałem wydajność List z LinkedList. Przykład udowodnił, że dodawanie nowych elementów w LinkedList potrafi być nawet wolniejsze niż w przypadku List. Bardzo często, programiści myślą, że to LinkedList jest lepszy do dodawania nowych elementów, ponieważ łatwiej doczepić nowy wskaźnik niż alokować ponownie pamięć (też tak kiedyś uważałem). W przypadku List jest to jednak nie do końca prawda, ponieważ List

Dziel się z innymi:
Piotr Zieliński » Wydajność: Przeglądanie elementów w List oraz LinkedList

Sztuka programowania 1304 dni, 2 godziny, 16 minut temu trismegista 161 rozwiń

Czasami można zaobserwować następujący kod:int[] firstArray = Enumerable.Range(1, 1000).ToArray(); int[] secondArray = Enumerable.Range(1, 1000).ToArray(); foreach (int item in firstArray) { Process(item); } foreach (int item in secondArray) { Process(item); } Mam na myśli sytuacje kiedy mamy kilka osobnych tablic, ale przetwarzanie ich jest takie same lub bardzo podobne. Inny przykład to przetworzenie tablicy, a potem pojedynczego elementu pochodzącego z innego źródła...

Tagi: C#, Linq, pętle
Dziel się z innymi:
Piotr Zieliński » Code Review: Scalanie pętli za pomocą LINQ

Sztuka programowania 1310 dni, 15 godzin, 42 minuty temu trismegista 208 rozwiń

Kiedyś pisałem o modyfikatorze sealed i dlaczego warto go używać jeśli chodzi o kwestie dobrych praktyk. Podobne mam zdanie co do modyfikatora virtual – używam wyłącznie jak mam takie wymagania. Zawsze zaczynam od najbardziej restrykcyjnych modyfikatorów. Klasy deklaruję jako sealed internal, a metody jako private. Nie zaznaczam metod jako virtual “na zapas”, ponieważ skoro nie są one zaprojektowane pod tym kątem to może przynieść to więcej kłopotów niż korzyści. Analogiczne zasady stosuje się np. w bezp...

Dziel się z innymi:
Piotr Zieliński » Wydajność metod wirtualnych i niewirtualnych

Sztuka programowania 1310 dni, 15 godzin, 42 minuty temu trismegista 259 rozwiń

W dzisiejszym wpisie, pokażę jaki wpływ mają klasy na zużycie pamięci. W ostatnim poście pokazałem korzyści płynące ze struktur jeśli mamy do czynienia z małymi kontenerami na dane. Najlepiej odpalmy po prostu następujący kod.

Dziel się z innymi:
Piotr Zieliński » Struktury oraz klasy– zużycie pamięci

Sztuka programowania 1314 dni, 15 godzin, 22 minuty temu http://pawlos.blogspot.com/ 233 rozwiń

Zgodnie z obietnicą wypada przedstawić drugi z rezultatów inspiracji wynikłej ze swoistego dialogu (diaBlogu ;) ) pomiędzy Krzysztofem Morcinkiem a mną. Tym razem skupię się na następującym fragmencie jego wpisu ...

Me z .NET tete-a-tete » Bacz, bo w gąszczu uogólnień – skryty – rwie uproszczeń strumień.

Sztuka programowania 1317 dni, 1 godzinę, 14 minut temu PaSkol 164 rozwiń

Wiele programistów c# zapomina, że struktury również istnieją w .NET. Mam wrażenie, że jest to konstrukcja bardziej popularna w CPP niż w C#. W praktyce jednak, wybranie struktur zamiast klas, może mieć kolosalne znaczenie jeśli chodzi o wydajność i płynność aplikacji. Nie jednokrotnie porównywałem te dwa typy obiektów na blogu więc podstaw nie będę omawiał tutaj. Przyjmuje, że każdy wie, że struktury znajdują się na stosie a obiekty klas na stercie. W poście chciałbym skupić się na następującym scenar...

Tagi: struktury
Dziel się z innymi:
Piotr Zieliński » Code Review: Kiedy lepiej używać struktury niż klasy

Sztuka programowania 1318 dni, 21 godzin, 2 minuty temu http://pawlos.blogspot.com/ 385 rozwiń

Swojego czasu zachwalałem wytrawność kodu i zapraszałem do jego degustacji. Pocieszające jest, że nikt z tego powodu nie był zdegustowany, a wręcz przeciwnie – niektórych zainspirowałem. Nie ukrywam, że lubię być inspiracją, a już uwielbiam, kiedy wynikiem tejże inspiracji jest z kolei zainspirowanie mnie. Nic tak bowiem nie pomaga poszerzaniu wiedzy, jak wymiana poglądów. W przypadku, który mam zamiar omówić, moja inspiracja jest podwójna. Na razie jednak skupię się na jednym jej aspekcie. Krzysztof Mor...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Siekierka służy na wyrębach. Nie służy do dłubania w zębach.

Sztuka programowania 1318 dni, 21 godzin, 2 minuty temu PaSkol 236 rozwiń

Dzisiaj kilka przykładów pokazujących jak operować licznikami z poziomu c#. Czytanie jakichkolwiek liczników jest bardzo proste ponieważ .NET Framework dostarcza odpowiednie klasy.

Dziel się z innymi:
Piotr Zieliński » Performance Counters – API

Sztuka programowania 1322 dni, 14 godzin, 36 minut temu http://pawlos.blogspot.com/ 193 rozwiń

… podczas rekrutacji, a zwłaszcza w codziennym kodowaniu. Jakie zna pan wzorce projektowe i proszę opisać jeden z nich? Mi też zdarzało się tutaj odpowiadać, że Singleton. Bo prosty, bo rozumiem jak działa i jakie problemy rozwiązuje.

Dziel się z innymi:
Singleton – czyli jak sobie strzelić w stopę … | Show me the code

Sztuka programowania 1326 dni, 2 godziny, 1 minutę temu http://pawlos.blogspot.com/ 435 rozwiń

Unikaj przekazywania nulli. Jeśli nie będziesz ich przekazywał nie będziesz musiał sprawdzać czy ich nie masz. Prosto powiedzieć – trudniej zrobić. Proste rzeczy to przekazywanie pustych kolekcji, Null Object Pattern. Jednak to drugie może dobrze działać dla serwisów, ale już gorzej dla Value Objects. Często pojawiającym się kodem jest wyciąganie obiektów z repozytorium. va...

Dziel się z innymi:
Null References: The Billion Dollar Mistake | Show me the code

Sztuka programowania 1327 dni, 23 godziny, 44 minuty temu http://pawlos.blogspot.com/ 271 rozwiń

Był taki smutny czas, że struktura dziedziczenia w moich testach zdecydowanie przerastała stopniem skomplikowania dziedziczenie w testowanym kodzie. A bo jedna klasa bazowa dla testów umożliwiała na przykład kontakt z prawdziwą bazą. Inna – testy z bazą in-memory. Jeszcze inna – puszczanie requestów do systemu. I tak dalej. Efekt był taki, że de facto wszystkie testy dziedziczyły ze wszystkiego. Fuj na maxa, z pryszczem jeszcze ohydnym....

Dziel się z innymi:
IUseFixture | Maciej Aniserowicz o programowaniu

Sztuka programowania 1327 dni, 23 godziny, 44 minuty temu http://pawlos.blogspot.com/ 161 rozwiń

Kilka spostrzeżeń po Krakowskim Global Day of Coderetreat 2013. Kilka spostrzeżeń o pair programming, pythonie, narzędziach itd

Dziel się z innymi:
Podsumowanie Krakowskiego Code Retreat 2013. | Show me the code

Sztuka programowania 1332 dni, 3 godziny, 49 minut temu http://chrisseroka.wordpres... 160 rozwiń

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. Termin TDD (http://pl.wikipedia.org/wiki/Test-dri...) 2. Refaktoryzacja Link do kodu zrodlowego refaktoryzowanego w ScreenCascie: https://github.com/pawelklimczyk/ScreenCasts

Przykladowa Refaktoryzacja Kodu - ScreenCast cz.3

Sztuka programowania 1332 dni, 3 godziny, 49 minut temu klm_ 36 rozwiń

ScreenCast pokazuje przygotowanie testow regresyjnych prezd refaktoryzacja 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 Resharper (http://www.jetbrains.com/resharper/) 2. Biblioteka nUnit (http://www.nunit.org) 3. Testy regresyjne Link do kodu zrodlowego refaktoryzowanego w ScreenCascie: https://github.com/pawelklimczyk/ScreenCasts

Przykladowa Refaktoryzacja Kodu - ScreenCast cz.1

Sztuka programowania 1332 dni, 3 godziny, 49 minut temu klm_ 199 rozwiń

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 1332 dni, 3 godziny, 49 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 1340 dni, 19 godzin, 47 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 1340 dni, 19 godzin, 47 minut temu http://pawlos.blogspot.com/ 101 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 1343 dni, 19 godzin, 40 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 1347 dni, 19 godzin, 20 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 1350 dni, 1 godzinę, 45 minut temu trismegista 248 rozwiń

1 2... 24 25 26 27 28 29... 39 40
Szkolenia SecurITum

wrzesień

08.
BBQ4IT
Bielsko-Biała
14.
devConf
Kraków
20.
Dodaj nowe Zobacz wszystkie

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 792,5)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,87)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 386,33)

8

Damian (9 116,11)

9

danielplawgo (7 235,99)

10

arek (6 807,95)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 643,06)

15

jedmac (3 318,39)

16

spetz (3 243,3)

17

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

18

CaMeL (2 954,87)

19

lkurzyniec (2 672,96)

20

dpawlukiewicz (2 634,95)