Sru*_*uly 6 language-agnostic events plugins
我正在为我正在处理的基于Web的系统添加一个事件驱动的插件api.
我应该在try/catch中包装插件调用以确保它们不会崩溃,或者我应该将其留给插件开发人员来处理.
此外,一些插件可能会更改我传递的数据,我应该重新验证所有数据还是相信插件开发人员不要破坏任何内容?
你不应该让你的程序崩溃.
如果您可以通过插件编写者保护自己免受无辜的错误,您应该这样做 - 通过处理异常和重新验证代码必须重用的修改数据.
当您发现问题(异常或格式错误的数据)时,您所做的事情 - 卸载插件并在重新加载之前不再使用它可能在生产模式下是明智的.对于插件开发人员来说,提供对出错的良好诊断是明智的 - 甚至可能对获得广泛认可至关重要(很多人为您编写插件).如果其他程序员无法有效地解决问题,他们可能不会继续尝试.