Trochę mnie ostatnio naszło na nietechniczne przemyślenia… Przyznam, że ten i poprzedni wpis o Code Review zainspirowane zostały trochę przez to, że do mojego zespołu w pracy dołączyło kilka nowych osób z kompletnie innymi doświadczeniami z poprzednim firm. Widzę to dobrze przy przeglądach kodu tych osób i widzę jak potrafią mieć odmienne nawyki dotyczące formatowania kodu, nazewnictwa zmiennych czy właśnie pewnych konwencji programistycznych. I właśnie przemyśleniami na ten temat chciałem się dziś z Wam...
Strona głównaUżytkownik
jedmac | użytkownik
Sztuka programowania 3915 dni, 21 godzin, 11 minut temu 310 źrodło rozwiń
Zapewne większość z Was miała do czynienia z aplikacjami pisanymi przy wykorzystaniu ASP.NET MVC. Zapewne pracowaliście nad jakimś projektem, im bliżej końca, tym co raz częściej wkradają się błędy, aplikacja jest na tyle duża, że łatwo wstawić przez przypadek do widoku jakieś duperele, jest mnóstwo resource’ów, które bardzo ciężko ogarnąć, mapowanie view-model to jakiś koszmar. Brzmi źle? Wcale nie musi tak być. Oto kilka porad (subiektywnych), w jaki sposób możemy uniknąć bałaganu:
Sztuka programowania 3915 dni, 21 godzin, 11 minut temu 406 źrodło rozwiń
This article describes some of the pitfalls that one may encounter while working with string in a high frequency environment. Most notably it exposes some of the problems with string Intern Pool.
Po co, na co i dlaczego? We wpisie o absurdach edukacji wspomniałem o książce “ostatni wykład”. Jej autor wspomina o podstawach. Jak bardzo są ważne. Jak wpływają na nasze dalsze życie zawodowe. Tak, jak nie można postawić domu, na nietrwałych fundamentach, tak nie można zostać dobrym programistom bez znajomości podstaw. Większość książek programistycznych zaczyna się od omówienia co to jest obiekt, polimorfizm i dziedziczenie. Na zagadnienia takie jak stos, sterta, szerokość szyny adresowej, architekt...
I think almost every .NET developer is familiar with INotifyPropertyChanged interface. Typical implementation of this interface looks more or less like that: public class NotifyPropertyBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged( Expression
This article is a continuation of my previous article. It shows how to create a custom intern pool that does not fragment the LOH and how to further improve it.
Jakiś czas temu zdarzyło mi się hobbystycznie wykonać kilka projektów desktopowych przy wykorzystaniu WPF. Jako, że jestem typowym programistą web’owym, moja wiedza na temat bibliotek do WPF’a była znikoma...
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...
Sztuka programowania 3960 dni, 17 godzin, 59 minut temu 211 źrodło rozwiń
Porównanie kilku grup programistów, z przymrużeniem oka ;)
Kryptografia – sztuka pisania szyfrem, zrozumiałym tylko dla wtajemniczonych – jest rozwijana od zarania dziejów... Niniejszy artykuł stanowi wprowadzenie do tematu, zapoznaje czytelnika z podstawowymi pojęciami związanymi z kryptografią.
Druga część artykułu o połączeniu logiki aplikacji Windows Phone i Windows Store. Tym razem opis wstrzykiwania implementacji interfejsów łączących różnice między tymi dwoma platformami.
Mobile development 3946 dni, 23 godziny, 14 minut temu 237 źrodło rozwiń
W jednym z projektów spotkałem się z problemem dotyczącym wygenerowanej klasy na podstawie .xsd. Po stworzeniu kodu odpowiedzialnego za serializację i jego uruchomieniu...
MVC)MJLeave a comment Dzisiaj krótki wpis, ale wydaje mi się, że wart uwagi. W zeszłym tygodniu po raz pierwszy miałem do czynienia z dodatkiem do VS 2012 – Razor Generator. I mówiąc szczerze – jestem bardzo pozytywnie zaskoczony. W wielkim skrócie jest to rozszerzenie umożliwiające kompilowanie plików .cshtml. W praktyce wygląda to w ten sposób, że pod widokiem znajduje się klasa o nazwie Widok.generated.cs. Przy każdej zmianie w widoku, następuje automatyczna zmiana w kodzie tej klasy, przez co nie je...
Wiele aplikacji wymaga generowanie dokumentów PDF – i dobrze, bo są fajne. Gdy jednak programista rzucony zostaje w całe wzburzone morze możliwych do zastosowania rozwiązań, bo nie jest już tak wesoło. Kiedyś było prosto: brało się iTextSharp i wsio. Jednak od paru lat (?) licencja tego komponentu się zmieniła, i ja w sumie sam nie wiem kiedy można a kiedy nie można go używać oraz ile to kosztuje. Z niego korzystają inne dostępne rozwiązania,...
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...
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...
Sztuka programowania 4006 dni, 18 godzin, 35 minut temu 266 ź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 3997 dni, 21 godzin, 37 minut temu 122 ź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 3993 dni, 21 godzin, 57 minut temu 232 ź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 3990 dni, 22 godziny, 3 minuty temu 105 źrodło rozwiń
When you try to connect your Visual Studio 2008 environment to a Team Foundation Server 2010 it is so popular that you will not be able to make it. After clicking Tools->Connect to Team Foundation Server and trying to connect to your own TFS you will receive one of errors, for example this...