Избегайте дублирования кода Шоколадные пакеты

#code-duplication #chocolatey

#дублирование кода #шоколадный

Вопрос:

Введение

В шоколадный пакет добавлено несколько функций.

Эти функции хотелось бы применить и к другим шоколадным пакетам.

Это можно сделать, скопировав функции для каждого из них. Однако, если определенная функция будет оптимизирована, эти изменения необходимо скопировать во все пакеты.

Вопрос

Как избежать дублирования кода в шоколадных пакетах?

Ответ №1:

У меня есть несколько предложений относительно того, как вы могли бы поступить с этим…

  1. (Вероятно, тот, который займет больше времени из-за зависимости от других людей) Если эти функции можно использовать повторно, самостоятельно и другими людьми, я бы предложил отправить запрос на извлечение в ядро Chocolatey, чтобы добавить эти функции в Chocolatey. Таким образом, все получают выгоду.
  2. Разделите функции в отдельный файл, а затем поместите их в создаваемые вами шоколадные пакеты. В вашем репозитории системы управления версиями сохраните файл в общем месте, а затем добавьте его в каждый пакет Chocolatey, который требуется.
  3. Далее выполните рефакторинг извлеченного файла .ps1, чтобы он запускался как созданный вами модуль. Создайте шоколадный пакет, в котором все, что он делает, это развертывает модуль PowerShell (есть несколько примеров выполнения этого на Chocolatey.org — кричите, если вы его не найдете). Затем в вашем пакете Chocolatey, которому требуются функции, экспортируемые этим модулем, определите зависимость от нового пакета Chocolatey, а затем просто импортируйте-module в потребляющий пакет Chocolatey.
  4. Малоизвестные расширения. Посмотрите на этот пакет: http://chocolatey.org/packages/Devbox-Common.extension

Надеюсь, это имеет смысл и поможет!

Гэри

Комментарии:

1. Шум! Я не знал об этих расширениях. Мне нужно будет их проверить 🙂