Как вы управляете внешними зависимостями для своего приложения?
Вопрос
Существует много типов внешних зависимостей.Взаимодействие с внешними приложениями, компонентами или службами (например,Outlook для отправки электронных писем, TWAIN или WIA для сканирования, объекты ActiveX и веб-службы для различных целей и так далее).
Какова ваша стратегия для обеспечения надежности вашего приложения и возможности его запуска даже тогда, когда такие внешние зависимости (по бесчисленным причинам) недоступны?
Примечание:Код из внешних источников, включенный в ваш собственный исходный код, - это еще один тип внешней зависимости, но это не главное, что меня здесь беспокоит.
Решение
Наша стратегия заключается в том, что наше программное обеспечение не может этого делать, за исключением исключительных обстоятельств.Поэтому мы программируем довольно оборонительно:
- Если почтовое соединение отсутствует, функциональность почты недоступна.
- Вывод графики зависит от доступной видеокарты.
- Распределенная функциональность обеспечивается только при наличии сети.
И это еще не все.
Другие советы
Также обратите внимание, что с внешними интерфейсами, так же как и с пользовательским вводом, вы должны не доверяю этим входным данным.Всегда проверка входных данных, и проверять согласованность (или существование) при вызове.