编写包:有关依赖关系的最佳实践

编写包:有关依赖关系的最佳实践

对于包的基本功能来说,某些依赖项可能是显而易见且必要的。但是,需要加载其他外部包的次要功能呢?澄清一下:我明白“添加太多功能”是初学者常犯的错误。我绝不是一位经验丰富的开发人员,但我也没有考虑完全任意的功能。

举几个例子:

  • 新环境包含一个(可选)日期字段。可以将其设置为“今天”,固定为某个用户定义的日期,或者完全忽略。这需要 datetime 包。

  • 类似地,一个用于缩写列表的字段。这将需要 glossaries-package,如果用户不需要它,则它似乎是一个相当大的包。

  • 我想用这个包提供特定的页面样式,但让用户决定是否要使用它。这需要 fancyhdr 包。

  • 还有一些。

我的问题是:

  • 我是否过于担心优化,而只需继续依赖那些不错的功能?

  • 我可以有条件地加载这些包吗?例如,只在依赖宏内放置“RequirePackage”?或者通过包选项?

  • 如果用户决定自己加载这些软件包,我可以添加对这些软件包的支持吗?我该如何最好地告知他们这件事?

  • 我是否应该将这些不错的功能全部删除?

相关内容