Написание пакета: лучшие практики в отношении зависимостей

Написание пакета: лучшие практики в отношении зависимостей

Некоторые зависимости могут быть очевидными и необходимыми для базовой функции пакета. Но как насчет второстепенных функций, которые потребуют загрузки дополнительных внешних пакетов? Для ясности: я понимаю, что «добавление слишком большого количества функций» — это распространенная ошибка новичков. Я ни в коем случае не опытный разработчик, но я также не рассматриваю полностью произвольные функции.

Приведем несколько примеров:

  • новая среда содержит (необязательное) поле для даты. Оно может быть установлено на "сегодня", зафиксировано на какой-либо пользовательской дате или вообще опущено. Для этого потребуется datetime-package.

  • Аналогично, поле для списка сокращений. Для этого потребуется glossaries-package, который, кажется, является довольно большим пакетом для загрузки, если он не нужен пользователю.

  • Я хотел бы предоставить определенный стиль страницы с этим пакетом, но оставить пользователю решать, хочет ли он его использовать. Для этого потребуется пакет fancyhdr.

  • и еще кое-что.

Тогда у меня такие вопросы:

  • Может быть, я слишком беспокоюсь об оптимизации и стоит просто продолжить работу с зависимостями для полезных функций?

  • Могу ли я загрузить эти пакеты условно, например, поместив "RequirePackage" только внутри зависимого макроса(ов)? Или через опцию пакета?

  • Могу ли я добавить поддержку этих пакетов на случай, если пользователь решит загрузить их самостоятельно? Как мне лучше всего сообщить им об этом?

  • Может, мне вообще удалить эти полезные функции?

Связанный контент