dotnetomaniak.pl

dotnetomaniak.pl - Najnowsze artykuły o .NET w dziale Sztuka programowania - Strona 41

In previous post, I defined a good unit test as one that:tests single unit of workcontains only one assertis self contained Presented sample of code with one unit test, unfortunately had two asserts. Clear violation of the second rule. One of the fellow bloggers MJ pointed out this mistake. It is time to “fix” it and talk about “Only one assert per test” rule.Why only One Assert There are couple of problems with multiple asserts.Unit Test Misinformation Frameworks like NUnit do notify about failing un...

Tagi: unit-tests
Źródło: www.mfranc.com
Dziel się z innymi:
[EN]Good unit test - One Assert | Passionate Programmer

Sztuka programowania 1914 dni, 10 godzin, 22 minuty temu michalfranc 36 rozwiń

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ł.

Kilka słów komentarza o… komentarzach | Maciej Aniserowicz o programowaniu

Sztuka programowania 1914 dni, 23 godziny, 19 minut temu psz750 169 rozwiń

W poprzednim poście pokazałem jak korzystać z funkcji FromAsyncPattern na przykładzie usługi sieciowej. Dzisiaj zaprezentuję kilka dodatkowych funkcji. Najpierw zdefiniujmy co chcemy uzyskać:Użytkownik może wpisać szukaną frazę w pole edycyjne. Usługa sieciowa ma za zadanie wyszukanie fraz wpisanych w pole zdefiniowane w punkcie 1. Wyłącznie frazy dłuższe niż 3 znaki mają być przetwarzane. Jeśli użytkownik wpisze dwa razy tą samą frazę to tylko pierwsza ma zostać wysłana do usługi (optymalizacja). Zdarze...

Tagi: .Net, C#, Re
Dziel się z innymi:
Piotr Zieliński » Reactive Extensions– Observable.FromAsyncPattern, dalsza część przykładu

Sztuka programowania 1916 dni, 17 godzin, 57 minut temu pzielinski 16 rozwiń

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...

Tagi: unit testing
Źródło: www.mfranc.com
Dziel się z innymi:
[EN] Unit Test code with static method Console.Write | Passionate Programmer

Sztuka programowania 1920 dni, 17 godzin, 47 minut temu michalfranc 66 rozwiń

W ostatnim poście pisałem o konwersji zdarzeń .NET do RX. Dziś chciałbym zaprezentować przydatną funkcję, dostępną w rozszerzeniach Observable – Buffer. Służy ona do podzielenia danych w bufory. Załóżmy, że mamy źródło, które generuje dane co 1 sekundę. W każdej sekundzie zatem otrzymujemy jedno powiadomione OnNext. Co w przypadku jednak gdybyśmy chcieli dostawać w każdym powiadomieniu kilka wartości (tablicę elementów) ? Na przykład zamiast 10 OnNext, chcemy dwa powiadomienia, w którym każde zawiera lis...

Tagi: C#, Rx
Dziel się z innymi:
Piotr Zieliński » Reactive Extensions: Observable.Buffer

Sztuka programowania 1921 dni, 5 godzin, 32 minuty temu pzielinski 37 rozwiń

W wcześniejszych wersjach .NET Framework metody asynchroniczne implementujące wzorzec Begin\End były bardzo powszechne w użyciu. RX posiada metody pomocnicze, umożliwiające konwersję asynchronicznego źródła danych do IObservable. Rozważmy to na przykładzie. Załóżmy, że mamy web service, zawierający jakieś metody. Można oczywiście dla takiego serwisu wygenerować asynchroniczne metody. Jeśli chcecie popraktykować możecie skorzystać z tej, darmowej usługi: http://services.aonaware.com/DictService/DictServ...

Dziel się z innymi:
Piotr Zieliński » Reactive Extensions–Observable.FromAsyncPattern

Sztuka programowania 1921 dni, 5 godzin, 32 minuty temu pzielinski 30 rozwiń

Artykuł w sposób przystępny opisuje te trzy powiązane ze sobą mechanizmy. Zaczynamy od delegacji, potem opis anonimowych metod, a na deser wyrażenia lambda. Wszystkie opisy zostały oparte o proste przykłady, które pozwalają lepiej zrozumieć działanie tych mechanizmów oraz sposoby ich wykorzystania, a także screenshoty ze skompilowanych kodów.

Delegacje, metody anonimowe i wyrażenia lambda

Sztuka programowania 1923 dni, 5 godzin, 25 minut temu bari 175 rozwiń

Po przeczytaniu poprzednich wpisów, zasada działania i zastosowanie RX powinny być już jasne. Jeśli tak nie jest, koniecznie zachęcam do przeczytania tamtych postów. Jak wspomniałem, RX to ujednolicony model, umożliwiający korzystanie z kolekcji typu “push-based” w jednakowy sposób. Dzisiaj pokażę jak sprawa wygląda dla zdarzeń czyli jak skonwertować EventHandler do IObervable. Oczywiście kluczem do rozwiązania jest klasa Observable, która zawiera mnóstwo rozszerzeń dla interfejsów IObservable\IObserver...

Tagi: Rx, zdarzenia
Dziel się z innymi:
Piotr Zieliński » Reactive Extensions: Konwersja zdarzeń .NET do RX

Sztuka programowania 1923 dni, 5 godzin, 25 minut temu pzielinski 45 rozwiń

W poprzednim poście pokazałem jak dokonać subskrypcji aby otrzymywać powiadomienia o nowych danych oraz jak skonwertować IEnumerable to IObservable. Dzisiaj chciałbym pokazać kilka metod klasy Observable, które są szczególnie ważne przy pisaniu testów jednostkowych oraz przy nauce RX.  Muszę przyznać, że na co dzień korzystam wyłącznie tylko z kilku z nich ale w przypadku UnitTest’ów są już bardzo praktyczne. Observable to zbiór statycznych metod (często rozszerzających) usprawniających pracę z IOb...

Dziel się z innymi:
Piotr Zieliński » Reactive Extensions–jak wygenerować proste źródła danych

Sztuka programowania 1926 dni, 8 godzin, 42 minuty temu pzielinski 93 rozwiń

Kiedyś już chciałem poprowadzić cykl wpisów o Reactive Extensions i nawet napisałem pierwszy post wprowadzający do interfejsów IObservable, IObserver. Niestety po drodze przytrafiły się tematy które chciałem najpierw opisać i na końcu zrezygnowałem z tego. W między czasie kilka osób pytało o ten cykl ale nie widziałem sensu ponieważ Maciej Zbrzezny już wykonał kawał dobrej roboty i  opisał to na swoim blogu w bardzo szczegółowy sposób. Dzisiaj postanowiłem jednak napisać kilka postów o RX po swojemu, z t...

Dziel się z innymi:
Piotr Zieliński » Reactive Extensions–wprowadzenie

Sztuka programowania 1932 dni, 9 godzin, 10 minut temu pzielinski 108 rozwiń

