Pytania otagowane jako defensive-programming


14
Czy TDD czyni zbędnym programowanie obronne?
Dzisiaj odbyłem ciekawą dyskusję z kolegą. Jestem programistą obronnym. Uważam, że zawsze należy przestrzegać zasady „ klasa musi mieć pewność, że jej obiekty mają prawidłowy stan podczas interakcji z nią spoza klasy ”. Powodem tej reguły jest to, że klasa nie wie, kim są jej użytkownicy, i że w przewidywalny …


10
Co definiuje solidny kod?
Mój profesor ciągle powołuje się na ten przykład Java, kiedy mówi o „solidnym” kodzie: if (var == true) { ... } else if (var == false) { ... } else { ... } Twierdzi, że „solidny kod” oznacza, że ​​twój program bierze pod uwagę wszystkie możliwości i że nie ma …

7
Czy powinienem zweryfikować wartość zwracaną wywołania metody, nawet jeśli wiem, że metoda nie może zwrócić złych danych wejściowych?
Zastanawiam się, czy powinienem bronić się przed wartością zwracaną wywołania metody, sprawdzając, czy spełniają one moje oczekiwania, nawet jeśli wiem, że metoda, którą wywołuję, spełni takie oczekiwania. DANY User getUser(Int id) { User temp = new User(id); temp.setName("John"); return temp; } CZY POWINNAM void myMethod() { User user = getUser(1234); …


3
Czy muszę radzić sobie z sytuacją, w której metody prywatne są wywoływane poprzez refleksję?
Czy podczas tworzenia biblioteki muszę upewnić się, że metody prywatne muszą działać zgodnie z oczekiwaniami, jeśli nie zostaną wywołane przez inne metody tej samej klasy, ale przez inną bibliotekę poprzez odbicie ? Na przykład, jeśli metoda prywatna private DoSomething(int number)oczekuje, że: number jest dodatnią niezerową liczbą całkowitą i: zmienna prywatna …

4
Jak powinniśmy być defensywni?
Mamy już działa Pex nad jakimś kodem, i on został pokazano kilka dobrych rzeczy (również złe rzeczy, ale pokazując im, zanim dotrze do produkcji!). Jednak jedną z fajnych rzeczy w Pex jest to, że niekoniecznie przestaje próbować znaleźć problemy. Jednym z obszarów, które znaleźliśmy, jest to, że podczas przekazywania ciągu …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.