Zabezpieczanie przed idiotami wymaga znacznie więcej niż prostej weryfikacji danych wejściowych. Nie zawarłbym nawet takiej rzeczy w jej definicji.
Sprawdzanie poprawności danych wejściowych jest procesem polegającym na odkażaniu i sprawdzaniu poprawności danych użytkownika w celu wyeliminowania niedozwolonych / bezsensownych wartości. Powinno to zawsze odbywać się z wszelkimi informacjami pochodzącymi spoza twojego programu, aby wyeliminować oczywiste, a także chronić się przed atakami (np. Ataki typu sql injection).
Uważam, że ochrona przed idiotami jest zbiorem logiki, która zapobiega przypadkowemu wyrządzeniu użytkownikowi poważnych szkód za pomocą środków prawnych.
Na przykład wykonanie rm
polecenia odrzucenia rm -rf /
i zamknięcia wariantów nie ma nic wspólnego z sprawdzaniem poprawności lub poprawnością. To doskonale poprawne polecenie. Niestety jest to polecenie, które może i może usunąć wszystkie dane ze wszystkich dysków w systemie Unix / Linux. Dowodzenie przez idioty to odrzuciłoby to polecenie i sugerowałoby rm -rf --i-really-mean-this /
, lub w trybie interaktywnym, aby użytkownik napisał odpowiedź twierdzącą po ostrzeżeniu.
Wszystko, co jest destrukcyjne dla systemu, powinno być zabezpieczone przed idiotami. Wszystko, co może powodować potencjalne zażenowanie, może być również kandydatem (np. „Czy na pewno chcesz wysłać tę wiadomość e-mail bez załącznika, nawet jeśli wspomniałeś o niej w tekście?” Oraz „czy na pewno chcesz wysłać tę wiadomość e-mail na adres cała firma? ”)
Zabezpieczanie przed idiotami to współpraca między QA (starając się być najlepszym idiotą) a Programistą (starając się przewidzieć wszystkie te scenariusze i zaprojektować je wokół).
Jeśli chodzi o bardziej przyjazny synonim, czy mogę zasugerować „destrukcyjną analizę ścieżki kodu” lub „włączyć informacje zwrotne od użytkowników dotyczące operacji krytycznych”. Jakkolwiek to nazwiesz, naprawdę powinieneś rozpocząć go jak najwcześniej na etapie projektowania.