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”.
Strona głównaUżytkownik
mmichalf | użytkownik
Sztuka programowania 4033 dni, 1 minutę temu 392 źrodło 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...
Sztuka programowania 4030 dni, 9 godzin, 38 minut temu 98 źrodło rozwiń
The dynamic keyword has been part of the C# language for quite a while now. I thought I know it well, yet I stumbled upon an interesting case that surprised me.The code that works Here's a piece of code that I started with. This code works like you would expect.
Sztuka programowania 4030 dni, 9 godzin, 38 minut temu 115 źrodło rozwiń
We use Kendo-UI in a project we are developing at work and it’s great if you don’t have to customize it a lot. Otherwise I’m pretty sure you will encounter many strange problems, like me. My current tasks connected with UI layer of the application so I’m struggling with many different problems. Today I’ll describe one of them and present my own solution.
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...
Sztuka programowania 4030 dni, 9 godzin, 38 minut temu 251 źrodło 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
Sztuka programowania 4028 dni, 3 godziny, 13 minut temu 122 źrodło rozwiń
Ja wiem, że programistyczny świat coraz bardziej zagarniany jest przez różnego rodzaju ORM-y i – co za tym idzie – czysty SQL jest używany coraz rzadziej. Może jednak właśnie z tego powodu warto poruszać związane z nim tematy, aby ci którzy doraźnie lub incydentalnie w nim programują trzymali się jednak pewnych zasad i konwencji. W tym wpisie chciałbym jedną z takich konwencji przybliżyć i tym samym być może zachęcić osoby, które mają do czynienia z SQL-em do jej stosowania. Wspomniana konwencja...
Bazy danych i XML 4027 dni, 52 minuty temu 229 źrodło rozwiń
Pisząc aplikacje na Windows Phone często chcemy dać użytkownikowi możliwość przypnięcia jakiegoś elementu do menu start. Problem pojawia się, gdy chcemy to sformułowanie przetłumaczyć na inny język tak, aby było zgodne z obowiązujym nazewnictwem WP. Żywi lub automatyczni tłumacze nie do końca sobie z tym radzą, dlatego też zebrałem oficjalne określenia polecenia "przypnij do ekranu startowego" z kilku języków. Może się komuś przyda, mnie na pewno! Dopisujcie kolejne języki w komentarzach :) Angiel...
Mobile development 4021 dni, 3 godziny, 40 minut temu 135 źrodło 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
Sztuka programowania 4024 dni, 3 godziny, 33 minuty temu 232 źrodło 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.
Sztuka programowania 4021 dni, 3 godziny, 40 minut temu 159 źrodło 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...
Sztuka programowania 4021 dni, 3 godziny, 40 minut temu 105 źrodło rozwiń
…humans make mistakes, but the answer is not to add additional humans to the process. Rather, the solution is that the entire deployment process should be automated, with automated deployment and automated acceptance tests. No właśnie, ludzie robią błędy, a jeśli dodamy więcej ludzi do procesu to szansa na zmniejszenie ilości błędów jest delikatnie mówiąc mała, bardzo mała, taka tyci tyci. Ostatnie dwa wpisy były poświęcone debugowaniu a dzisiaj – po przerwie – wrzucam arcy ciekawy artyk...
Opis tego, jak stworzyć logikę dla aplikacji Windows Phone i Windows Store raz i wykorzystać ją w obu projektach.
Mobile development 4017 dni, 22 godziny, 40 minut temu 162 źrodło rozwiń
Dlaczego programiści nie odchodzą skutecznie? Inspiracją do tego tekstu jest artykuł pod niewątpliwie bardzo ciekawym tytułem "Dlaczego programiści odchodzą?". Niestety na nośnym tytule się skończyło, bo treść jest już nieadekwatna - opiera się na wideo prezentacji Pana z innej bo nie polskiej rzeczywistości, a wszystko przetworzone na polski przez młodego pracowitego człowieka, który staje się szefem i widzi ten amerykański "big picture" dla polsk...