[#] [Перевод] Искусство оборонительного программирования
habrabot(difrex,1) — All
2017-01-26 20:00:05


![image][1]


Почему разработчики не могут написать безопасный код? Мы не говорим здесь очередной раз про _«чистый код»_. Мы говорим о большем с чисто практической точки зрения — о надёжности и безопасности программного обеспечения. Да, потому что небезопасное программное обеспечение в значительной степени бесполезно. Посмотрим, что значит «небезопасное» программное обеспечение:

* **Полёт №501 ракеты «Ариан-5» Европейского космического агентства** был прекращён через 40 секунд после старта (4 июня 1996 г.). Экспериментальная ракета-прототип стоимостью **1 млрд. долларов США самоликвидировалась из-за ошибки** в бортовом ПО управления.
* **Ошибка в программе, управлявшей установкой лучевой терапии Therac-25, стала прямой причиной смерти, как минимум, пяти пациентов** в 80-х годах, когда она задавала чрезмерные дозы рентгеновского облучения.
* **Программная ошибка в зенитном ракетном комплексе MIM-104 «Patriot»**, вызывавшая уход его системных часов на одну треть секунды за сто часов, привела к его неспособности обнаружить и перехватить летящую ракету. Иракская ракета попала в воинскую часть в г. Дахран, Саудовская Аравия (25 февраля 1991 г.), **погибло 28 американцев**.
Этого должно быть достаточно, чтобы понять, насколько важно писать безопасное и нормально работающее программное обеспечение, особенно для определённых приложений. Но и в других случаях использования мы должны знать, к чему могут привести наши программные ошибки.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/fd3/2fe/19f/fd32fe19f1ac64b23cacb5e2343bf6ba.jpg
[2]: https://habrahabr.ru/post/320088/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut