Co to jest programowanie obronne?
Programowanie obronne to tworzenie kodu oprogramowania komputerowego zaprojektowanego w celu uniknięcia problematycznych problemów, zanim pojawią się i uczynić produkt bardziej stabilnym. Podstawową ideą tego podejścia jest utworzenie programu, który jest w stanie działać prawidłowo nawet poprzez nieprzewidziane procesy lub gdy użytkownicy dokonują nieoczekiwanych wpisów. Programowanie defensywne często opiera się na nieco paradoksalnej kombinacji eliminacji niepotrzebnego kodu, jednocześnie zapewniając, że wygenerowane są wystarczające ilości, aby obsłużyć wszystkie możliwe działania użytkownika. W przypadku tego procesu ważne są również obszerne testy, podobnie jak tworzenie oprogramowania, które można łatwo kontrolować i sprawdzić.
Pod wieloma względami koncepcja programowania defensywnego jest bardzo podobna do jazdy defensywnej, w tych problemach jest rozważane przed ich powstaniem. Jedną z powszechnych metod próby zrobienia tego jest tworzenie kodu, które ma radzić sobie z każdym możliwym scenariuszem. Programiści zazwyczaj starają się określić sposoby, w jakie prawdopodobnie użytkownicyAby wprowadzić wejście lub spróbować korzystać z oprogramowania, które może być poza oczekiwanymi parametrami. Zastosowanie programowania obronnego opiera się na podstawie samego kodu, który ma być w stanie obsłużyć dziwne dane wejściowe bez awarii lub napotkania zdarzenia błędu.
Jednak najwyraźniej w przeciwieństwie do tego elementu programowania obronnego, dobrze zapisany kod musi być pozbawiony niepotrzebnych wpisów. Im więcej linii kodu, które są częścią programu, tym więcej możliwości wprowadzono błędy. Praktyki programowania defensywnego zazwyczaj zachęcają programistów do wyeliminowania niepotrzebnego kodu i programów usprawiedliwienia w miarę możliwości. Należy zatem utrzymać saldo między programowaniem, które uwzględnia nieoczekiwane scenariusze i kod, które zawierają zbyt wiele niepotrzebnych treści bez zapewniania korzyści.Testowanie jest jednym z najważniejszych aspektów programowania obronnego. Pomimo dużego wysiłku włożonego w zapewnienie kodu, programiści prawie zawsze pomijają błąd lub tworzą kod z nieoczekiwanymi wynikami. Dokładne testowanie przez profesjonalnych testerów pozwala programistom mieć setki godzin użycia produktu w celu znalezienia błędów przed wydaniem oprogramowania.
Sam kod tworzony w programowaniu obronnym jest również istotnym aspektem tego procesu. Nie tylko powinno być tak usprawnione, jak to możliwe, ale powinien być również prezentowany w sposób jasny i zwięzły. Audyty są często używane przez programistę do przeglądu utworzonego kodu. Pozwala to innym programistom zobaczyć wykonaną pracę, a czytelny kod jest ważny, aby była realistyczną częścią rozwoju.