W zeszłym tygodniu pisałem o zastosowaniu dynamicznych zmiennych. W dzisiejszym wpisie zastanowimy się co dokładnie CLR robi z dynamic i jak to wpływa na wydajność aplikacji. Pierwszy test polega na porównaniu wydajności dodawania dwóch liczb:privatestaticvoid TestStatic() { var stopwatch = Stopwatch.StartNew(); int a =10; int b =45; int c = a + b; stopwatch.Stop(); Console.WriteLine("Static:{0}", stopwatch.ElapsedTicks); } privatestaticvoid TestDynamic() { var stopwatch = Stopwatch...

Dziel się z innymi:
Piotr Zieliński » Słowo kluczowe dynamic: wydajność

Sztuka programowania 1935 dni, 17 godzin, 9 minut temu pzielinski 95 rozwiń

Już kiedyś pisałem jak obsługiwać prawidłowe wyjątki ale dzisiaj jeszcze raz chciałbym rozwinąć temat. Zacznijmy od:privatestring GetData(int id) { string result=null; try { result = _service.GetData(id); } catch(Exception e) { } return result; } Jest to oczywiście skrajnie złe rozwiązanie ponieważ wszystko ignorujemy. Na szczęście programiści rzadko popełniają powyższy błąd. Niestety dużo częściej popełnianym błędem jest:privatestring GetData(int id) { stri...

Dziel się z innymi:
Piotr Zieliński » Code review: zła obsługa wyjątków

Sztuka programowania 1938 dni, 18 godzin, 7 minut temu pzielinski 168 rozwiń

Dzisiaj chciałbym przedstawić jedną z podstawowych rzeczy w języku C#, którą osoby mające za sobą już kilka programów w tym języku zapewne doskonale znają. Mam na myśli trzy słowa kluczowe, które sprawiają, że dostosowywanie funkcji składowych do naszych potrzeb jest jeszcze prostsze. Pierwszym z nich jest słowo out. Pozwala na zwrócenie w prost...

Tagi: out, params, Ref
Dziel się z innymi:
Słowa kluczowe: out, ref i params

Sztuka programowania 1939 dni, 19 godzin, 17 minut temu bari 140 rozwiń

Wszyscy dążymy do oprogramowania, które zawsze działa ale oczywiście musimy przygotować się na przypadki w których wystąpił wyjątek i nie wiadomo jak go obsłużyć. Najgorszą reakcją jest oczywiście pozwolenie aplikacji dalej działać co może spowodować nieoczekiwane efekty oraz popsuć po prostu dane. Musimy wszystko zrobić aby nie dopuścić do niespójności danych. W przypadku gdy wiemy, że aplikacja nie może kontynuować swojego działania musimy bezwzględnie zakończyć cały proces albo AppDomain. Należy po pr...

Dziel się z innymi:
Piotr Zieliński » Zamykanie aplikacji w przypadku awarii: Environment.FailFast

Sztuka programowania 1941 dni, 9 godzin, 31 minut temu pzielinski 128 rozwiń

Dziś będzie opowieść… Co sądzą ludzie, którzy nie testują? Ja, dla przykładu, wierzę w Unit Testy. Kontrastowałem (podpytywałem) to ze stanowiskiem wielu osób. Niektóre osoby odpowiadały, że to nie działa. Następnie podały powody dlaczego tak uważają i od tych powodów chciałbym zacząć...

Tagi: .Net, unit tests
Dziel się z innymi:
Moje Unit Testy | Show me the code

Sztuka programowania 1941 dni, 9 godzin, 31 minut temu psz750 167 rozwiń

Dziś kolejny post z cyklu zastosowanie słowa kluczowego dynamic. Ostatnio pisałem o ExpandoObjet, który jest dynamicznym kontenerem na metody i dane. DynamicObject pozwala z kolei tworzyć wrappery na różne klasy. Zacznijmy od przykładu:internalclass Program { publicclass CustomWrapper : DynamicObject { publicoverridebool TryGetMember(GetMemberBinder binder, outobject result) { result ="Hello World"; returntrue; } publicoverridebool TrySetMem...

Tagi: C#, dynamicobject
Dziel się z innymi:
Piotr Zieliński » Zastosowanie dynamic: DynamicObject

Sztuka programowania 1947 dni, 23 godziny, 32 minuty temu pzielinski 91 rozwiń

Rzezanie w czystym xml’u nie jest raczej przyjemne. Używnia XmlNode zamiast stringów nie jest wielkim pocieszem. Nie tędy droga. Dużo prościej stworzyć sobie obiekty które następnie będziemy serializować (deserializować) do XMLa.

DataContractSerializer zamiast czystego XML’a | Show me the code

Sztuka programowania 1947 dni, 23 godziny, 32 minuty temu lkurzyniec 102 rozwiń

Kiedyś już wspomniałem o słowie kluczowych dynamic. W tym i następnych wpisach chciałbym przedstawić praktyczne zastosowanie tego mechanizmu. Na koniec wyjaśnię, jak dynamic jest zaimplementowany przez CLR i jak bardzo spowalnia aplikację… Programiści używający ASP.NET MVC z pewnością rozpoznają zasadę działania ExpandoObject. Klasa umożliwia tworzenie dynamicznych kontenerów. Na przykład:privatestaticvoid Main(string[] args) { dynamic bag =new ExpandoObject(); bag.FirstName ="Piotr"; bag.LastN...

Dziel się z innymi:
Piotr Zieliński » Zastosowanie dynamic: ExpandoObject

Sztuka programowania 1950 dni, 3 godziny, 6 minut temu pzielinski 103 rozwiń

Kilka postów wcześniej pisałem o różnicach między const a read-only. Dzisiaj  chciałbym pokazać scenariusz, który pokazuje kiedy NIE używać słowa const. Const jest doskonałym rozwiązaniem dla liczb, które są po prostu ZAWSZE stałe. Przykład? Liczba PI ma jedną wartość i oczywiście nigdy się nie zmieni. Istnieją jednak przypadki gdzie liczby w kodzie są zastępowane stałymi co nie zawsze jest dobrym wzorcem. Rozważmy, że mamy klasę przechowującą pewne parametry algorytmu:namespace ClassLibrary1 { publ...

Tagi: C#, readonly, stałe
Dziel się z innymi:
Piotr Zieliński » Kiedy stałe (const) są złą praktyką?

Sztuka programowania 1953 dni, 19 godzin, 14 minut temu pzielinski 151 rozwiń

W teorii są 3 rodzaje kontraktów. Podejdę wg mnie praktycznie i opowiem głównie o pierwszym (Requires), z pozostałych dwóch rzadko kto korzysta. Requires używa się do sprawdzania argumentów przekazanych do metody.

Dziel się z innymi:
Code contracts | Show me the code

Sztuka programowania 1953 dni, 19 godzin, 14 minut temu lkurzyniec 114 rozwiń

1 2... 39 40 41 42 43 44 45
Szkolenia SecurITum

maj

26.

wrzesień

21.
Dev#
Gdańsk, Stary Maneż
Dodaj nowe Zobacz wszystkie

Najaktywniejsi

1

Paweł Łukasik (32 867,57)

2

macko (32 816,53)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,88)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 391,37)

8

Damian (9 515,21)

9

danielplawgo (7 311,04)

10

arek (6 807,95)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 798,06)

15

dpawlukiewicz (3 581,94)

16

spetz (3 418,34)

17

AdrianBystrek (3 330,83)

18

jedmac (3 318,39)

19

http://jakub-flor... (3 224,66)

20

CaMeL (2 954,87)