В последнее время я нашел несколько аргументов с моим начальником об обработке исключений в нашем веб-приложении (приложение C# asp.net MVC).Насколько устойчивым должно быть мое веб-приложение?
В основном разговоры идут что-то вроде этого:
Босса: «Существует что-то не так с нашей программой, базы данных клиента иксов пошли вниз сегодня, и каждый видит страницу ошибки.»
Me: «В основном каждая страница приложения использует базу данных для чего-то (кроме страницы с ошибкой), нет никакой разумной альтернативы, кроме как показать страницу с ошибкой».
Босс: «Наше приложение должно быть более устойчивым - часть приложения, не требующая доступа к базе данных, должна по-прежнему функционировать».
Часто случаи такие же экстремальные, как это, но иногда мы сталкиваемся с ситуацией, когда мы интегрируемся с другой службой, где мы можем еще безопасно отображать другие части страницы или завершить операцию, хотя и с некоторым раздражающим кодом так как более поздние части кода должны позже использовать результаты операции, которые могут быть неудачными. Если есть много точек возможного отказа, это может превратиться в некоторый чрезвычайно неуправляемый код.
В общем, для «нормального» веб-приложения (не критически важного и т. Д.) Сколько времени «хорошие» разработчики тратят, пытаясь сделать свой код достаточно упругим, чтобы справляться с такими ситуациями. Мой босс, похоже, думает, что код должен справиться практически с любой ситуацией (не можете ли вы просто получить исключение?). Я не вижу, как это может быть экономичным, когда есть много возможных точек отказа.
не должно быть вики? – AGoodDisplayName
В этой экономике сделайте то, что вам говорит босс. –
Пример базы данных, возможно, немного экстремален и упрощен. В основном у нас есть несколько страниц, которые взаимодействуют с несколькими сторонними службами - геокодирование/facebook/и т. Д. Может случиться несколько вызовов данной услуги, сделанных при выполнении страницы. Результаты одной службы могут быть позже переданы другому или использованы при рендеринге страницы. Предполагая, что любой из них может быть недоступен, и попытка получить разумный результат в каждом случае, кажется, становится очень трудной в присутствии многих из этих услуг. – Krazzy