Mads Kristensen odwalił kawał dobrej roboty tworząc Web Essentials. Jest to pierwsze narzędzie wspierające analizę JS, kompilowanie LESS, minimalizację CSS i JS i wiele innych rzeczy, które naprawdę mnie nie wkurza. I w większości przypadków działa. No właśnie, w większości. Dwa dni temu zacząłem przepisywać swój nowy projekt z CSS na LESS – by się go nauczyć, pobawić i w ogóle. Jednak z miejsca natrafiłem na problem, którego za nic nie mogłem obejść – przynajmniej do póki się nie zorientowałem, dlaczego...
Strona głównaUżytkownik
arek | użytkownik
This post is based on my answer on the Stack Overflow – “How to unit test this function?” The original question is about writing unit test for a code that uses Console methods inside its body. This problem is more general and in this post, I want to show one of the ways to unit test code with static method.Example of code with static methods This example is from the Stack Overflow quest...
Sztuka programowania 4364 dni, 16 godzin, 54 minuty temu 67 źrodło rozwiń
Atak Cross-Site Request Forgery (w skrócie CSRF lub XSRF) polega na wykorzystaniu nieświadomego niczego użytkownika, który w danym momencie zalogowany jest do serwisu będącego celem ataku, do wysłania żądania spreparowanego przez hakera. Takie żądanie może na przykład zmieniać dane użytkownika użytego do ataku, na takie, które później będą mogły być wykorzystane przez atakującego do zalogowania się do serwisu. W dzisiejszym poście, chciałbym pokazać jak zabezpieczyć się przed tego typu atakiem w aplikac...
Pod jednym z ostatnich postów wywiązała się krótka dyskusja na temat komentowania kodu i postanowiłem poczynić follow-up w postaci osobnej notki. Mam cały czas na myśli oczywiście komentarze wyjaśniające działanie kodu a nie zakomentowany kod. Zakomentowany kod powinien być usuwany na poziomie repozytorium w momencie check-ina i problem mielibyśmy z głowy. Na ten temat nawet nie będę się rozwodził.
Sztuka programowania 4358 dni, 22 godziny, 26 minut temu 172 źrodło rozwiń
autor Git jest the best – to wie chyba każdy kto czyta tego bloga. Może niekoniecznie się z tym zgadza, ale przynajmniej wie:). Wydaje mi się, że to jedyny kawałek softu, na który nigdy nie narzekałem… Aż do niedawna. Przyszło mi pracować przy wieloletnim projekcie, którego repozytorium liczone było w gigabajtach. Za pomocą Git-TFS ściągnąłem sobie historię, a tam, jak się można domyślić, cały TfuFSowy syf. Czyli na przykła...
Sztuka tworzenia oprogramowania otoczona jest baaardzo wieloma "złotymi zasadami". Ich przestrzeganie nie gwarantuje co prawda sukcesu, lecz może znacznie poprawić jakość efektów naszej pracy. Chociażby SOLID... Dobrze jest zdawać sobie sprawę z tego, że nie tylko na poziomie kodu możemy pozytywnie wpłynąć na kształt projektu. Tak banalna pozornie sprawa jak sposób tworzenia commitów do systemu kontroli wersji może drastycznie zwiększyć komfort pracy nad systemem oraz ułatwić jego rozwijanie. Niestety sc...
Z Gitem pracuję na co dzień już dobre trzy lata, czy nawet więcej. I kocham ten soft. Uważam go za najlepsze narzędzie z jakim kiedykolwiek spotkałem się w swojej programistycznej karierze - we wszystkich kategoriach. Nic nigdy aż tak bardzo mi nie zaimponowało. Zresztą rozwodzić się nie będę - o tym można poczytać we wszystkich moich postach dotyczących Gita. Nie mam jednak w zwyczaju wpadać w jedno narzędzie i od razu zakładać, że jest ono "the only one". Z tego też powodu do projektów pobocznych przez...
Opublikowano Ostatnio pisałem o Web Essentials 2012 dzięki, któremu możemy szybko i łatwo generować klasy na podstawie json-a a dzisiaj zobaczymy co jeszcze daje dodatek Web Essentials 2012. W plikach CSS mamy dodatkowe menu Web Essentials: Minify selection – minimalizuje naszego css-a (w MVC4 można to również zrobić za pomocą bundle-s ale nie każdy używa przecież MVC)Remove Duplicate Properties – usuwa powielone właściwości. Bardzo przydatne jeśli nad css-em pracuje więcej niż jedna osoba lub css...
JSON-a pełno wszędzie ale jeśli jeszcze się jakimś trafem z nim nie spotkałeś to warto poczytać co to jest json. Jeśli natomiast głowisz się jak z jsona wygenerować klasy to masz mamy kilka możliwości: klepiemy mozolnie kod lub szukamy jakiegoś generatorka który to zrobi lub….. wklejamy przykładowego jsona do Visual Studio 2012. i tak oto z przykładowego JSON-a z wikipedii (link na początku) otrzymujemy: szybko i wygodnie, szybciej się nie da. Jeśli nie widzisz w menu Paste JS...
Opublikowano Rozmowa z pewnym developerem: ja: a tu jest ta książka ja: http://www.charlespetzold.com/phone/index.html ja: czytałeś ją ? on: mam pdfa ja: a czytałeś ją ?? on: a powiedz mi kiedy Ręce opadają.Posiadanie książki/pdf-a/ebooka nie jest równoznaczne z przyswojeniem w niej zawartej wiedzy. Niestety dyfuzja tutaj nie działaW naszym zawodzie trzeba znaleźć czas na czytanie książek. Kup kindla i czytaj choćby w toalecieNie czytam książek w pracy, czytam je po pracy (choćby patrz pu...
Opublikowano Jeden z bardziej dla mnie zaskakujących wykładów z tegorocznego ABB DevDay to HTTP Caching 101. Zaskakujących bo nie znałem wcześniej wykładowcy a sama tematyka szczerze powiedziawszy nie należy do zbyt ciekawych. Nie sądziłem jednak, tam jest tyle TEGO. Osobiście otwało mi oczy na kilka spraw. Poniżej znajduje się zapis z wykładu HTTP Caching 101 na Oredev 2012 czyli jak we wcześniejszy wpisie, tematyka ta sama, wykład ten sam tylko zapis z innej konferencji. Mam nadzieję, że przyda się ...
Opublikowano Wczoraj pisałem o rewelacyjnej konferencji DevDay. Dzisiaj link do prezentacji: Scotta Hanselmana „It’s not what you read, it’s what you ignore” (o którym pisałem już tutaj) oraz Grega Younga „How to get productive in a project in 24h” Oczywiście nie jest to zapis z DevDay, ale prezentacje te same, więc do czasu aż organizatorzy nie opublikują filmów, możecie zobaczyć o czym mówili Ci dwaj Panowie. Miłego oglądania To też może Cię zainteresować:DevDay–konferencja na którą mogę jeź...
Życie programisty byłoby prostsze, gdyby zawsze używał explicite CultureInfo gdy korzysta z ToString() oraz string.Format(...).
Sztuka programowania 4436 dni, 9 godzin, 18 minut temu 141 źrodło rozwiń
Opublikowano Bardzo ciekawy wywiad z jednym z najbardziej zasłużonych dla środowiska .net-owego człowieka – z Andersem Hejlsberg-iem. To w dużej mierze dzięki niemu c# i .net jest tam gdzie dzisiaj jest.
1 Sierpnia to bardzo ważny dzień dla firmy Microsoft. Dzisiaj, a właściwie godzinę temu, Windows 8 oraz Windows Server 2012 otrzymały status RTM czyli Release To Manufacture. RTM oznacza tyle, że produkty zostały ukończony. Do RTM-a nie dodaje się poprawek, nie wprowadza się zmian. RTM-a się tłoczy na płytach i wkłada do pudełek Windows 8 Jaki będzie żywot nowego systemu operacyjnego? Na pewno trudny, ponieważ jest bardzo rewolucyjny w swoim interfejsie użytkownika. Na pewno będzie wiele ...
Opublikowano We wpisie o pokryciu kodu (Code Coverage) napisałem: Należy pamiętać, że to są narzędzia dla programisty Co przez to rozumiem? Code Coverage nie może być używany przez kierownictwo/zarząd/management/etc – a już pod żadnym pozorem nie może być związany finansowo z wypłatą programisty. Dlaczego? Przyciśnięty programista może bardzo łatwo wygenerować dowolne pokrycie kodu i to przy dosyć małej ilości pracy. Pisząc odpowiednią ilość testów jednostkowych bez asercji można uzyskać 100% pokryci...
Kompilacja to właściwie nic innego jak tłumaczenie z jednego języka na drugi. W przypadku C# (a dokładniej .net-a) to tłumaczenie odbywa się dwa razy. Raz z języka czytelnego dla kompilatorów aminokwasowych (c#) na MSIL czyli na taki w dużym uproszczeniu zarządzalny asembler (zrozumiały przez rzadko którego białkowca) a drugi raz z owego MSIL do takiego już prawdziwego kodu maszynowego, który jest zrozumiały dla krzemiaków. Każdy program w C# może mieć praktycznie nieskończenie wiele wers...
Opublikowano Co to jest CodeCoverage? Jest to pokrycie kolejnych linii kodu testami jednostkowymi. Metryka ta pokazuje ile procent linijek kodu ma przynajmniej jeden test jednostkowy, który ją wykonuje. Sprawa wydaje się prosta, tyle tylko, że w świecie .neta kod kompiluje się do… no właśnie do kodu pośredniego. Dopiero ten kod pośredni jest kompilowany w razie potrzeby do kodu maszynowego. Co więcej o ile nie wprowadzamy zmian do kodu źródłowego, to źródła się nie zmieniają ale już kod kompilowany może...
Opublikowano W zeszłym miesiącu pytałem Was o preferencje jeśli chodzi o białe znaki (whitespaces) w swoim ulubionym IDE. Pora rzucić okiem na wyniki i tak:Blisko 200 osób oddało swój głos – nie spodziewałem się takiego dużego odzewu, cieszy mnie to bardzo (cieszy odzew a nie zdziwienie)
Dziś po długim wprowadzeniu teoretycznym, mającym na celu wyjaśnienie “zaawansowanych” mechanizmów synchronizacji czas przyszedł na pokazanie pierwszej struktury danych. Przed pojawieniem się asynchronicznych kolekcji, najczęściej korzystało się z prostego lock’a jak:lock(_Sync) { _list.Add(newElement); } Rozwiązanie mało wygodne i przede wszystkim niewydajne. Nowe kolekcje zawierają mechanizmy synchronizacji omówione w poprzednich postach takie jak:SpinLock SpinWait SemaphoreSlim CountdownEvent ...
Sztuka programowania 4577 dni, 13 godzin, 17 minut temu 163 źrodło rozwiń