O kontraktach już kiedyś pisałem tutaj. Dziś z kolei zaprezentuję bardzo złą praktyką, czasami niestety jeszcze spotykaną tzn.:interface IDataFilter { IEnumerable
Sztuka programowania 4177 dni, 22 godziny, 7 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 4389 dni, 4 godziny, 6 minut 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 4787 dni, 6 godzin, 54 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 5172 dni, 8 godzin, 24 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 5595 dni, 10 godzin, 24 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.