3

您在什么时候决定将您的一些子例程和公共代码放在类库或 DLL 中?在我的一个应用程序中,我想在不同的项目之间共享一些我的通用代码(众所周知,重复代码是一种编程罪恶)。

我的绝大多数代码都在一个项目中。我还有一个小型实用程序,它与主要可执行文件分区,该可执行文件以提升的权限运行,仅用于一个目的。这两项最多有三个共同的子程序。是否应该从类库中放置和调用这些公共子例程?您如何决定何时执行此操作?当您至少有一个共享子程序时?二十多行代码?

我不认为这应该是特定于语言或依赖于框架的,但如果是这样,我正在使用 .NET 框架。

4

2 回答 2

1

与 DLL 相比,在应用程序之间共享代码的方法更多。听上去,你不是在谈论很多代码,所以听起来你不需要太担心它。

一般来说,我使用以下经验法则:

  • 对于琐碎的代码重复(几个简单的 1-2 行函数,易于理解和调试),我将复制并粘贴代码。

  • 对于更复杂的函数(一个或两个文件中包含的独立帮助函数的小型库,需要适度的维护和调试),我将简单地将文件包含在两个项目中(通过链接或定义一个子存储库,或类似的东西)。

  • 对于更广泛的代码共享(一组相互关联的类,或对多个项目有用的数据库通信层),我会将它们重构为一个独立的库,并使用适合我正在编程的任何东西打包和分发它们在。

因为每一步管理代码的复杂性都会增加一个数量级(当您为多个项目打包 DLL 时,您现在需要考虑版本控制问题),您只想在需要时移动到下一个级别。听起来您还没有感觉到处理通用代码的痛苦,如果是这样的话,就没有真正的需要。

于 2010-07-08T15:15:00.760 回答
0

如果代码在多个应用程序之间共享,那么它必须驻留在 DLL 或类库中。

对于较大的应用程序,您可能还希望将应用程序的不同子系统分解为单独的库。这样,每个项目都可以专注于一项特定任务。这简化了应用程序的结构,并且更容易找到任何一段代码。例如,您可能有一个带有不同 DLL(.NET 项目)的 GUI 应用程序,用于:

  • 使用特定的网络协议
  • 访问公共代码,例如实用程序类
  • 访问遗留代码(通过 PInvoke)
  • ETC...
于 2010-07-06T13:57:19.197 回答