Przy okazji codziennej prasówki natknąłem się na ten artykuł na temat wydajności pętli for w JavaScript'cie dla różnych przeglądarek. W skrócie chodzi o to czy powinniśmy pisać pętlą for tak...
Strona głównaUżytkownik
Paweł Łukasik | użytkownik
Sztuka programowania 3622 dni, 14 godzin, 7 minut temu 437 źrodło rozwiń
Tuż przed końcem roku Michał opublikował post na temat swojego teamu. Szczerze, jak jeszcze nie czytaliście, to przeczytajcie a potem wróćcie tutaj :) No już to tylko 5-8min, nie pożałujecie :) Ok, już po lekturze? Super. To teraz wróćcie z powrotem i jeszcze raz przeczytajcie akapit poświęcony Feedbackowi. Śmiało, to tylko 2 min czytania. Już? Super. To teraz zapamiętajcie to co przeczytaliście u Michała. Bo feedbac...
Kolejny post o Unity 3d musi jeszcze chwilę poczekać. Niedawno zdobyłem nową dev-zabawkę (ekhm!) a mianowicie licencję na PostSharp. Gdyby ktoś nie wiedział – jest to narzędzie do programowania w stylu AOP – aspektowym spojrzeniu świata. Czym są aspekty nie będę pisał – można znaleźć na ten temat sporo informacji. Z lokalnego podwórka polecam DevTalk 02 czy tagi AOP lub PostSharp na dotnetomaniak.pl.Unboxing Samo narzędzie instaluje się bezproblemowo oraz fajnie się integruje z Visual Studio...
Pomimo stosowania TDD każdemu z nas od czasu do czasu zdarza się debugować kod. Czy to lubimy, czy nie, czasem po prostu nie ma innego wyjścia. Ułatwiajmy sobie (i osobom, które odziedziczą kiedyś ten kod) debugowanie przez dodawanie ToString() do wszystkich swoich klas.
Sztuka programowania 3646 dni, 21 godzin, 4 minuty temu 314 źrodło rozwiń
Podczas kompilacji programu z nienacka otrzymuje komunikat: Kluczowa informacja jaką powinniśmy dostrzec to: Cannot find assembly ‘system.web.http, version 5.0.0.0 i found file (…) with identity ‘system.web.http’ wersja 5.2.2
O korzyściach z modyfikatora sealed, od strony projektowej pisałem już tutaj. Dzisiaj postanowiłem jednak napisać prosty program, który pokaże nam czy faktycznie są jakieś różnice wydajnościowe. Oczywiście jest to raczej ciekawostka dla ludzi zajmujących się c# internals. Jeśli zależy nam na optymalizacji, zawsze zaczynajmy od ulepszenia samego algorytmu (zmniejszenia jego złożoności), a w ostateczności sięgajmy po mikro-optymalizacje. Warto stosować wspominane wskazówki, ale ze względu na dobre praktyk...
Sztuka programowania 3634 dni, 12 godzin, 37 minut temu 243 źrodło rozwiń
W moich zamierzeniach ten temat miał być omówiony w jednej części, ale duża ilość komentarzy, pytań i uwag spowodowała, że powstała część druga. Istnienie drugiej (nieplanowanej) części posta mogłoby sugerować, że chcę się wycofać z części poglądów, które przedstawiłem w części pierwszej. Częściowo tak, ale nie w tę stronę co myślicie. Rzeczywiście zmieniłem zdanie, od dzisiaj będę pisał ToString() jeszcze częściej, tzn. dla każdej swojej klasy i struktury, nawet jeżeli tworzyłbym bibliotekę dla klienta...
Sztuka programowania 3638 dni, 21 godzin temu 289 źrodło rozwiń
Czwarty odcinek to badanie nowych gruntów: wyjście poza .NET! Moim gościem jest Sławomir Sobótka: założyciel firmy Bottega IT Solutions, trener, blogger, architekt. Wywodzi się ze środowiska Javy i można go spotkać na bardzo wielu konferencjach i grupach związanych z tą właśnie technologią. Rozprawiamy o Domain Driven Design, a Sławek jest jednym z najbardziej rozpoznawalnych polskich ekspertów w tym obszarze. Podczas rozmowy opowiada nam jakie korzyś...
Do eksportu danych jest masa pluginów, i jak coś macie to trzymajcie się tego :) ja nie miałem, płacić za wersję 2012 nie chciałem a i też nie miałbym możliwości jak tego zainstalować na serwerze :) Więc musiałem znaleźć inny sposób. I co mnie zaskoczyło sposób był pod ręką cały czas, ale trzeba było o nim „wiedzieć” (opcja na pewno istnieje od SSMS 2008) :)...
Bazy danych i XML 3654 dni, 21 godzin, 38 minut temu 264 źrodło rozwiń
Continuous Integration, Code Reviews, Test/Behaviour Driven Development, Automated User Acceptance Tests, FxCop, StyleCop, NDepend, Resharper i wiele wiele innych technik/narzędzi wykorzystywanych tylko po to, aby tworzyć lepszy kod. A często zapominamy, lub nie wiemy, o podstawowych sposobach na zapewnienie lepszej jakości kodu. Dzisiaj pokażę jak osiągnąć lepszy kod w 4 kliknięciach.
Sztuka programowania 3695 dni, 13 godzin, 57 minut temu 473 źrodło rozwiń
O TDD napisano wiele, sam napisałem całkiem sporo i mówiłem całkiem sporo podczas kilku prelekcji. Używam TDD od ponad 5 lat już. Powinienem być super mega ninja pro TDD master. Mimo tego jakiś czas temu, pisząc bardzo prosty kod, na prawdę super prosty, naszła mnie taka refleksja: Jest zielone, jest ok. [Fact] public void Example_test() ...
Sztuka programowania 3696 dni, 7 godzin, 31 minut temu 248 źrodło rozwiń
Pamiętam jak dawnymi czasami każde exception przyprawiało mnie o gęsią skórkę. Szukałem sposobu jak tu je wyeliminować (choć już wtedy wiedziałem, że niektórych źródeł nie wyeliminuje nigdy). Dziś z perspektywy czasu wiem jaki byłem głupi. Czasami exception to rzecz, o której wprost marzymy. A jak to z marzeniami bywa rzadko się one spełniają. Kilka “ciekawszych” problemów z którymi się zetknąłem:1. Backup bazy danych działa wybiórczo Wdrażając oprogramowanie u klienta liczyłem tylko na jedno ni...
Sztuka programowania 3704 dni, 17 godzin, 5 minut temu 398 źrodło rozwiń
23/10/20141 Commentdevtalk, jakub gutkowski, javascript, news, podcastprocentpro Od kiedy zacząłem świadomie organizować swój czas, zajęcia i – przede wszystkim – myśli (o czym można poczytać pod tagiem GTD), żaden mój pomysł się nie “marnuje”. Nic magicznie nie “znika”. Wszystko co wymyślę – ląduje w OneNote. Moja głowa okazuje się dość sprawnie działającym, póki co, narzędziem, bo listę “todo kiedyś” mam wypchaną pomysłami. A zaleta trzymania wszystkiego w ON jest taka, że co jakiś czas do pomysłów ...
How to make your 'debugging life' easier with DebuggerDisplay attribute
Sztuka programowania 3702 dni, 21 godzin, 49 minut temu 161 źrodło rozwiń
W nowej wersji c# zdecydowano się zezwolić na konstruktory bezparametrowe w strukturach danych. Kiedyś pisałem dlaczego, nie można było ich definiować w poprzednich wersjach języka. Chodziło po prostu o wydajność, szczególnie podczas alokacji tablic danych. Dodam, że w CLR zawsze było dozwolone posiadanie konstruktorów bezparametrowych i wyłącznie c# na to nie zezwalał. W C# 6.0 możliwe już jest napisanie własnego konstruktora bez parametrów, ale wciąż należy pamiętać o możliwych problemach wydajnościow...
Hey all I would like to invite you to second edition of dotnetconfPL. If you hear about it first time then check out last edition. As you may guess this conference is in Polish, we were inspired by global edition, so we decided to do it in Polish. At this year we have few more licences to raffle during our event, six resharper and three ncrunch. Thank for all sponsors! This edition has seven technical oriented talks and one soft oriented talk, we tried, and we want to exp...
Słowo dynamic jest często nadużywane prowadząc do trudno czytelnego kodu. Innym problemem jest wydajność – programiści często nie wiedzą jaki overhead za sobą ponosi każde użycie dynamic. Zacznijmy eksperymentowanie z IL:staticvoid Main(string[] args) { dynamic text ="Hello world"; } Wygenerowany IL:// Method begins at RVA 0x2050 // Code size 8 (0x8).maxstack 1 .entrypoint .locals init ( [0] object text ) IL0000: nop IL0001: ldstr "Hello world" IL0006: stloc.0 IL0007: ret Nic nadzwyczajn...
Nieraz zdarza się, że musimy samodzielnie napisać jakąś klasę implementującą interfejs IDisposable. Wszyscy na pewno znają wzorzec implementowania Dispose. Osobiście proponuję inną implementację.
Jestem geekiem(a może nerdem?) jeśli chodzi o nowe technologię. Po prostu je uwielbiam, ale mimo tego nie mogłem przekonać się do jednego (i to w cale nie do takiej nowości). Nie mogłem przekonać się do laptopa. Po prostu pogardzałem takim sprzętem. Liczyła się dla mnie tylko stacjonarka wraz z jej nieposkromioną (do czasu) mocą. Aż pewnego dnia coś we mnie pękło: Muszę kupić sobie laptopa Wzbraniałem się przed tym długi czas, ale w końcu nie wytrzymałem. Jadę do domu na święta a muszę mieć dost...
Dobrze nazwana klasa, dobrze nazwana zmienna, dobrze nazwana tabela to połowa sukcesu w naszym zawodzie. Czytelny kod zdradzający już na pierwszy rzut oka intencje autora to skarb. Nie trzeba się głowić OCB, WTF, ot czytamy i wiemy co to to robić powinno. Jeśli jeszcze to robi to po prostu miodzik.Dobra nazwa to podstawa! No i taka sytuacja,...