O kontraktach już kiedyś pisałem tutaj. Dziś z kolei zaprezentuję bardzo złą praktyką, czasami niestety jeszcze spotykaną tzn.:interface IDataFilter { IEnumerable
Sztuka programowania 4134 dni, 16 godzin, 5 minut temu 224 źrodło 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.
Sztuka programowania 4345 dni, 22 godziny, 4 minuty temu 118 źrodło rozwiń
Code Contracts stanowią kolejny mechanizm ułatwiający programowanie defensywne – sposób wytwarzania oprogramowania odporny na wszelkie niespodziewane wartości (NULL, dzielenie przez zero, wartości skrajne itd.) Rozważmy klasyczny przykład – funkcja dzielenia:privatefloat Divide(float dividend, float divisor) { if (divisor ==0) thrownew DivideByZeroException(); return dividend / divisor; } Funkcja jest zaimplementowana poprawnie – sprawdza czy divisor nie jest zerem. Są jeszcze inne skra...
Architektura 4744 dni, 53 minuty temu 240 źrodło rozwiń
Design by Contract (TM) to technika programowania defensywnego, postulująca jawne specyfikowanie interfejsów komponentów, np. poprzez deklarowanie warunków, które muszą spełniać argumenty metod (to w zasadzie najczęstszy przypadek). Zwykle w projektach realizujemy to wymaganie albo poprz...
Architektura 5129 dni, 2 godziny, 23 minuty temu 90 źrodło rozwiń
DbC - czyli wyraź swoje intencje Dzisiaj nieco koncepcyjnie (no tak - a kiedy nie było :)) na temat idei kontraktów, tego jak podchodzić z tą myślą do projektowania i implementacji. O czym konkretnie myśleć i w ogóle PO CO w ten sposób myśleć. Sama idea Design by Contract wprowadzona została przez twórców języka Eiffel. Nie wiem co panowie mieli na myśli jeśli chodzi o ideologię, lecz zwykle przedstawiana jest przez wprowadzenie pojęć: wymagania (precondition) - warunki wejściowe kontraktu,zapew...
Architektura 5552 dni, 4 godziny, 22 minuty temu 16 źrodło rozwiń
Ostatnio popełniłem post na temat co to jest Code Contracts i na czym to polega. Teraz stwierdziłem, iż przyda się kilka informacji na temat ich debugowania – w szczególności iż kod ma działać jak warunki pre i post i jak to zostało zorganizowane. Żeby nie odkrywać ameryki na nowo, w tym celu wykorzystam przykłady zawarte w instalce CC, a które znajdują się w katalogu: C:\Program Files\Microsoft\Contracts\Samples Na pierwszy ogień weźmy przykład Rational. Otwórzmy plik soluti...
Gutek o CodeContracts w .NET 4.0.