Postanowiłem kiedyś stworzyć, na własne potrzeby, spis narzędzi dla TDD dla .NET. Z czasem, lista rozrosła się do narzędzi nie tylko związanych z TDD, ale także z testami akceptacyjnymi i BDD. Dokończyłem ten spis o pozostałe rodzaje testów i opublikowałem na GitHubie, tak żeby można było łatwiej aktualizować.
Sztuka programowania 3423 dni, 16 godzin, 16 minut temu 214 źrodło rozwiń
Odpowiednie rozbicie historii na taski ma kluczowy czynnik w powodzeniu projektu. Jeśli ta czynność jest źle wykonana – czas realizacji projektu się wydłuża, a w zespole rośnie frustracja bo nikt nie wie gdzie leży problem. Developerzy pracują w pocie czoła, PM skrupulatnie trzyma się metodologii prowadzenia projektu, a mimo to są opóźnienia (które niestety najczę...
Sztuka programowania 3423 dni, 16 godzin, 16 minut temu 412 źrodło rozwiń
Jeżeli zachodzi potrzeba żeby w naszej aplikacji chcemy mieć razorowe widoki, standardowa konfiguracja nie daje nam intelisense. Powoduje to, że czas stworzenia widoku znacznie się wydłuża, bo visual krzyczy nam błędami co chwilę i podkreśla wszystko na czerwono. Jest jednej sposób który pozwala załatwić sprawę...
TL;DR; - Opis jest długi bo sesji wiele, ale w skrócie podobało mi się i daję wydarzeniu 4.5/5. Czemu nie max? Żeby za rok było więcej głębszych technicznie sesji i większy klub na after-party.
Przemysław Walkowski Kolejna książka z mojej kolekcji opisuje najważniejsze wzorce projektowe z przykładami w C#. Autorem jest Steven John Metsker, przechodzi on przez wszystkie najważniejsze grupy wzorców projektowych takich jak wzorce interfejsów, odpowiedzialności, wzorce konstrukcyjne, wzorce operacji oraz wzorce rozszerzeń. Poniżej moja recenzja. Konkretnie Książka jest dość stara pierwsze wydanie miało miejsce w 2005 roku. Co prawda wzorce pro...
BlockingCollection jest specjalną kolekcją danych, przygotowaną do implementacji wzorca producent-konsument. Nakład pracy do implementacji tego wzorca jest minimalny z BlockingCollection. Nie musimy martwić się o synchronizację, sekcję krytyczną czy deadlock. Zacznijmy od razu od przykładu. Producent będzie wyglądać następująco...
Programowanie rozproszone 3429 dni, 20 godzin, 54 minuty temu 342 źrodło rozwiń
Czasem tworząc aplikację wykorzystującą XAML, chcielibyśmy przekazywać dane pomiędzy poszczególnymi stronami. Niestety technologie Microsoftu nie są do tego dobrze przygotowane. Co prawda możemy zawsze wykorzystać jakiś globalny obiekt kontekstu, ale w praktyce jest to rozwiązanie nieefektywne. Możemy również wykorzystać foldery lokalne/roaming, który opisywałem tutaj, ale w pewnym sensie strzelamy tutaj do muchy z armaty. Czy można to zrobić jakoś prosto i elegancko? Okazuje się, że tak - choć po części...
Mobile development 3429 dni, 20 godzin, 54 minuty temu 202 źrodło rozwiń
W kilku poprzednich postach pisałem o tym jak powinna wyglądać czysta i przejrzysta architektura aplikacji. Kluczową rzeczą w takiej architekturze jest jednokierunkowy przepływ wywołań od kontrolera do prezentera. Kłopot z taką architekturą pojawia się, gdy mamy narzucaną architekturę w której naszym punktem wejścia do obsługi zdarzenia jest metoda, która musi zwrócić wynik poprzez return...
Architektura 3432 dni, 21 godzin, 10 minut temu 365 źrodło rozwiń
Przemysław Walkowski Słowo kluczowe var wprowadzone w C# 3.0 pozwala w codziennej pracy programisty .NET unikać definiowania typów danych, zrzucając odpowiedzialność na ustalenie typu kompilatorowi. W większość przypadków kompilator domyśla się jaki typ ma mieć dana zmienna i życie toczy się dalej. Jednak z czasem można zauważyć pewne efekty uboczne w czytelności kodu. Poniżej moje przemyślenia na temat var. Wstęp Słowa kluczowe var powst...
Sztuka programowania 3432 dni, 21 godzin, 10 minut temu 370 źrodło rozwiń
Dług technologiczny jest zaciągany wtedy, gdy mając na szali krótszy czas developmentu i jakość kodu – świadomie wybieramy szybsze/tańsze ukończenie projektu kosztem jakości. Warto powiedzieć, że jeśli ta droga nie jest świadoma to nie mamy do czynienia z długiem technologicznym tylko niekompetencją :)
Sztuka programowania 3432 dni, 21 godzin, 10 minut temu 314 źrodło rozwiń
O asynchronicznych kontrolerach pisałem już na blogu, zarówno w czystym ASP.NET jak i ASP.NET MVC. Czasami jednak chcemy zaimplementować model na wzór “fire&forget”. Oczywiście do tego, dużo bardziej nadają się systemy kolejkowe typu nServiceBus, ale dla bardzo prostych przypadków wystarczy odpalenie wątku i wykonanie jakieś czasochłonnej operacji. Przez czasochłonną mam na myśli taką, która wykonuje się kilka minut, a nie kilka godzin. Jeśli mamy aż tak skomplikowane operacje, wtedy wykonywanie teg...
Dziś miałem przyjemność uczestniczyć w konferencji ShareCon365, a tym samym zgodnie z dobrym obyczajem pora na kilka słów po. Co mi się rzuciło w oczy, zresztą nie po raz pierwszy w tym przypadku, to to, że ta konferencje była organizowana zdecydowanie przez Microsoft, jak i jego partnerów. Nie pozostało to oczywiście bez wpływu na jej kształt...
Estymowanie projektów IT to trudne zadanie. Najczęściej w estymowaniu chodzi o to, by trafić jak najbliżej faktycznej ceny projektu, by popełnić jak najmniejszy błąd. Okrągłe liczby kłamią! Znakomicie widać to podczas wyceny projektów, kiedy projekt jest oszacowany na 10, 50, 100, 200 tysięcy to najprawdopodobniej mamy do czynienia z niedoszacowaną lub przeszacowaną wyceną. Opiszę bł...
Domyślnie tworząc aplikacje uniwersalne, możemy korzystać z rozbudowanego modelu zdarzeń. Każde ze zdarzeń, może zostać zaimplementowane w tzw. części code-behind wybranej strony/kontrolki. Nie wszystkim do końca odpowiada jednak ten model. Spore grono programistów jest zwolennikiem architektury MVVM, która promuje wydzielone konstrukcje zwane ViewModelami. Ważnym elementem ViewModel są komendy, które pozwalają na realizację określonych zadań. Niestety nie wszystkie kontrolki Microsoftu są do tego dobrze...
Mobile development 3435 dni, 21 godzin, 9 minut temu 60 źrodło rozwiń
Resharper daję naprawdę cenne wskazówki. Nie wszystkie są oczywiste i czasami należy zagłębić się w temat. Jedną z takich wskazówek jest używanie IndexOf wraz z StringComparison.Ordinal. Załóżmy, że mamy następujący kod: string text = "test"; Console.WriteLine(text.IndexOf("est")); Resharper zasugeruje konwersję do: string text = "test"; Console.WriteLine(text.IndexOf("est", StringComparison.Ordinal)); Dlaczego? Jeśli nie przekażemy ustawień regionalnych jawnie, wtedy domyślnie aktualna zost...
Sztuka programowania 3435 dni, 21 godzin, 9 minut temu 163 źrodło rozwiń
Świetny weekend za mną, włączając w to Programistok w Białymstoku. Jako że był to weekend bez innych zobowiązań, spakowaliśmy się z żoną i o 5 rano w sobotę wyruszyliśmy w podróż:) Akurat by dotrzeć na miejsce, spokojnie ulokować pod hotelem i rozejść do swoich zadań - żona zaczęła od zakupów, ja od Programistoku:)
Przemysław Walkowski. Kolejna książka z mojej biblioteki to C# 6 i MVC 5 napisana przez polskich autorów Krzysztofa Żydzika i Tomasza Raka. Tworzenie nowoczesnych portali internetowych. Jest to na pewno pierwsza i chyba jedyna książka o nowościach w C# 6.0 po polsku. Wydana bardzo na czasie (jeszcze przed oficjalnym wydaniem C# 6.0) opisuje MVC 5 i Entity Framework 6 oraz wiele innych internetowych technologi. Zapraszam do recenzji Budowa Książka ma 500 stron...
Początkowo planowałem napisać o podcastach DotNetRocks i wychwalić autorów pod niebiosa (bo należy im się za to co i jak robią). Tylko, że to chyba nie ma sensu. Linki do audycji przewijają się przez przeróżne blogi i wystarczy napisać, że naprawdę warto ich posłuchać. Ponieważ jednak dojazd do pracy zajmuje mi godzinę, a samych dotnetrocks’ów pojawia się tylko trzy odcinki w ciągu tygodnia rozglądam się, słucham, sprawdzam i myślę, że warto podzielić się wykopaliskami. Oto kilka podcastów, których słuch...
Dwa wrześniowe odcinki mieliśmy mocno techniczne, więc czas nieco od technikaliów odpocząć. Dzisiaj, w odcinku nr 23, zapraszam Was na luźną rozmowę o… programistach. A rozmawiam z osobami, które znają nas od podszewki :). Ola Pszczoła (http://beetalents.com) na co dzień zajmuje się szeroko pojętym HRem w ujęciu niekorporacyjnym. Niezła charakterystyka, co nie? ;). Na Twitterze obecna pod @olapsz. Paweł Michalak natomiast pracuje w Stack Overflow, gdzie m.in. doradza firmom jak pokazać się programistom d...
O usługach REST, które dzisiaj są wszechobecne pisałem już wiele razy np. tutaj. Dzisiaj chciałbym napisać krótkie podsumowanie w formie porad i antywzorców. Zaczynamy: 1. Nigdy nie używaj czasowników w URI. Przykład błędnych linków: GET: localhost\persons\1\UpdateEmail?email=’…’ Jedynym dozwolonym czasownikiem w adresie to HTTP verb. Całość linku to nic innego jak hierarchia zasobów. Poprawna aktualizacja adresu email może wyglądać zatem następująco: PUT: localhost\persons\1\email Metoda PUT ozn...
Programowanie rozproszone 3443 dni, 19 godzin, 26 minut temu 418 źrodło rozwiń