我正在慢慢构建一个代码库,以便在多个应用程序中使用。一些代码是处理图像和预先存在的消息格式(从C ++转换而来),因此需要不安全的代码。
为什么我通常不应该在同一个库程序集中混合不安全和安全的代码,而不是我必须这样做?
换句话说:我应该维护一个纯粹安全的库并将不安全的代码收集到不同的库/库中吗?
我很欣赏“不安全”库需要考虑信任问题,但由于这些功能对我的大多数应用程序都至关重要,它真的重要吗?要么我的所有代码,安全&不安全,受信任或不受信任,我的应用程序将无法运行。或者我错过了这一点?
答案 0 :(得分:4)
理论上,您可以使用安全代码开发所需的内容,但我们假设您有充分的理由使用不安全的代码:)
在您运行不安全代码的代码部分中,您可能会忘记释放内存等...所以如果您很好地管理内存,那么您应该没有问题。当你有一个使用COM + dll的C#项目时,你会一直这样做。在你的情况下更好,因为你拥有所有的代码,所以你可以修复任何内存泄漏,如果你能够检测到它。
如果您在单独的库中收集所有不安全的代码
<强>赞成强>
<强> CONS 强>
所以说实话,决定权归你所有。如果我是你,我会将不安全的代码分成不同的项目,以便能够在需要时用安全代码替换它。