1 / 13

Programowanie Defensywne (Defensive Programming) w C#

Programowanie Defensywne (Defensive Programming) w C#. Mariusz Świetliński PJWSTK. 100110001001110010L1O0T10101O0F00100101C1O1D0E11000110100101011101001000101010101001. Metody Warunkowe (Conditional Methods). Doklejamy warunek Warunek decyduje o przetworzeniu Decyzja w momencie kompilacji

drea
Download Presentation

Programowanie Defensywne (Defensive Programming) w C#

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programowanie Defensywne(Defensive Programming)w C# Mariusz ŚwietlińskiPJWSTK 100110001001110010L1O0T10101O0F00100101C1O1D0E11000110100101011101001000101010101001

  2. Metody Warunkowe(Conditional Methods) • Doklejamy warunek • Warunek decyduje o przetworzeniu • Decyzja w momencie kompilacji • Przydatne przy sprawdzaniu • Ułatwiają proces tworzenia oprogramowania • Finalna wersja ich nie przetwarza (nie wymaga to ponownej kompilacji) • Atrybut: Conditional

  3. Klasy Trace i Debug • Przestrzeń nazw System.Diagnostics • Obie klasy implementują te same funkcjonalności • Mają odrobinę inne zastosowanie

  4. Klasa Trace • Pomaga śledzić (trace) proces wykonywania kodu (code execution) • Wykorzystywana w kodzie opublikowanym (release code) • Nie powinno się nadużywać ze względu na wydajność

  5. Klasa Debug • Pomaga przy debugowaniu (debug) kodu • Nie powinno się używać w kodzie wydanym (release code) • Przydatna przy wszelkiego rodzaju sprawdzeniach przy tworzeniu oprogramowania

  6. Asercje (Asserts) • Sprawdza podany warunek i jeśli przyjął on wartość false, to wypisuje podaną wiadomość • Mechanizm daje możliwość upewnienia się że oczekiwane warunki są spełnione • Kolekcja słuchaczy (listeners) • Przydatne w złożonych projektach

  7. Wyjście (output) w klasach Trace i Debug • Komunikaty wysyłamy do słuchaczy (listeners) • Metody piszące zawsze: • Write() • WriteLine() • Metody z warunkiem (jeśli true, to pisz): • WriteIf() • WriteLineIf()

  8. BooleanSwitch i TraceSwitch • Poprzednie rozwiązanie oparte było o zmienną typu bool • Decyzja o tym czy pisać do dziennika (logging) wyciągnięta na zewnątrz kodu • Pliki konfiguracyjne aplikacji (application configuration file)

  9. BooleanSwitch • Opakowanie zmiennej typu bool • Automatyczne ustawianie z pliku konfiguracyjnego aplikacji

  10. TraceSwitch • Więcej możliwości niż zmienna typu bool • Wielopoziomowa logika zapisów do dziennika (logging) • Sterowanie stopniem szczegółowości • Automatyczne zawieranie niższych poziomów

  11. Własny Switch • Własne poziomy szczegółowości • Dziedziczymy po klasie System.Diagnostics.Switch • Dlaczego nie działa?

  12. Pytania?

  13. Wesołych Świąt i szczęśliwego nowego roku!

More Related