保持库无依赖性

dog*_*ane 7 c# java dependency-management

我有一个小的实用程序库,包含一些有用的实用方法,这些方法已经过完全的单元测试 目前,我的库没有外部依赖.我正在考虑将记录添加到我的类中,这可能对调试有用.但这意味着将日志库与我的项目捆绑在一起.

我的问题是:我应该保持我的图书馆依赖免费吗?这样做有什么好处吗?

Pre*_*gha 5

我会添加一个日志记录界面,可用于抽象日志记录.然后允许用户通过此界面添加日志记录.您也应该使用此接口,并且应该提供内置在库中的"NullLogger",如果不需要其他日志记录,将使用该"NullLogger".

通过要求用户配置新的NullLogger,只需通过配置文件或运行时发现,就可以轻松地不使用NullLogger.


Aar*_*lla 0

专业人士:

  • 您的库会小得多(您可能只使用任何依赖项的全部功能的一小部分)
  • 没有更新地狱(就像您的代码需要库 C,版本 2,产品 X 需要您的代码和库 C,版本 1)。
  • 你不需要按照别人的想法来改变你的勺子(假设你的库从 1.x 升级到 2.x -> 你需要更新你的代码)

缺点:

  • 如果产品 X 也需要该库,则会浪费代码
  • 你有多聪明?很可能你无法与已经进入图书馆的思想、智慧和时间相媲美。

PS:如果你想支持日志记录,请在代码中添加slf4j ;这是一个 30KiB API,允许您的代码用户使用任何日志框架。不要使用commons- logging 。