language-agnostic - 您如何管理应用程序的外部依赖项?

标签 language-agnostic defensive-programming robustness external-dependencies

有许多类型的外部依赖项。与外部应用程序、组件或服务的接口(interface)(例如用于发送电子邮件的 Outlook、用于扫描的 TWAIN 或 WIA、用于各种目的的 ActiveX 对象和 Web 服务等)。

你有什么策略来确保你的应用程序是健壮的,并且即使在这种外部依赖项(由于无数原因)不可用时也可以运行?

注意:您自己的源代码中包含的来自外部源的代码是另一种类型的外部依赖,但这不是我在这里主要关心的。

最佳答案

我们的策略是,我们的软件可能不会,除非在特殊情况下。所以我们非常防御性地编程:

  • 如果没有邮件连接,则邮件功能不可用。
  • 图形输出取决于可用的图形卡。
  • 只有网络的可用性才能实现分布式功能。

  • 还有更多。

    关于language-agnostic - 您如何管理应用程序的外部依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/362627/

    相关文章:

    language-agnostic - 套接字限制是因为客户端读取数据的速度不够快?

    math - 如何从网格位置计算行/列?

    error-handling - 将 .NET Framework 4.5 的 System.IO.FileSystemWatcher 的设置配置为可就错误、容错、健壮、智能等进行交流

    if-statement - 为什么一个变量与多个值的不相等检查总是返回 true?

    language-agnostic - 一般 - 函数在内存中是如何表示的?

    java - Java中防御复制的低效率

    java - 什么是好的做法?复制构造函数或防御复制方法

    security - 网站编程漏洞 list

    linux - 我的脚本应该使用 cp 还是 mv 来更健壮?